ImageFlux Live Streaming の提供が始まりました。このサービスは WebRTC で配信した音声と映像をサーバ側で HLS 形式(H.264/MP3) で配信してくれるサービスです。

ここでは WebRTC と ImageFlux Live Streaming のメリットを書いていきます。デメリットは WebRTC より遅延することと、ベンダーロックくらいです。

配信側に WebRTC を使うメリット

映像配信といえば RTMP から HLS が多いと思います。ただ RTMP は TCP を前提としています。そのため不安定な回線だと一気に不安定になってしまいます。

WebRTC は不安定な回線でもなんとしてでも安定的に音声や映像を配信するための技術が突っ込まれたプロトコルのため、RTMP と比べて不安定な回線に強いです。

再送制御を完全に WebRTC でコントロールしたり、FEC という前方誤り訂正機能で I フレームのパケロスを再送なしで回復できます。

再送や輻輳制御をTCP に依存せず独自にやるのは SRT と似たような感じです。

RTMP はプロトコルだけの仕組みですが、WebRTC はコーデックも全部込みです。音声では Opus 、映像では VP8 や VP9 や H.264 が利用可能です。iOS や Android であれば H.264 はハードウェアアクセラレータが有効になります。

この辺の変換処理も特に意識することなくやってくれます。

RTMP の場合は HTTPS を利用した RTMPS という暗号方式を利用しますが、WebRTC の音声や映像はデフォルトで DTLS-SRTP という暗号方式で送られます。ハンドシェイク以外の通信はすべて暗号化されます。

この辺の暗号処理も特に意識することなくやってくれます。

Flash が死ぬ今、RTMP でブラウザから配信するのはおそらく一苦労でしょう。WASM を利用したりして色々頑張る必要があると思います。

WebRTC は Chrome や Firefox 、 Safari といった主要ブラウザには標準で搭載されている機能です。そのため、すぐに利用可能です。

実際 YouTube の webcam 配信はまさに WebRTC から HLS への変換を利用しています。(実際の構成がイベントで公開されてましたが、ほぼほぼ ImageFlux Live Streaming と同等でした)

ブラザや iOS や Android に利用されている WebRTC のライブラリは libwebrtc というライブラリです。これは webrtc.org によってオープンソースで公開されています。

そして大量のリソースが注ぎ込まれており、日々進化していっています。ライブラリ開発だけでいくらかかってるのかわからないレベルです。

コーデックや通信、暗号化以外にも最新の技術ががっつり注ぎ込まれています。

配信に ImageFlux Live Streaming を使うメリット

ImageFlux Live Streaming の WebRTC 部分には時雨堂の WebRTC SFU Sora が利用されています。つまり、Sora の SDK がそのまま利用できてしまうんです。

Sora の SDK は時雨堂が Sora 本体同様に力を入れています。特にメンテンナスをガッツリやっています。バグがあれば最優先で修正していきます。

メンテナンスされているオープンソースで Apache License 2.0 な SDK を利用すればすぐに数万人規模への配信が可能になります。

エンコーダや暗号を気にする必要は全くありません。それはすべて WebRTC がやってくれます。

WebRTC は大規模配信がとても難しいです。実際簡単であれば YouTube がわざわざ WebRTC から HLS/MPEG-DASH 変換を用意しません。YouTube ですら変換しているのです。

ただ ImageFlux Live Streaming を利用することで、WebRTC では難しい大規模配信が簡単に実現できます。

API だけ提供されてるのでそれを利用すれば終わりです。音声と映像の変換サーバの運用はとても大変です。最近では AWS とか色々ありますが、それでもチューニングとか考えるのは面倒なのが現実です。

それが一切不要になるの本当に大きいと思います。

まとめ

自社サービスでライブ配信を検討してる人はまずは ImageFlux Live Streaming を検討してみてください。pixiv Sketch LIVE で培われているノウハウがそのまま生かされています。

配信や変換の専門家が面倒見てくれるサービスです。弊社も裏方ではありますが WebRTC 部分でサポートしています。

今後、通常のサービスでは RTMP から HLS は時代は終わり、WebRTC から HLS/MPEG-DASH の時代がきて、その次は WebRTC から LHLS+CMAF の時代が来るはずです。

もちろん、AbemaTV のようなテレビと戦っていく世界ではコーデックと通信が分離している SRT が発展していくのだと思います。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