トップQs
タイムライン
チャット
視点
WebRTC
ウィキペディアから
Remove ads
Web Real-Time Communication (略称: WebRTC[2]) は、ウェブブラウザやモバイルアプリケーションにシンプルなAPI経由でリアルタイム通信を提供する自由かつオープンソースのプロジェクトである。
Remove ads
ウェブページ内で直接ピア・ツー・ピア通信を行うことによって、プラグインのインストールやネイティブアプリのダウンロードを行わなくても、ウェブブラウザ間のボイスチャット、ビデオチャット、ファイル共有などを実装できるようになる[3]。WebRTCは、Apple、Google、マイクロソフト、Mozilla、Operaがサポートしている。
WebRTC は 1 つのプロトコル仕様(プロトコルスイート)と 1 つの JavaScript API 仕様からなる[4]。これら仕様は W3C および IETF の複数の規格書に跨って定義されている。
WebRTCの目的は、「ブラウザ、モバイルプラットフォーム、IoTデバイス向けのリッチで高品質なRTPアプリケーションを、開発できるようにし、共通のプロトコルセットで通信できるようにすること」である[5]。リファレンス実装がBSDライセンスの自由ソフトウェアとして公開されている。また、マルチメディアフレームワークのGStreamerをベースに実装されたOpenWebRTCという別のフリー実装も存在する。JavaScriptを発明したブレンダン・アイクは、WebRTCのことを 「妨げなく開かれているウェブへの戦いにおける新たな戦線」であると評している[6]。
Remove ads
歴史
ブラウザでリアルタイムなコミュニケーションを可能にするWebRTCは、Googleによってオープンソース化されており[7]、IETFによる関連プロトコル[8]とW3Cによるブラウザ対応APIの標準化が進められてきた[9]。
W3CによるWebRTCのドラフト[10]は、Google ChromeとMozilla Firefoxで特別に実験的に実装が行われる。APIはWHATWGに予備的に記述され[11]、ConnectionPeer APIと呼ばれており、Ericsson Labsが仮の標準概念実装として作成している[12]。ウェブリアルタイムコミュニケーションワーキンググループは、この仕様が以下の項目に基づいて進化することを期待している。
Remove ads
概要
設計
WebRTCを構成する主要な API を次に挙げる。
getUserMedia
カメラやマイクなどのメディア入力の利用をユーザーに許可させる[15]。RTCPeerConnection
ピア同士で直接ビデオ・音声をやりとりするためのクラス。シグナリング、コーデックの処理、P2P通信、セキュリティおよび帯域管理を担う[16]。RTCDataChannel
ピア間の双方向通信で任意のデータを扱うためのクラス。WebSocketsと同じAPIを利用しており、レイテンシーが非常に低い[17]。
WebRTC には統計のためのAPIもある。
getStats
はWebRTCセッションの統計をWebアプリケーションが取得可能にする。なお、統計に関する仕様は別のW3Cドキュメントになっている[18]。
WebRTC自体には、シグナリング(ピア同士の検索と接続確立のためのプロセス)のためのAPIは含まれない。代わりに、アプリケーションではInteractive Connectivity Establishment(ICE)を用いる。なお、ICEのプロセスではシグナリングやNATトラバーサルのためにサーバーを介した通信が必要な場合がある。
サポート
WebRTCは以下のブラウザでサポートされている。
- PC
- Microsoft Edge 12+[19]
- Google Chrome 28+
- Mozilla Firefox 22+[20]
- Safari 11+[21]
- Opera 18+[22]
- Vivaldi 1.9+
- Brave
- Android
- Google Chrome 28+(デフォルトで有効なのは 29以降)
- Mozilla Firefox 24+[23]
- Opera Mobile 12+
- ChromeOS
- Firefox OS
- BlackBerry 10
- iOS
- MobileSafari/WebKit(iOS 11+)
- Tizen 3.0
Remove ads
仕様
要約
視点
次の 6 つの機能グループ(functionality groups)からなる:
Local system support functions
用語
以下は WebRTC の文脈で専門用語として意味が定義された用語の一例である[33]。
リアルタイムメディア
WebRTC におけるリアルタイムメディア (Real-Time Media) はコンテンツの生成と提示が時間的に密接して起きるよう意図されたメディアである(生成-表示遅延が数 100 ミリ秒以内)[34]。
規格書
W3C や IETF において WebRTC の規格が策定されている。以下はその一部である:
脚注
関連項目
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads