「Broadcast Box」は、ウェブブラウザやモバイルアプリケーションにシンプルなAPI経由でリアルタイム通信を提供するWebRTCでレイテンシ1秒以下の超低遅延配信を構築するシステムです。オープンソースの映像配信ソフト「OBS Studio」のバージョン32.1.0のベータ版がWebRTC配信に対応したので、Broadcast Boxを使った配信を実際に試してみました。

Glimesh/broadcast-box: A broadcast, in a box.

https://github.com/glimesh/broadcast-box

Release OBS Studio 32.1.0 Beta 1 · obsproject/obs-studio

https://github.com/obsproject/obs-studio/releases/tag/32.1.0-beta1

今回使ったOBS Studioのバージョンは、記事作成時点で最新のバージョン32.1.0-beta2です。



起動して、「設定」をクリック。



「配信」をクリックし、「サービス」で「WHIP」を選択します。



FFmpegを導入している場合、エンコーダーをFFmpeg Opusに変更する必要があります。「はい」をクリック。



Broadcast Boxのインスタンスは「b.siobud.com」でホストされていて、気軽にテスト可能。「サーバー」に「https://b.siobud.com/api/whip」を、Bearerトークンにストリームキーとなる任意の文字列を入力し、「適用」をクリック。



左カラムで「出力」をクリック。「映像エンコーダー」を「x264」に設定します。さらに今回、ビットレートは「2500kbps」に設定。そして、配信の遅延を可能な限り減らすため、「チューン」を「zerolatency」に設定し、「OK」をクリックします。



上記の設定をしてOBS Studioで配信した場合、Broadcast Boxの以下のサイトで見ることができます。

Broadcast Box

https://b.siobud.com/

「Stream Key」に設定したストリームキーを入力し、「Join stream」をクリックすると、配信を見ることができます。



以下の左側がOBS Studioの画面で、右側がBroadcast Boxの視聴ページの画面です。画面中央に表示させているストップウォッチを見ると、配信者側と視聴者側のラグは約0.4秒。通常の映像配信だと10秒前後なので、遅延を大幅に低減できていることがわかります。



なお、Broadcast Boxはサーバーを自前で構築してローカルで実行することも可能。ソースコードがGitHubで公開されているほか、Dockerイメージも提供されています。