2017 年の WebRTC 振り返り

2017 年の WebRTC 関連を自分が気になった範囲で振り返ってみようと思います。つまり偏ってます。DataChannel については触れません。

Safari が WebRTC に対応

2017 年、WebRTC 界隈での一番のニュースはこれでしょう。macOS と iOS の両方で対応しました。ただ WebView (詳しくわかりません) では getUserMedia が非対応らしく、iOS 向けの Chrome や Firefox ではまだ利用できないようです。

Safari は開発者メニューもとても使いやすくなっています。

Image for post
Image for post

おっさんの顔を見続けなくても良い仕組みが入っていたり、HTTPS を必須じゃなくしたりと、開発者のツボを付いています。

ただ、残念なのはビデオコーデックが H.264 のみになった点です。iOS には H.264 の HWA が搭載されていることや Apple が H.264 のライセンサーということもあるとおもいますが、VP8 には対応して欲しかったです。

それ以外は libwebrtc をベースに開発されていることから概ね Chrome と同じような動きをします。ただ、頑張ったなというのは最初から addTrack/ontrack に対応してリリースしてきたことでしょうか。

今後 VP8 へ対応するかどうかは正直微妙なところです。むしろ H.265/HEVC に対応してきたりするのかもしれません。このあたりは Apple がどうでるかどうか、わからないので見守るしか無いと思います。

Edge が WebRTC に対応

Edge は詳細な WebRTC の仕様が公開されておらず、何ができるのかすらよくわからないというのを実感した1年でした。

とにかくどんな挙動をするかよくわからない、さらにプロトコルレベルで動作が謎というのは本当に困ります。

正直 Edge は WebRTC 非対応と考えて良いレベルです。デバッグもできません。MS は Skype であれば ORTC でいいわけですし、WebRTC にはあまり積極的ではないのかも … と思えるほどです。

Edge での WebRTC 対応は気のせいだったで良いと思います。

Firefox 58 で WebRTC のビデオコーデックのデフォルトが VP9 に変更予定

VP9 に対応していれば VP9 を採用するという方針になりました。今までは VP8 だったのが優先順位が変わったという形です。

現時点で VP9 は変換コストが少しだけ重くなりますが、それと引き換えに VP8 や H.264 と同等の画質が半分のビットレートですむというメリットがあります。これはとても喜ばしい変更だと思っています。

VP9 がデフォルトになり、その後 AV1 が … というのが理想でしょう。

ただ、VP9 の HWA を積んだモバイル端末は殆どないため、消費電力を考えると H.264 がまだまだ優勢です。

Chrome が addTrack/removeTrack/ontrack に対応予定

Chrome M64 で addStream や onaddstream に変わって addTrack や ontrack が利用可能になります。

Firefox がすでに対応していたので、特に気にすることなく移行可能だと思います。

Safari はすでに track ベースになっていました。Edge なんですかそれ。

今後は track ベースになっていくことから、今までの WebRTC の記事が古くなってしまうことに注意してください。

Twilio が P2P だけでなく SFU にも対応

Twilio が Kurento を買収した成果として大人数での会議システム対応が発表されました。Kurento が MCU よりだったこともあり MCU か?と思われましたが、Twilio の中の人の情報により SFU なことがわかりました。

基本的に WebRTC なプラットフォーマーたちはすべて SFU を採用していますね。やはり CPU を持って行かれるのは色々と厳しいのでしょう。

SkyWay 正式リリース

SkyWay が正式リリースされ、P2P とSFU の二種類が発表されました。さらにチケットベースのサポートも有償で提供されるとのことです。

この有償サポートは企業利用の人はとてもうれしいと思います。また無料枠も多くあり、個人での利用も気軽に継続できるのは NTT コムさんの粋なはからいだと思います。

旧 SkyWay API は 2018年3月に提供を終了するとのことでしたので、自分が開発したシグナリングサーバも役目を終えることになります。なかなか感慨深いですね。

W3C WebRTC API 1.0 RC がリリース

出る出る詐欺だったのがなんとかなったようです。仕様策定には関わっていませんが、1.0 が落ち着くのを正座して待っています。

AV1 仕様フリーズ

WebRTC と密接に関わってるのがコーデックです。Safari が H.264 だけ対応したりと、色々波乱がありますが、未来のコーデックとして AV1 があります。AV1 は VP10 としてリリース予定だったのを AOM から AV1 としてされています。

2017 年に仕様をフリーズして 2018 年から WebRTC で利用可能な用に進めていくということです。ただまだ HWA 周りとかも数年先でしょうし、どうなるかわかりません。

参加企業は多く、ARM や NVIDIA もいるため、何かしらうまくいくとは思います。

libwebrtc の iOS と Android 向けの公式バイナリ提供開始

ビルド地獄として有名な libwebrtc の iOS と Android 向けバイナリ提供が Google 公式で始まりました。

自前でビルドしなくてよくなりました。ただ注意点としてこれらのバイナリは master ブランチです、というか HEAD です。そこは意識しておきましょう。

Firefox Nightly とChrome Canary で AV1 に対応

Firefox Nightly ではデフォルトで、Chrome Canary では chrome://flags を有効にすることで AV1 が利用可能になりました。

Image for post
Image for post

Mozilla は AV1 のサンプルを提供しています。見てみるとわかりますが、恐ろしいほど低いビットレートである程度の画質を維持しています。

AV1 がなぜWebRTC にとって重要かというと、ビットレートの低さです。ビットレートが低いということは転送量も減ります。これは WebRTC を利用するにあたってとても重要です。

AV1 にはすごく期待していますが、結局 Apple は採用しないのでその辺は考えていかないといけないとは思います。

まとめ

WebRTC は超低遅延で音声や映像をやりとりするという仕組みをいかに安定して実現するかがキモになります。ただその範囲はデバイス管理から暗号化、ノイズキャンセル、コーデックなどとても広いです。

ただ、使う側はなんか便利くらいの技術が一番良いと思っているので、今の WebRTC の立ち位置はとても良いと思います。

今後も流行ることなく、必要とされるところに使われていく技術、それが 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