こんにちは、編集長の白石です。
本日は、WebRTC Conference 2016に来ております。 WebRTCの「今」をお伝えするレポートを、HTML5 Experts.jp編集部一同よりお送りいたします。
まずは基調講演より。「Status Update on WebRTC from Google」と題した、GoogleプロダクトマネージャーWebRTC ニコラス・ブルーム氏によるセッションです。
ブルーム氏のセッションは非常に専門性が高く、情報量も凄まじかったため、ここではポイントを絞って簡潔にお伝えいたします。 セッションのスライドは以下のURLからからご覧いただけます(Google Slides)。
WebRTCのエンドポイントは30億台!
まずセッションは、WebRTCの5年間についてのサマリーから始まりました。 WebRTCは、5年前にGoogleが実装をオープンソース化したところから始まったもの。 Facebook MessengerやGoogle Hangoutsなどの著名なアプリに利用されているだけでなく、WebRTCのエンドポイントとして動作する端末の台数は30億台(PC/ブラウザが13億台、モバイル/スマートフォンが13億台、タブレットが3〜4億台)にも及ぶとのこと。 対応サービスも月に平均26個というペースで増え続けているそうで、WebRTCの勢いはもはや本物と言って良いでしょう。
動画や音声の対応を改善
VP9
VP8/VP9とは、Googleがオープンソースで開発を進めている動画コーデックです。VP9は、画質の劣化をほとんど伴うことなくデータ量を30%削減できるとのこと。 VP9は、Chromeでは既に利用可能で、WebRTCの参照実装的なサービスAppRTCではデフォルトで有効化されています。
H.264のサポート
いよいよ、Google ChromeがWebRTC上でのH.264コーデックをサポートします。 最初のリリースではソフトウェアによるコーデックのみ(エンコードはOpenH264, デコードはlibffmpeg)で、Google Chrome 50からフラグ付きで利用できるようになります。
Opus 1.1.2のサポート
完全フリーで高品質な音声コーデックであるOpusは最新バージョンである1.1.2になり、プラットフォームやアーキテクチャに非依存の最適化が行われました。 様々なシチュエーションで、エンコード効率を10%、デコード効率を15〜17%改善します。
様々な新機能のサポート
Google Chromeにおいて、魅力的な新機能が数多く追加される予定です。
- 音声の出力デバイスを選べる新しいJavaScript API(
HTMLMediaElement.setSinkId()
) - デバイスの一覧を取得するためのAPIがアップデート(
MediaDevices.enumerateDevices()
)。システムで利用可能なカメラ、マイク、スピーカーの一覧を得ることが出来る Promise
ベースのAPIがRTCPeerConnection
に追加- 録画! WebRTCを通じて受信したメディアデータをローカルに保存し、再生できるようになります。
- スクリーン共有機能の改善。現在は画面全体、もしくはブラウザウィンドウ全体のスクリーン共有に限定されていますが、今後、タブの中のコンテンツだけを共有できるようになります。ブックマークや通知は表示されません。Google Chrome 50からフラグ付きで利用できるようになります。
- スクリーン共有時のオーディオサポート。Google Chrome 50からフラグ付きで利用できるようになります。
- canvas要素、video要素との統合。canvasで加工した動画をWebRTCで送信…といったことも可能になるので、エンターテインメント用途などにも活躍しそうです。
WebRTC仕様のアップデート
仕様としてのWebRTCは、1.0を2016年の第一四半期に勧告候補(Candidate Recommendation)とすることを目指しています。WebRTC 1.0では、ORTC(Object Real-time Communication: マイクロソフトが開発した、WebRTCよりもローレベルなコントロールを可能にするAPI群)のアイデアを多く取り入れ、より直接的な制御を可能にするオブジェクト指向のAPIが提供されます。WebRTC 1.0は、Chromeに2016年中に実装される予定です。
駆け足&ざっくりの紹介でしたが、いかがでしたでしょうか? WebRTCがものすごい勢いで進化していることが、少しでも文章を通じてお伝えできれば幸いです。