WebRTC SFU の配信機能を強化する

V
shiguredo
Published in
Aug 19, 2023

時雨堂の WebRTC SFU Sora (以降 Sora) は WebRTC ですが片方向の配信も可能です。WebRTC といえば双方向というイメージがあると思いますが、片方向の配信も可能です。

実際、最近だと OBS が WebRTC に対応を始めてきており、片方向配信の世界にも WebRTC による超低遅延配信の波が押し寄せてきています。

Added WHIP/WebRTC output

OBS + AV1 + WebRTC での配信の遅延

この流れは止められないと考えています。ライブ配信、特にチャットが重要な配信の場合は超低遅延は需要があります。

WebRTC は HLS などの「Pull 型」の配信サービスとは異なり「Push 型」の配信サービスです。そのため CDN を利用する事が難しいです。

そうなるとサーバーでの配信を頑張る必要があります。今まで Sora は 1 台のサーバーで 4K@30 fps / 15 Mbps で 250 接続が限界でした。帯域的に約 3 Gbps です。

より多くのユーザに高画質かつ低遅延での配信を実現するため、スケールアップとスケールアウトの両方の面で強化を進めています。

配信機能を強化する場合「セットアップすればそれだけで簡単に利用できる」が重要ですです。Sora はパッケージ製品ということもあり、いろいろな外部のシステムに依存したりしないこと重視してます。

スケールアップ

Sora 内部でロードバランサーを保持し、配信に利用するワーカーを増やすという仕組みを追加しました。つまりサーバー内部で多段配信を実現しています。

この強化した Sora をお客様にご協力頂き、検証して頂いたところ 1 サーバーで 1080p@30 fps / 6 Mbps で1500 接続を実現できました。帯域的には 9 Gbps です。

仕組み上はもっと多くのユーザーに配信することが可能だと考えています。おそらく 1 サーバーで 1 万配信までは増やせると考えています。夢の 40 Gbps まで持って行きたいです。

スケールアウト

Sora はクラスターを構築する仕組みがあります。現時点では耐障害性を目的としていますが、複数ノードでの同一チャネルの視聴を実現できるように強化を進めています。

これはよくある多段配信とは異なり、特に設定することなく Sora のクラスターに参加するだけで、勝手に複数ノードでの同一チャネル配信を視聴可能になります。

まとめ

現時点ではスケールアウトでは 100 ノードを目的としていますので、スケールアップとスケールアウトを組み合わせることで、うまくいけば最大 100 万視聴者が可能になります。

最大 100 万視聴者への遅延 1 秒未満の超低遅延配信を Sora でクラスターを組むだけで実現できるよう開発を進めていきます。

これらのスケールアップ&スケールアウトの機能は 2023 年 12 月リリースの Sora にて搭載予定です。

--

--