WebRTCの歴史が変わった日 - ORTC実装の登場
ついにマイクロソフトのEdgeチームから、「EdgeでORTCが動作」が公式にアナウンスされた。
ORTC API is now available in Microsoft Edge
既に開発中である旨は以前からアナウンスされていたが、ついに開発者が触れて、デモが見れるレベルにまで到達した。(ORTCがそもそも不明な過去記事を読んでいただければ)
さらに同日マイクロソフトのSkypeチームからも、SkypeでのORTC利用について言及された記事が公開されている。
本ポストでは、上記のブログを読んで気になった点のピックアップおよび、同時に発表されている関連情報をまとめておく。
ORTC実装で気になったポイント
全体像はマイクロソフトの記事を読んでいただくとして、個人的に気になったポイントはこちら:
- ORTCの各種APIで一部未実装のものもある
- RTCIceTransportControllerはない
- RTPListnerがないので、SSRCを自らハンドルしてRTPReceiverに伝えないとダメ
- RTP/RTCP多重化は必須(無いと動かない)
- STUN/TURN/ICEのサポート
- ICEのaggressive nominationは受信側のみ
- DTLSは1.0ベース(1.2じゃない)
- 映像コーデックはH264UC(Skypeで利用)のみで動作。H264はこれから対応。VP8はもちろん無いけど、EdgeはVP9をサポートする旨がすでに発表されてる
公式デモ
ここから確認できる。Edgeが必須なので、試せてない。
WebRTCとのShim
ORTCは、既存のWebRTCがBlackBox化していたものを、パーツごとに分解して、開発者が組み立てるようにした仕様・実装、とも考えることができる。そのため、ORTCのパーツを組み立てさえすれば、理屈上、WebRTCとの後方互換を保つことが出来る。「理屈の上の話かなぁ」とか思ってたら、既にshim実装してデモを公開している方(WebRTC界隈では有名人の&yetのfippo氏)がいた。
ORTCではSDPを明に使わないだけであって、WebRTCと互換するためには自分で書けばいい。なので、上記コードでも書かれている。
上記コードのスニペット。実際にChromeとEdgeで相互動作するらしい(未確認)デモがこちら。
JSコード
- ORTCのAPI仕様をざっくり知りたい人は、ORTC API updateを読むといい。
- 生のJSコードをざっと見たい人は、webrtcH4cKS: ~ First steps with ORTCがよくまとまっていてオススメ。
これからどうなっていくのか?
現行のWebRTCの流れを汲む、WebRTC 1.0に何を入れるのかは決まりつつある。9/9-10にシアトルで開催されたF2Fミーティングにて議論されており、10月末に開催されるTPACで合意されると考えられる。
詳細は、ついに募集開始された次世代Webカンファレンスで議論したいと考えている。