Chrome 47 WebRTC: メディア録画、安全な送信元、プロキシ処理

Chrome 47 では、WebRTC の重要な機能強化と更新がいくつか行われます。

ウェブアプリから動画を撮影する

MediaStreamRecorder API は、2, 500 以上の星を獲得し、Chromium.org の首位のリクエストを数多く獲得しています。Media Recording が、試験運用版 Web Platform の機能フラグの背後に Chrome に追加されました。現時点ではパソコン版のみですが、これにより、動画の録画、再生、一時保存が可能になります。WebRTC サンプル リポジトリには簡単なデモがあります。discuss-webrtc のお知らせで詳細を確認できます。スクリーン キャプチャから動画を録画するための Chrome アプリのサンプルは github.com/niklasenbom/RecordingApp で入手できます。これらはまったく新しい実装であり、まだ解決すべきバグがある可能性があります。問題が発生した場合は、リポジトリで問題を報告してください。

WebRTC GitHub サンプル リポジトリの MediaRecorder デモのスクリーンショット

音声出力デバイスの選択

MediaDevices.enumerateDevices() がリリースされました。詳しくは、Chromium の問題 504280 をご覧ください。MediaStreamTrack.getSources() がすでに提供しているオーディオ入力デバイスとビデオ入力デバイスに加えて、オーディオ出力デバイスを列挙できるようになりました。使用方法について詳しくは、こちらのアップデートをご覧ください。

Windows でのデバイス サポート

Windows でのデフォルトの通信デバイスのサポートが追加されました。つまり、Windows でオーディオ デバイスを列挙する場合、ID が「communications」の通信デバイスのエントリが追加で存在します。

デフォルトのオーディオ機器(および Windows の通信)のデバイス ID がハッシュ化されなくなります(問題 535980)。代わりに、「default」と「communications」の 2 つの予約済み ID がサポートされており、すべてのセキュリティ オリジンで同じです。デバイスラベルはブラウザの言語 / 地域に変換されるため、ラベルに定義済みの値があることをデベロッパーが前提としないようにする必要があります。キャプチャ タイムスタンプをレンダリング アルゴリズムに伝播し、それに基づいて適切な vsync を選択できるように、動画レンダリングの精度が向上しました。Windows プラットフォームの場合、Chrome 47 ではキャプチャ タイムスタンプの精度も向上しています。

プロキシ処理

Chrome 47 では、WebRTC トラフィックがローカル プロキシ サーバーを経由する場合に、そのサーバーを経由するように新しい設定が追加されます。これは、VPN でブラウジングする一部のユーザーにとって重要です。つまり、WebRTC アプリケーションはプロキシ IP アドレスのみを認識します。ただし、この方法はアプリケーションのパフォーマンスを低下させるほか、アプリケーションが TURN/TCP または ICE-TCP をサポートしていない限りまったく機能しません。この設定の UI を提供する新しいバージョンの WebRTC Network Limiter Extension をまもなく提供する予定です。IP アドレスの「漏洩」について詳しくは、WebRTC の次のステップをご覧ください。

Chrome 拡張機能の WebRTC Network Limiter

その他

高レイテンシの接続に対するデータチャネルのスループットが大幅に向上しました。

DTLS 1.2 のサポートは、Chrome 47 で段階的に展開します。

このリリースでは VP9 と H.264 のどちらもサポートされていませんが、これらについては継続して対応します。Google は Chrome 48 に VP9 のサポートと H.264 の初期バージョン(フラグの背後)を実装したいと考えています。

公共広告

  • Chrome 47 以降、getUserMedia() リクエストは安全なオリジン(HTTPS または localhost)からのみ許可されます。
  • RTP データチャネルのサポートは終了しました。まだ RTP データチャネルを使用している残りのアプリケーションでは、代わりに標準データチャネルを使用する必要があります。

すべてのリリースと同様に、Canary、Dev、Beta チャンネルで Chrome を試し、問題が見つかった場合はご報告ください。こうしたサポートは非常に貴重です。適切なバグレポートを提出する方法については、WebRTC のバグレポートをご覧ください。

デモ

補足説明