ついにマイクロソフトのEdgeチームから、「EdgeでORTCが動作」が公式にアナウンスされた。

ORTC API is now available in Microsoft Edge

ortc image

既に開発中である旨は以前からアナウンスされていたが、ついに開発者が触れて、デモが見れるレベルにまで到達した。(ORTCがそもそも不明な過去記事を読んでいただければ)

さらに同日マイクロソフトのSkypeチームからも、SkypeでのORTC利用について言及された記事が公開されている。

Enabling seamless communication experiences for the web with Skype, Skype for Business and Microsoft Edge

本ポストでは、上記のブログを読んで気になった点のピックアップおよび、同時に発表されている関連情報をまとめておく。

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氏)がいた。

Shim

ORTCではSDPを明に使わないだけであって、WebRTCと互換するためには自分で書けばいい。なので、上記コードでも書かれている。

SDPの組み立て

上記コードのスニペット。実際にChromeとEdgeで相互動作するらしい(未確認)デモがこちら。

SimpleWebRTC

JSコード


これからどうなっていくのか?

現行のWebRTCの流れを汲む、WebRTC 1.0に何を入れるのかは決まりつつある。9/9-10にシアトルで開催されたF2Fミーティングにて議論されており、10月末に開催されるTPACで合意されると考えられる。

詳細は、ついに募集開始された次世代Webカンファレンスで議論したいと考えている。