(私の考える)WebRTCの範囲
WebRTCって何を指すのか?というのが時々話題になります。そこで私が考えるWebRTCの範囲をAPIと通信仕様に分けて整理してみました。
間違っているところを見つけたら、ぜひコメントにてご指摘ください!
API
プラウザ用API
ブラウザ用APIはW3CのWeb Real-Time Communications Working Groupで策定中です。その一覧と、私の解釈を書き出してみます。
- WebRTC 1.0: Real-time Communication Between Browsers ... 狭義のWebRTCで、このファミリーの主役。いわゆるPeerConnectionのことで、堂々のNo.1のポジション
- Media Capture and Streams (getUserMedia) ... ファミリーのNo.2。いわゆるgetUserMedia/gUM で、PeerConnectionの相方
- MediaStream Recording ... 録画/録音を行うMediaRecorder。個人的にはNo.3の存在
- MediaStream Image Capture ... gUMと組み合わせて静止画を取り出す機能。個人的にはいまいち使いどころが分からない
- Media Capture Depth Stream Extensions ... 深度カメラから、深度の情報をグレースケールの映像として取得。対応したカメラが必要
- Media Capture from DOM Elements ... CanvasやVideo, Audioタグから映像/音声ストリームを取得。個人的は大好きで、No.3の座を伺う存在
- Audio output devices API ... 音声出力先を選択できる。高度なサービスには役立ちそうだが、慎重に利用しないと「音が出ない」クレームにつながりそう
- Identifiers for WebRTC's Statistics API ... 通信状況の統計情報を取得できる、実用的なサービスには不可欠な機能。早くきちんと策定、実装して欲しいと願っている人も多いはず
- Screen Capture ... スクリーンの動画キャプチャーの仕組みで、世の中的には重要度No.3では。早く機能拡張不要で実現して欲しいところ
関連するAPI
- Web Audio API ... MediaStreamとWebAudioの相互変換をカバー。音の加工には必須
ネイティブアプリ向けAPI
WebRTCはブラウザだけでなく、ネイティブアプリでも利用できます。PeerConnectionに相当する部分はwebrtc.org/native-code/で整備されています。gUMに相当する部分も、プラットフォームに合わせて提供されています。
通信に関わる仕様
実際の通信に関わる部分は、IETFのRTCWEB working groupで策定されています。リンク先の一覧には多くのRFCが含まれますが、それ以前から存在するさまざまなRFCも利用されています。正直なところ、私は把握できていません。
詳しくは、こちらの記事をご参照ください。