WebRTC

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。TAKAHASHI Shuuji (会話 | 投稿記録) による 2020年8月31日 (月) 00:46個人設定で未設定ならUTC)時点の版 (壊れたWikiリンクの修正と細かな表記の修正を行いました。)であり、現在の版とは大きく異なる場合があります。

WebRTC
作者 Justin Uberti
Peter Thatcher
初版 2011年 (13年前) (2011)
最新版
1.1 / 2017年5月4日 (7年前) (2017-05-04)
リポジトリ webrtc.googlesource.com
プログラミング
言語
C++[1]JavaScript
ライセンス BSDライセンス
公式サイト webrtc.org
テンプレートを表示

WebRTC英語: Web Real-Time Communication)は、ウェブブラウザモバイルアプリケーションにシンプルなAPI経由でリアルタイム通信(英語: real-time communication; RTC)を提供する自由かつオープンソースのプロジェクトである。ウェブページ内で直接ピア・ツー・ピア通信を行うことによって、プラグインのインストールやネイティブアプリをダウンロードを行わなくても、ウェブブラウザ間のボイスチャットビデオチャットファイル共有などを実装できるようになる[2]。WebRTCは、アップルGoogleマイクロソフトMozillaOperaがサポートしており、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は以下のブラウザでサポートされている。

脚注

  1. ^ https://webrtc.googlesource.com/src/webrtc/
  2. ^ How WebRTC Is Revolutionizing Telephony. Blogs.trilogy-lte.com (2014-02-21). Retrieved on 2014-04-11.
  3. ^ a b WebRTC”. WebRTC. 2018年1月8日時点のオリジナルよりアーカイブ。2018年2月6日閲覧。
  4. ^ WebRTC: Plugin-free realtime communication”. 2018年2月6日閲覧。
  5. ^ 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日閲覧。
  6. ^ https://tools.ietf.org/wg/rtcweb/charters?item=charter-rtcweb-2011-05-03.txt
  7. ^ WebRTC 1.0: Real-time Communication Between Browsers”. W3.org. 2012年9月12日閲覧。
  8. ^ WebRTC 1.0: Real-time Communication Between Browsers”. Dev.w3.org. 2012年9月12日閲覧。
  9. ^ href. “1 Introduction — HTML Standard”. Whatwg.org. 2012年9月12日閲覧。
  10. ^ Beyond HTML5: Peer-to-Peer Conversational Video | Ericsson Labs”. Labs.ericsson.com. 2012年9月12日閲覧。
  11. ^ Rtcweb Status Pages”. Tools.ietf.org. 2012年9月12日閲覧。
  12. ^ draft-jesup-rtcweb-data-protocol-00 - WebRTC Data Channel Protocol”. Tools.ietf.org. 2012年9月12日閲覧。
  13. ^ Media Capture and Streams: getUserMedia”. W3C (2013年9月3日). 2014年1月15日閲覧。
  14. ^ WebRTC: RTCPeerConnection Interface”. W3C (2013年9月10日). 2014年1月15日閲覧。
  15. ^ WebRTC: RTCDataChannel”. W3C (2013年9月10日). 2014年1月15日閲覧。
  16. ^ Identifiers for WebRTC's Statistics API”. W3C (2014年9月29日). 2020年8月31日閲覧。
  17. ^ ORTC API is now available in Microsoft Edge”. Microsoft (2015年9月18日). 2020年8月31日閲覧。
  18. ^ Firefox Notes - Desktop. Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
  19. ^ Safari 11.0”. Apple Inc.. 2017年6月6日閲覧。
  20. ^ Opera News. blogs.opera.com (2013-11-19). Retrieved on 2015-09-17.
  21. ^ Firefox Notes - Desktop. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.

関連項目

外部リンク