注意: 著者の Unity のまったく経験はない
なんと Unity 公式リポジトリに Unity アプリをストリーミングサーバとして利用するための WebRTC ライブラリが公開されていた。おそらく日本で開発しているようで、ドキュメントが英語と日本語がある。
ざっとソースなどを読んだので、感想を書いていく
実装内容
- libwebrtc をラップして WebRTC API (C#) を提供している
- シグナリングはプラガブルにかかれている
- libwebrtc のバージョンは M72
- Windows x86_64 のみ対応
- libwebrtc のライブラリはリポジトリ内蔵
- 大本は Unity -> ブラウザの一方方向を想定している
- NVIDIA NVENC へ対応
気になった点
- M72 は残念なので早めに M75 に上げることをおすすめしたい
- サイマルキャストがロードマップにあるが、ハードウェアエンコーダーとサイマルキャストの組み合わせはまだまだなのでおすすめしない
- マルチカメラはストリーム複数本なので P2P 限定にしておくべき
- DataChannel も P2P 限定にしておくべき
- 5 台以上の配信は SFU と書かれているが、基本的には P2P 用途に見える
- 配信サーバ向けということもあり、iOS / Android への対応はされていない
- ARM ビルドも考慮されていない
- ロードマップに Linux と追加 HWA と書いてあるのであくまでゲーム配信サーバとしてしか考えていないようにみる
感想
UnityRenderStreaming (Streaming Server for Unity) と書いてあるとおり残念ながら、Unity からの配信を想定して開発されているため、iOS や Android 、HoloLens に組み込んで使うという用途には今の時点では使えない。
理想ではあるがこの WebRTC パッケージだけを外に出してもらえれば、かなり利用用途しては広がりそうだ。