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

Chrome 47 には、WebRTC の大幅な機能強化とアップデートがいくつか含まれています。

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

MediaStreamRecorder API は、chromium.org で 2, 500 件を超えるスターを獲得し、長らく要望の多い機能の 1 つでした。メディア録画機能は、試験運用版のウェブ プラットフォーム機能フラグの背後で 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)。代わりに、予約済みの ID である「default」と「communications」がサポートされており、これらはすべてのセキュリティ オリジンで同じです。デバイスラベルはブラウザの言語 / 地域に変換されるため、デベロッパーはラベルに所定の値があることを想定しないでください。キャプチャ タイムスタンプをレンダリング アルゴリズムまで伝播することで、動画レンダリングの精度が向上しました。これにより、適切な垂直同期をそのタイムスタンプに基づいて選択できます。Windows プラットフォームでは、Chrome 47 でキャプチャ タイムスタンプの精度も向上しています。

プロキシ処理

Chrome 47 では、ローカル プロキシ サーバーが構成されている場合に、WebRTC トラフィックをローカル プロキシ サーバー経由で強制的に送信する新しい設定が追加されました。これは、VPN 経由でブラウジングする一部のユーザーにとって重要な設定です。つまり、WebRTC アプリケーションにはプロキシ IP アドレスのみが表示されます。この設定はアプリケーションのパフォーマンスに影響し、アプリケーションが TURN/TCP または ICE-TCP をサポートしていない場合はまったく機能しません。この設定の UI を提供する WebRTC ネットワーク制限拡張機能の新しいバージョンがまもなくリリースされます。IP アドレスの「漏洩」について詳しくは、WebRTC の今後の展開をご覧ください。

WebRTC Network Limiter Chrome 拡張機能

...その他

高遅延接続でのデータチャネルのスループットが大幅に改善されました。

Chrome 47 の期間中に、DTLS 1.2 のサポートを段階的に展開します。

このリリースでは VP9 も H.264 もサポートされていませんが、これらの作業は継続されており、Chrome 48 では VP9 と H.264 の初期バージョン(フラグの背後)のサポートを実装できる見込みです。

公共広告

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

すべてのリリースと同様に、デベロッパーの皆様には Canary、Dev、Beta の各チャンネルで Chrome をお試しいただき、問題が見つかった場合はご報告いただくことをおすすめします。いただいたサポートは非常に貴重です。優れたバグレポートを提出する方法については、WebRTC バグページをご覧ください。

デモ

関連リソース