WebRTC SFU Sora 2020.3 リリースノート

V
shiguredo
Published in
3 min readNov 27, 2020

2020 年 12 月に Sora 2020.3 をリリース予定です。今回リリースは多くの改善を行っています。

「必要とされている機能を丁寧に実装していく」をテーマに開発を進めています。

改善内容

今回のテーマは録画、サイマルキャスト、E2EE でした。無事に一通りの機能が実装できました。さらにメッセージング機能に向けたシグナリング通知メタデータ拡張機能も追加できました。

サイマルキャスト録画機能

要望があったサイマルキャスト利用時に「うまい具合に録画してくれる」機能を実装しました。

一番優先度が低い(殆どの場合で一番画質の良い)ストリームだけを録画します。

サイマルキャスト転送機能

要望があったサイマルキャスト利用時に「転送してくれる」機能を実装しました。

一番優先度が低い(殆どの場合で一番画質の良い)ストリームだけを転送します。

サイマルキャストエンコードカスタマイズ機能

要望があったマルチストリーム機能とスポットライト機能で利用できるサイマルキャストのエンコード設定を自由に変更できるようにしました。

これを使うことで解像度は同じだがフレームレートが異なるサイマルキャストなどが利用できます。

スポットライト録画機能

サイマルキャスト録画機能の副産物です。

録画分割機能

要望があった録画分割機能を実装しました。これは 24/365 配信しているものを録画したいという要望に答えたものです。

  1. 一つのファイルとして録画する
  2. 一つのファイルと指定した時間ごとに分割したファイルとして録画する
  3. 分割したファイルとして録画する

一つのファイルとしての録画は今まで通りです。分割というのは本当に別ファイルとして生成されます。分割録画専用のウェブフックも用意しました。

E2EE 機能

まだ実験的機能ですが WebAssembly を利用した商用レベルで利用可能な E2EE 機能です。メッセージング暗号に Signal プロトコル、メディア暗号に SFrame プロトコルを利用しています。

専門家のアドバイスを頂きながら開発を行いました。

シグナリング通知メタデータ拡張

シグナリング通知メタデータは接続時か認証成功時のみにしか設定できませんでしたが、それを API 経由で動的に変更できるようにしました。さらにプッシュ通知もセットでやってくれたりします。

この機能は今まで Sora 以外の機能で実現していた部分を Sora で吸収できるようにした機能です。

デメリットとして Sora への依存性が高まります。

Sora 次のリリースに向けて

まだあまり決まっていないのですが、簡単にですが書いていきます。

継続的なものは最新の WebRTC への対応と積極的な機能改善です。新機能としてはプロトコルとメッセージングの対応があります。

WebTransport (QuicTransport) 対応

まずは WebTransport ライブラリを実装して行きます。対応タイミングは様子を見ながらという感じです。

DataChannel シグナリング対応

コストが高いのですが、 WebSocket の限界がでてきたので DataChannel シグナリング対応を本腰入れて行ければと思っています。

メッセージング機能の強化

Sora は今まで音声と映像に特化してきましたが、今後はメッセージにも対応していきたいと考えています。顧客からのフィードバックにより Sora へのメッセージング機能が求められる事が多くなってきました。

是非答えていきたいと思います。

--

--