WebRTC SFU Sora の次のバージョン 18.04 にてスポットライト機能をリリースします。
今まで音声検出 (VAD: Voice Activity Detection) による映像の動的切り替え機能と呼んでいた機能をスポットライト機能という名前に変更しました。
VAD は音声区間検出という意味で使われており、ノイズなのか音声なのかを判断する仕組みが正しいため、この機能には正しくないと判断しました。
スポットライト機能という名前は、発言者だけにスポットライトがあたっているイメージから取りました。名前をかなり悩んでいたのですが自分にはしっくりきました。
このスポットライト機能は最大で 5 クライアントまで指定が可能です。例えば会議の参加者自体は 30 名いるが、スポットライトを浴びる(つまり配信される)のは最大 5 名 に限定されます。
スポットライトを浴びるのは「直近で発言した最大 5 人」です、もちろん 1 名だけにもできます。この機能を使うことでクライアントの負荷を大幅に減らすことができます。
さらにスポットライト機能では2つの API を提供します。
常にスポットライトをあてる API
この API は例えば会議で指定した人だけは切り替わらず常に配信されている状態を作りたい場合に利用できます。
この機能を使うことでスポットライトが当てられ続けて、ずっと無言でも配信され続ける状態を作ることができるようになります。
強制的にスポットライトをあてる API
こちらは、一時的に声を発していないとしても強制的に配信させることができるようになります。
この機能を使うことで意見を求めやすくなります。
スポットライトの切り替わり時のシグナリング経由での通知
この機能はシグナリング通知という、シグナリングで利用している WebSocket を利用したプッシュ通知を使った機能です。
スポットライトがあたっている人が変わったタイミングで WebSocket 経由で切り替わった人の情報を通知します。そのため今スポットライトがあたっている人が誰なのかなどをクライアント側でリアルタイムに表示することができるようになります。
まとめ
この機能は WebRTC SFU を次のステージに持っていく機能です。SFU は MCU と比較して参加者が増えれば増えるほどクライアントの高くなる仕組みでした。
ただこのスポットライト機能を利用することでクライアントの負荷がさがります。さらに WebRTC SFU Sora では配信されていない音声や映像の暗号を復号しないことでサーバの負荷も減らす仕組みも導入しています。
つまりこのスポットライト機能はクライアントにもサーバにも優しい機能です。
今後もスポットライト機能を改善していく予定です。