今後の WebRTC SFU 戦略

自社で開発している WebRTC SFU の今後の戦略を公開しておきたい。

この戦略はまだなんとなく考えている範囲ではあるが、大きくはずれないと思う。

基本的に WebRTC に関することなら全方位で取りにいけるようにする製品というのが方針。ただし機能は配信と録画以上の機能は追加しない。それ以上の機能は外部連携で行う。

会議向け機能(双方向配信)

自社製品は配信向けというイメージを先行したことも有りあまり会議システムには向いていないイメージがある。ただ実際はそんなことはなく世の中の WebRTC SFU とは差がない。

ただ、一度付いたイメージを払拭するのはとても難しい。そこで新機能を追加し他の製品との差別化を行うことにした。

それがスポットライト機能だ。

簡単にいえば喋っている人だけの音声や映像だけが配信される仕組みでクライアントやサーバの負荷を減らすことができる。WebRTC SFU にとっては切り札のような機能だ。

WebRTC SFU は MCU と違い合成ができないので会議の参加者が 10 人いたら他の 9 人の音声や映像を送受信する必要が出てくるがこの機能を使えば喋っている例えば2人の音声と映像だけを受信すればよくなる。

この機能が正常に動く WebRTC SFU はまだ少ない。自社ではこの機能をできるだけ便利にして会議システムで WebRTC いえば、という立ち位置を得ていくつもりだ。

中規模配信向け機能(片方向配信)

大規模は後述する FFmpeg 連携で。ここでは中規模例えば 3000 人レベルを想定している。

ただこれは単体の WebRTC SFU では難しいため多段構成にできる機能を実現する方針だ。需要があまりない事もあり、あまり乗り気ではなかったがある程度会議向け機能が取れればこの機能を積んでいきたいと考えている。一方向の配信も双方向の会議も制していく。

ちなみに双方向配信の中規模配信にもチャレンジはしていきたいと考えている。つまり共同ストリーミングによる数千人レベルへの配信だ。

帯域推定やエラー訂正機能

上記の機能とは並行で安定的に配信を行うというのも WebRTC の課題の人つではある。この辺りは帯域推定によって配信者のビットレートを動的に変更することで解決していきたい。

また、エラー訂正機能を使うことでパケットの補完を行っていきパケロスに強い配信システムが実現できればと思っている。

この辺りはあまり WebRTC では話題にならない話の1つだが、重要な技術だと考えている。

クライアント SDK の充実

最近、自社が特に力をいれているのはクライアント SDK だ。これらはオープンソースで Apache License 2.0 で公開しているため、本当にコードを自由に利用できる。

さらに libwebrtc の追従も積極的に行っているため、最新の技術に追従している。

クライアント SDK は顧客が直接触れるとても重要な点だと考えている。そのためコアの部分をバイナリ化したりはせず、完全にオープンソースにしている。やはり何か会った時、顧客側で解析できるのはとても重要だろう。ブラックボックスはサーバだけで十分。

最近では React Native 向けの SDK を開発中だ。オープンソースのものがあまり自分にとって良い方向には進んでいないこともあり、一から開発をしており、夏までにはリリースしたいと考えている。

FFmpeg との連携の強化

自社の WebRTC SFU は機能追加をしないぶん、外部連携を強化していきたいと考えている。それの代表格が FFmpeg だ。

FFmpeg はもう説明する必要もないくらい有名なツールだろう。

FFmpeg との連携の強化の主な目的は2つある

  • WebRTC to HLS

WebRTC to HLS は pixiv Sketch Live や YouTube Webcam というイメージを持ってもらえば良い。WebRTC to HLS だけを利用したい人はぜひ ImageFlux Live Streaming (仮) を使ってもらえればと思う。興味がある人は担当者を紹介できるので気軽に Twitter で DM を貰えれば。

自社で提供したいのは WebRTC がメインだがおまけで HLS も利用したい方向けへの FFmpeg を利用したノウハウだ。

つまりプレミアム会員では WebRTC で視聴できるが、非会員は HLS でのみしか視聴できないなんてサービスを検討している方向けだ。

自社製品の購入者に対してはノウハウは全て無償で提供する。ただ GitHub にそのノウハウを公開するかどうかは現在検討中だ。

もう一つは録画の合成だ。自社製品では録画をするとファイルは全て個別単位で録画が行われてしまう。そのためそれらをキレイに合成するツールとして FFmpeg を利用してもらえるようなノウハウを提供したい。

合成は行いたいがノウハウが無い人がほとんどだろうから、ここも無償で提供したいと考えている。

結論

WebRTC に関する案件は取れる範囲で全て取っていける製品にする。

Written by

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store