「WebRTC」の版間の差分
m Bot作業依頼: Apple関連記事の改名に伴うリンク修正依頼 (Apple|Apple) - log |
m Bot作業依頼: Apple関連記事の改名に伴うリンク修正依頼 (iOS (Apple)) - log |
||
59行目: | 59行目: | ||
* [[Firefox OS]] |
* [[Firefox OS]] |
||
* [[BlackBerry 10]] |
* [[BlackBerry 10]] |
||
* [[IOS ( |
* [[IOS (Apple)|iOS]] |
||
** MobileSafari/WebKit([[iOS 11]]+) |
** MobileSafari/WebKit([[iOS 11]]+) |
||
* [[Tizen]] 3.0 |
* [[Tizen]] 3.0 |
2021年5月21日 (金) 00:25時点における版
作者 |
Justin Uberti Peter Thatcher |
---|---|
初版 | 2011年 |
最新版 |
1.1
/ 2017年5月4日 |
リポジトリ |
webrtc |
プログラミング 言語 | C++[1]、JavaScript |
ライセンス | BSDライセンス |
公式サイト |
webrtc |
WebRTC(英語: Web Real-Time Communication)は、ウェブブラウザやモバイルアプリケーションにシンプルなAPI経由でリアルタイム通信(英語: real-time communication; RTC)を提供する自由かつオープンソースのプロジェクトである。ウェブページ内で直接ピア・ツー・ピア通信を行うことによって、プラグインのインストールやネイティブアプリをダウンロードを行わなくても、ウェブブラウザ間のボイスチャット、ビデオチャット、ファイル共有などを実装できるようになる[2]。WebRTCは、Apple、Google、マイクロソフト、Mozilla、Operaがサポートしており、World Wide Web Consortium(W3C)およびInternet Engineering Task Force(IETF)で標準化が進行中である[3]。
WebRTCの目的は、「ブラウザ、モバイルプラットフォーム、IoTデバイス向けのリッチで高品質なRTPアプリケーションを、開発できるようにし、共通のプロトコルセットで通信できるようにすること」である[3]。リファレンス実装がBSDライセンスのフリーソフトウェアとして公開されている。また、マルチメディアフレームワークのGStreamerをベースに実装されたOpenWebRTCという別のフリー実装も存在する。JavaScriptを発明したブレンダン・アイクは、WebRTCのことを 「妨げなく開かれているウェブへの戦いにおける新たな戦線」であると評している[4]。
歴史
ブラウザでリアルタイムなコミュニケーションを可能にするWebRTCは、Googleによってオープンソース化されており[5]、IETFによる関連プロトコル[6]とW3Cによるブラウザ対応APIの標準化が進められてきた[7]。
W3CによるWebRTCのドラフト[8]は、Google ChromeとMozilla Firefoxで特別に実験的に実装が行われる。APIはWHATWGに予備的に記述され[9]、ConnectionPeer APIと呼ばれており、Ericsson Labsが仮の標準概念実装として作成している[10]。ウェブリアルタイムコミュニケーションワーキンググループは、この仕様が以下の項目に基づいて進化することを期待している。
- ウェブブラウザでのリアルタイムなコミュニケーションを可能にするこのドキュメントと一緒に一連のプロトコルを定義するためのIETFにおける仲間のRTCWEBグループ[11]での継続的交流の成果
- ローカルキャパシティとローカルストリームを公開する時に発生するプライバシー問題
- 特殊な環境でデータチャネルの実装に関するグループでの技術的ディスカッション[12]
- 初期の実験を通して得られる経験
- 他のグループや個人からのフィードバックの受け取り
概要
設計
WebRTCを構成する主要な API を次に挙げる。
getUserMedia
カメラやマイクなどのメディア入力の利用をユーザーに許可させる[13]。RTCPeerConnection
ピア同士で直接ビデオ・音声をやりとりするためのクラス。シグナリング、コーデックの処理、P2P通信、セキュリティおよび帯域管理を担う[14]。RTCDataChannel
ピア間の双方向通信で任意のデータを扱うためのクラス。WebSocketsと同じAPIを利用しており、レイテンシーが非常に低い[15]。
WebRTC には統計のためのAPIもある。
getStats
はWebRTCセッションの統計をWebアプリケーションが取得可能にする。なお、統計に関する仕様は別のW3Cドキュメントになっている[16]。
WebRTC自体には、シグナリング(ピア同士の検索と接続確立のためのプロセス)のためのAPIは含まれない。代わりに、アプリケーションではInteractive Connectivity Establishment(ICE)を用いる。なお、ICEのプロセスではシグナリングやNATトラバーサルのためにサーバーを介した通信が必要な場合がある。
サポート
WebRTCは以下のブラウザでサポートされている。
- PC
- Microsoft Edge 12+[17]
- Google Chrome 28+
- Mozilla Firefox 22+[18]
- Safari 11+[19]
- Opera 18+[20]
- Vivaldi 1.9+
- Brave
- Android
- Google Chrome 28+(デフォルトで有効なのは 29以降)
- Mozilla Firefox 24+[21]
- Opera Mobile 12+
- Chrome OS
- Firefox OS
- BlackBerry 10
- iOS
- MobileSafari/WebKit(iOS 11+)
- Tizen 3.0
脚注
- ^ https://webrtc.googlesource.com/src/webrtc/
- ^ How WebRTC Is Revolutionizing Telephony. Blogs.trilogy-lte.com (2014-02-21). Retrieved on 2014-04-11.
- ^ a b “WebRTC”. WebRTC. 8 January 2018時点のオリジナルよりアーカイブ。6 February 2018閲覧。
- ^ “WebRTC: Plugin-free realtime communication”. 6 February 2018閲覧。
- ^ “Google release of WebRTC source code from Harald Alvestrand on 2011-05-31 (public-webrtc@w3.org from May 2011)”. Lists.w3.org. 2012年9月12日閲覧。
- ^ https://tools.ietf.org/wg/rtcweb/charters?item=charter-rtcweb-2011-05-03.txt
- ^ “WebRTC 1.0: Real-time Communication Between Browsers”. W3.org. 2012年9月12日閲覧。
- ^ “WebRTC 1.0: Real-time Communication Between Browsers”. Dev.w3.org. 2012年9月12日閲覧。
- ^ href. “1 Introduction — HTML Standard”. Whatwg.org. 2012年9月12日閲覧。
- ^ “Beyond HTML5: Peer-to-Peer Conversational Video | Ericsson Labs”. Labs.ericsson.com. 2012年9月12日閲覧。
- ^ “Rtcweb Status Pages”. Tools.ietf.org. 2012年9月12日閲覧。
- ^ “draft-jesup-rtcweb-data-protocol-00 - WebRTC Data Channel Protocol”. Tools.ietf.org. 2012年9月12日閲覧。
- ^ “Media Capture and Streams: getUserMedia”. W3C (2013年9月3日). 2014年1月15日閲覧。
- ^ “WebRTC: RTCPeerConnection Interface”. W3C (2013年9月10日). 2014年1月15日閲覧。
- ^ “WebRTC: RTCDataChannel”. W3C (2013年9月10日). 2014年1月15日閲覧。
- ^ “Identifiers for WebRTC's Statistics API”. W3C (2014年9月29日). 2020年8月31日閲覧。
- ^ “ORTC API is now available in Microsoft Edge”. Microsoft (2015年9月18日). 2020年8月31日閲覧。
- ^ Firefox Notes - Desktop. Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
- ^ “Safari 11.0”. Apple Inc.. 6 June 2017閲覧。
- ^ Opera News. blogs.opera.com (2013-11-19). Retrieved on 2015-09-17.
- ^ Firefox Notes - Desktop. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
関連項目
- HTML5
- HTML5オーディオ
- Datagram Transport Layer Security(DTLS)および Secure Real-time Transport Protocol(SRTP) - DTLS-SRTPはWebRTCの鍵管理に不可欠なプロトコルである