WebRTCのスゴさ:ブラウザ間でカメラやマイクを使ったリアルタイムコミュニケーションを実現

杉山貴章(オングス)
2012-02-17 11:21:00
  • このエントリーをはてなブックマークに追加

W3CがWebRTC API仕様のワーキングドラフトを公開

 2月9日、W3CからWebRTC API(Real-time Communication Between Browsers API)仕様の最新のワーキングドラフトが公開された。WebRTCは、JavaScriptを使ってWebブラウザから端末のカメラやマイクにアクセスし、他のWebブラウザとのリアルタイムなコミュニケーションを行うことができる新しい規格である。

 多くのユーザーが十分に速い速度でインターネット回線を利用できる現在、音声やビデオを活用したリアルタイムなコミュニケーションも当たり前に使われるようになってきた。しかしながら、Webサイト上から手軽に始められるテキストベースのコミュニケーションと違い、音声やビデオを利用するには専用のクライアントソフトが必要となる。Webブラウザからでは、特別なプラグインを導入しない限りはマイクやカメラなどのデバイスを利用することができないからだ。

 WebRTCが普及すれば、その状況は大きく変わるかもしれない。WebRTCでは、Webブラウザ上で実行されるJavaScriptで端末のマイクやカメラなどのデバイスにアクセスできるようになる。取り込んだ音声や動画は、リアルタイムに他の端末のWebブラウザに送ることができる。つまり、Webアプリケーションにカメラやマイクを利用した新しいコミュニケーション機能を組み込むことが可能になるというわけだ。

WebRTCによる通信

 WebRTCのアーキテクチャは図1のようになっている。

図1 WebRTCのアーキテクチャ
図1 WebRTCのアーキテクチャ(出典:WebRTC Architecture

 大きく分けると、次の4つの要素から構成されることが分かる。

  • Web API - Webアプリケーションから利用するためのAPI
  • Session management/Abstract signaling - セッション管理やP2Pマッチングの仕組み
  • Audio/Video Engine - オーディオおよびビデオのコーデック
  • Transport - ネットワークを使ったデータ転送の仕組み

 このうち、Webアプリケーションの開発者に深く関係するのはWeb APIであり、W3Cによって公開されたのはこの仕様のワーキングドラフトになる。このドラフトでは、主に次の2種類のAPIが提案されている。

  • Stream API - メディアデータのストリーミングをサポートする
  • Peer-to-peer Connnections - ブラウザ間のP2Pによる通信をサポートする

 Stream APIの核になるのはMediaStreamインタフェースである。MediaStreamはメディアデータ(主にビデオとオーディオ)のストリーミングによる入出力をサポートする。端末のデバイスからデータを取得して配信する場合には、MediaStreamのサブインタフェースであるLocalMediaStreamを利用する。LocalMediaStreamオブジェクトはgetUserMedia()というメソッドを使って取得することができるが、この部分の実装はブラウザの実装やコーデックへの依存度が強いため、独立した仕様(「getusermedia: Getting access to local devices that can generate multimedia streams」)として策定が進められている。

 一方でP2Pによる通信の核になるのはPeerConectionインタフェースで、このインタフェースを通じてWebブラウザ間の直接的な通信を確立することができる。実際のメディアデータの送受信はMediaStreamによって行う。

 画面への表示や音声出力は、videoタグやcanvasタグ、audioタグを利用して行うことになる。これらのオブジェクトに渡すメディアデータの入力元が、ローカルのデバイスや接続先のWebブラウザになるというイメージだ。

  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]