Chrome 47 では、WebRTC の重要な機能強化と更新がいくつか行われます。
ウェブアプリから動画を撮影する
MediaStreamRecorder
API は、2, 500 以上の星を獲得し、Chromium.org の首位のリクエストを数多く獲得しています。Media Recording が、試験運用版 Web Platform の機能フラグの背後に Chrome に追加されました。現時点ではパソコン版のみですが、これにより、動画の録画、再生、一時保存が可能になります。WebRTC サンプル リポジトリには簡単なデモがあります。discuss-webrtc のお知らせで詳細を確認できます。スクリーン キャプチャから動画を録画するための Chrome アプリのサンプルは github.com/niklasenbom/RecordingApp で入手できます。これらはまったく新しい実装であり、まだ解決すべきバグがある可能性があります。問題が発生した場合は、リポジトリで問題を報告してください。
音声出力デバイスの選択
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 の次のステップをご覧ください。
その他
高レイテンシの接続に対するデータチャネルのスループットが大幅に向上しました。
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 のバグレポートをご覧ください。
デモ
- MediaRecorder
enumerateDevices():
補足説明
- MediaRecorder の実装ステータス
- メディア キャプチャとストリーム編集者のドラフト: MediaDevices
- Audio Output Devices API
- WebRTC の更新