WebRTC

WebRTC (Web Real-Time Communication) について



WebRTCは、ウェブブラウザやモバイルアプリケーションにリアルタイム通信機能を提供する、自由でオープンソースのプロジェクトです。この技術を利用することで、プラグインのインストールやネイティブアプリのダウンロードなしに、ウェブページ上で直接ピアツーピア通信が可能になります。具体的には、ウェブブラウザ間でのボイスチャット、ビデオチャット、ファイルの共有などを容易に実装できます。

主要な特徴



  • - オープンソース: 誰でも自由に利用、開発、改良できる。
  • - プラグイン不要: ブラウザの標準機能として動作するため、追加のソフトウェアインストールが不要。
  • - リアルタイム通信: 低遅延で音声や映像、データのやり取りが可能。
  • - 主要ブラウザ対応: AppleGoogle、Microsoft、Mozilla、Operaといった主要なブラウザベンダーがサポート。

技術的な詳細



WebRTCは、単一のプロトコル仕様(プロトコルスイート)とJavaScript API仕様で構成されています。これらの仕様は、W3C(World Wide Web Consortium)およびIETF(Internet Engineering Task Force)によって定義され、複数の規格書に分散して記述されています。

WebRTCの主な目的は、ブラウザ、モバイルプラットフォーム、IoTデバイス向けに高品質なRTP(Real-time Transport Protocol)アプリケーションを開発しやすくすること、そして、共通のプロトコルセットで通信できるようにすることです。リファレンス実装BSD[[ライセンス]]の自由ソフトウェアとして公開されており、GStreamerをベースにしたOpenWebRTCという別のフリー実装も存在します。JavaScriptの開発者として知られるブレンダン・アイクは、WebRTCを「開かれたウェブへの戦いにおける新たな戦線」と評価しています。

歴史



WebRTCは、Googleがオープンソース化したことで、ブラウザにおけるリアルタイムコミュニケーションの基盤が形成されました。その後、IETFによるプロトコル標準化とW3CによるAPI標準化が進められました。W3CによるWebRTCのドラフトは、Google ChromeとMozilla Firefoxで実験的に実装され、APIはWHATWG(Web Hypertext Application Technology Working Group)で予備的に記述されました。このAPIはConnectionPeer APIと呼ばれ、Ericsson Labsによって標準概念実装が作成されました。

ウェブリアルタイムコミュニケーションワーキンググループは、以下の点を考慮して仕様を進化させています。

  • - IETFのRTCWEBグループとの連携。
  • - ローカルキャパシティとローカルストリームを公開する際のプライバシー問題。
  • - データチャネル実装に関する技術的な議論。
  • - 初期実験からの経験。
  • - 他のグループや個人からのフィードバック。

主要なAPI



WebRTCは主に以下のAPIで構成されています。

  • - `getUserMedia`: カメラやマイクなどのメディア入力をユーザーに許可する。
  • - `RTCPeerConnection`: ピア間でビデオや音声を直接やり取りするためのクラス。シグナリング、コーデック処理、P2P通信、セキュリティ、帯域管理を担う。
  • - `RTCDataChannel`: ピア間で任意のデータを双方向通信するためのクラス。WebSocketsと同じAPIを使用し、低レイテンシーを実現。

さらに、WebRTCには統計を取得するためのAPIである `getStats` も存在し、Webアプリケーションがセッションの統計情報を取得できるようにします。

シグナリングについて



WebRTC自体には、シグナリング(ピア同士の検索と接続確立プロセス)のためのAPIは含まれていません。アプリケーションでは、Interactive Connectivity Establishment(ICE)を利用します。ICEプロセスでは、シグナリングやNATトラバーサルのためにサーバーを介した通信が必要になる場合があります。

サポートブラウザ



WebRTCは以下の主要なブラウザでサポートされています。

PC


Android


その他


仕様の構成



WebRTCは、以下の6つの機能グループで構成されています。

1. ローカルシステムサポート機能
2. プライバシー懸念の解消(例:カメラアクセス許可)
3. RFC 7874の処理機能を実装するエンドポイント

用語



WebRTCに関連する主な用語は以下の通りです。

  • - リアルタイムメディア: コンテンツの生成と提示が時間的に密接して行われるメディア。例:電話ビデオ会議

関連規格



W3CやIETFにおいて、以下のWebRTC関連規格が策定されています。

  • - (W3C, IETF規格書)

脚注



W3C WebRTC API
IETF Real-Time Communication in WEB-browsers (rtcweb) Working Group

関連項目



  • - HTML5
  • - HTML5オーディオ
  • - DTLS-SRTP: WebRTCの鍵管理に不可欠なプロトコル

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。