WebRTC SFU Sora 17.02 リリースノート

次のリリースについて。

ハイライト

  • H.264 の録画に対応
  • RFC 4588 RTP Retransmission Payload Format への対応
  • プレビュー版 StartForwardingRtp/StopForwardingRtp API 追加
  • シグナリング通知機能をクライアント単位指定可能に

安定や性能の向上

1:N 、マルチストリーム、TURN-TCP 周りの安定化や性能向上は引き続きやっており、インターフェースは一切変わらないが内部構造は大きく変えて言っている。

H.264 の録画

Chrome が H.264 に対応し、 Edge も参入してくると言うことで対応。WebM 形式はなかなか許容範囲が広く H.264 / Opus といった構成も別に仕様違反ではない。録画したファイルを Chrome や VLC で見れることは確認している。シークもできる。

RFC 4588 RTP Retransmission Payload Format

RTX と呼ばれる機能で、現時点では Chrome しか対応していない。簡単に言ってしまえば再送制御の仕組みの一つ。

あまりネットワーク環境が良くないところで安定して配信できるようになる。ただ劇的な効果があるという訳では無いので要注意。

Edge も対応してくるということで、対応しておいた。

StartForwardingRtp/StopForwardingRtp API

これは 1:N の配信にのみ適用できる WebRTC の配信から RTP だけを指定した rtp://192.0.2.100:60001/ に配信を飛ばす機能。

目的としては転送先を ffmpeg にして、 HLS を配信できるようにしたいという考えからだ。利用方法としては転送したい配信のチャネル ID と転送先の IP アドレスとポートを指定するだけ。

RTP だけ抜き出して ffmpeg へ

本来は Nginx がいたりとか、色々するのだが省略している。イメージが伝われば良い。遅延はあるが Safari に配信したいという気持ちがある場合に有効だ。どんな使い方をしても構わない。

Safari の WebRTC 対応が見えないこともあり、少しでも Sora を利用した開発者の負担を減らしていきたいというのが目的だ。

シグナリング通知機能

クライアントとSora は WebSocket を張り続ける必要がある。サーバからのプッシュ通知が存在するからだ。

このシグナリング通知機能は参加しているチャネルの情報をサーバから通知して貰う。新しくユーザが参加してきた、ユーザが離脱したなどの時に、現在の参加ユーザ数、新しく参加してきたユーザが配信者なのか、視聴者なのかなどを送信する仕組みになっている。

現在はデフォルトでは無効な上、ユーザ毎の指定ができない。このリリースでは認証ウェブフックの戻り値の指定で、クライアント単位で有効にできるようにしたいと考えている。


まとめ

Sora を利用した開発を助けていける機能をメインとして機能追加していきたいと考えている。もちろん最新の WebRTC に追従しつつ、安定性や性能向上は最優先だ。

是非興味ある人は https://sora.shiguredo.jp を覗いてみて欲しい。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.