がねこまさし

WebRTCの最新動向が満載!WebRTC Update(Google I/O 2014番外編)

  • 6
  • 1
  • 39
連載: Google I/O 2014 特集 (10)

Google I/Oの後で

Google I/Oの後に、技術者が集結したサンフランシスコで様々なイベントが開催されたようです。WebRTC関連として、Kranky Geek WebRTC Event というものがあり、そこでGoogleからWebRTC Updateと題した発表がありました。今回はその50分のセッション映像から、ハイライトをご紹介します。

掴みはcardboard

最初の掴みは、DataChannelで制御できるローバー(自走車)です。キーノートで配布されたcardboardに装着したAndroidでローバーの首を振ってカメラの向きを制御できます。カメラの映像は当然WebRTCで伝達され、cardborad越しに見ることができます。(3分40秒あたり
※ぜひ体験してみたいですね。ちなみにcardboradはキーノートの最後に配布された、段ボールで組み立てるVRツールです。今回のI/Oの真の目玉とも言われています。 cardboard_20140713_122555cardboard_20140713_123358

Chromeのロードマップ

次に、ChromeにおけるWebRTCのロードマップの説明が始まりました。(6分20秒あたりから)。10分ぐらいには、対応予定の一覧が出てきます。
afterio01

Chrome 36

  • Chrome 36 (2~3週間でリリース予定)では、Bandwidth Estimationを搭載
  • 帯域推定、帯域制御を行い、HD映像も含めて圧縮を最適化

Chrome 37

  • Chrome 37 (3Qリリース予定)では、カメラへのアクセス許可を求めるUIを分かりやすく改善
  • カメラ/マイクへのアクセスだけでなく、位置情報や、ローカルストレージへのアクセスなど、ユーザの許可を得るためのUI全般を改善予定
  • Opus改善、MacでのQTKitからAVFoundationへの変更
  • Bitrate制御のための新しいAPIを導入。ストリーム毎に指定できるようにする予定

その先

  • 2014年末までに、RTCSender/Receiverを導入。WebRTC 1.1や、ORTCにも繋がる仕様
  • 2014年末までに、改善された動画コーデックVP9を導入。DataChannelでQUICサポートを追加
  • 2014年末までに、録画/録音用のRecorderをサポートしたい

※個人的には、WebRTC1.1への準備と、録画機能のサポートに注目しています。

モバイルでの改善

20分50秒あたりからは、モバイルサポートのロードマップです。
afterio02

Androidから

  • Android “L” のWebViewがChromeベースになり、WebAudioと、WebRTCをフルサポート
  • Bandwidth Estimation をモバイル用に改善(LTEなどを考慮)
  • 64bit版に対応
  • 映像のエンコーディングにGPUを活用
  • 低価格のAndroid One でもWebRTCを使える様に

※WebViewからWebRTCが使えると、ネイティブアプリに組み込むのも容易になりますね。

iOSの話も

ネイティブアプリ用のライブラリが公開されていますが、その改善の話もありました。

  • 現在は欠落しているDataChannelをサポート
  • Bandwidth Estimation をモバイル用に改善(LTEなどを考慮)
  • GPUを利用

※iOSでもAppleで公式にサポートしてほしいのですが、まずはオープンソース側で着実に前進することが重要だと思います。

AppRTCなど

  • リファレンスであるAppRTCも、モバイル向けにUIなどを改善
  • TURNサーバーをGoogle Compute Engineで動かすプロジェクトをgithubで公開中
  • ネットワーク負荷を見てオートスケールさせる仕組みを盛り込むべく、GCEチームと協議中

※Google Compute Engineと言いながら、Google App Engine用です。良くみたら、”start and stop Google Compute Engine instances on demand” ということで、GCEのインスタンスを制御する、GAEのアプリでした。

WebRTC1.0、そして1.1に向けて

  • WebRTC 1.0では完結した安定なAPIセットを提供する
  • WebRTCは1.1へ進化する。1.0との互換性を維持しながら、新しい要素を取り込む
  • ORTCで提唱されている新しい要素(RTPSender/Receiverなど)も取り込み、相互接続を実現する予定
  • 面倒なことは裏側で自動的に処理されるが、自分でフルにコントロールできるAPIも同時に提供する

コーデックの話

  • Googleは現時点ではVP8がベストだと考えている
  • H.264用のパッチをサブミットするのは拒否しないし、自分で組み込めば使える。Chromeには入れないけどね
  • 年末にVP9に対応する。来年はVP9がベストな選択肢になると思う

VP9について

  • インターネットのトラフィックの61%が動画のストリーム
  • 動画の伸び率ほど、ネットワークの帯域の伸びはない。そのためより効率がよいコーデックが必要
  • Chromeで再生されるYoutubeのストリームの60%が既にVP9になっている(人気のある動画から変換している)
  • VP9のエンコード速度は大きく改善されてきている
  • AndroidではKitkatからVP9コーデックをサポート

One more thing…

最後にOne more thing..として、アナウンスがありました。

  • Google Hangoutで、WebRTCを利用するようになる
  • まずはChromeのDev版、そしてベータ版に入れる。ゆっくりロールアウトさせる
  • 多人数での会議など、既存の機能を落とさないように慎重に取り組んでいる

※WebRTCのPeer-to-Peer構成で問題になるコネクション爆発を、何らかのサーバー(MCU)で解決しているのでしょう。それをGoogle Compute Engineで公開して欲しい……

他にも

Kranky Geek WebRTC Eventからは多くのセッション動画が公開されています。

Google I/O本体にはWebRTCのセッションはありませんでしたが、サンフランシスコは盛り上がったようです。参加したかった……

Powered byNTT Communications

tag list

アクセシビリティ イベント エンタープライズ デザイン ハイブリッド パフォーマンス ブラウザ プログラミング マークアップ モバイル 海外 高速化 Angular2 AngularJS Canvas Chrome Cordova CSS de:code ECMAScript Edge Firefox Google Google I/O Google I/O 2014 HTML5 Conference 2013 html5j IoT JavaScript Microsoft Node.js PhoneGap Polymer SkyWay spdy TypeScript UI UX W3C W3C仕様 Webアプリ Web Components WebGL WebRTC WebSocket