(Translated by https://www.hiragana.jp/)
WebRTC - Wikipedia コンテンツにスキップ

WebRTC

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
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
テンプレートを表示ひょうじ

Web Real-Time Communication (略称りゃくしょう: WebRTC[2]) は、ウェブブラウザモバイルアプリケーションにシンプルなAPI経由けいゆでリアルタイム通信つうしん提供ていきょうする自由じゆうかつオープンソースのプロジェクトである。

ウェブページない直接ちょくせつピア・ツー・ピア通信つうしんおこなうことによって、プラグインのインストールやネイティブアプリのダウンロードをおこなわなくても、ウェブブラウザあいだボイスチャットビデオチャットファイル共有きょうゆうなどを実装じっそうできるようになる[3]。WebRTCは、AppleGoogleマイクロソフトMozillaOperaがサポートしている。

WebRTC は 1 つのプロトコル仕様しようプロトコルスイート)と 1 つの JavaScript API 仕様しようからなる[4]。これら仕様しようW3C および IETF複数ふくすう規格きかくしょまたがって定義ていぎされている。

WebRTCの目的もくてきは、「ブラウザ、モバイルプラットフォーム、IoTデバイスけのリッチでこう品質ひんしつRTPアプリケーションを、開発かいはつできるようにし、共通きょうつうプロトコルセットで通信つうしんできるようにすること」である[5]リファレンス実装じっそうBSDライセンスフリーソフトウェアとして公開こうかいされている。また、マルチメディアフレームワークのGStreamerをベースに実装じっそうされたOpenWebRTCというべつのフリー実装じっそう存在そんざいする。JavaScriptを発明はつめいしたブレンダン・アイクは、WebRTCのことを 「さまたげなくひらかれているウェブへのたたかいにおけるあらたな戦線せんせん」であるとひょうしている[6]

歴史れきし

[編集へんしゅう]

ブラウザでリアルタイムなコミュニケーションを可能かのうにするWebRTCは、Googleによってオープンソースされており[7]、IETFによる関連かんれんプロトコル[8]とW3Cによるブラウザ対応たいおうAPIの標準ひょうじゅんすすめられてきた[9]

W3CによるWebRTCのドラフト[10]は、Google ChromeとMozilla Firefoxで特別とくべつ実験じっけんてき実装じっそうおこなわれる。APIはWHATWG予備よびてき記述きじゅつされ[11]、ConnectionPeer APIとばれており、Ericsson Labsかり標準ひょうじゅん概念がいねん実装じっそうとして作成さくせいしている[12]。ウェブリアルタイムコミュニケーションワーキンググループは、この仕様しよう以下いか項目こうもくもとづいて進化しんかすることを期待きたいしている。

  • ウェブブラウザでのリアルタイムなコミュニケーションを可能かのうにするこのドキュメントと一緒いっしょ一連いちれんのプロトコルを定義ていぎするためのIETFにおける仲間なかまのRTCWEBグループ[13]での継続けいぞくてき交流こうりゅう成果せいか
  • ローカルキャパシティとローカルストリームを公開こうかいするとき発生はっせいするプライバシー問題もんだい
  • 特殊とくしゅ環境かんきょうでデータチャネルの実装じっそうかんするグループでの技術ぎじゅつてきディスカッション[14]
  • 初期しょき実験じっけんとおしてられる経験けいけん
  • のグループや個人こじんからのフィードバックの

概要がいよう

[編集へんしゅう]

設計せっけい

[編集へんしゅう]

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は以下いかのブラウザでサポートされている。

仕様しよう

[編集へんしゅう]

つぎの 6 つの機能きのうグループ(functionality groups)からなる:

ひょう. 機能きのうグループの一覧いちらん
グループめい 要件ようけん機能きのうれい
メディア転送てんそう基盤きばん (media transport infrastructure[24])
データ転送てんそう (Data transport) RFC8835 に準拠じゅんきょ[25]
データフレーミング (Data framing) RTP 形式けいしき・SRTP 実装じっそう必須ひっす[26]

RTP 形式けいしきかんする対応たいおう必須ひっす[27] データチャネル確立かくりつプロトコルはrfc8832準拠じゅんきょ

データ形式けいしき (Data formats) 最小限さいしょうげんのコーデック・フォーマットを指定してい[28]

音声おんせい: Opus, PCMA, PCMU, comfort noise

メディアサービス (media service[29])
接続せつぞく管理かんり (Connection management)
表示ひょうじ制御せいぎょ (Presentation and control)
ローカルシステム補助ほじょ機能きのう (Local system support functions) エコー除去じょきょ自動じどう利得りとく制御せいぎょ録音ろくおん

認証にんしょう認可にんか、OSアクセス制御せいぎょ[30]

Local system support functions

[編集へんしゅう]
  • プライバシー懸念けねん解消かいしょう必須ひっす[31]れい: カメラアクセス認可にんか
  • endpoint は RFC7874 の processing functions をかなら実装じっそう[32]

用語ようご

[編集へんしゅう]

以下いかは WebRTC の文脈ぶんみゃく専門せんもん用語ようごとして意味いみ定義ていぎされた用語ようごいちれいである[33]

リアルタイムメディア

[編集へんしゅう]

WebRTC におけるリアルタイムメディア (Real-Time Media) はコンテンツの生成せいせい提示ていじ時間じかんてき密接みっせつしてきるよう意図いとされたメディアである(生成せいせい-表示ひょうじ遅延ちえんすう 100 ミリびょう以内いない[34]

電話でんわビデオ会議かいぎはリアルタイムメディアといえる。WebRTC はリアルタイムメディアの仕様しようである。

規格きかくしょ

[編集へんしゅう]

W3C や IETF において WebRTC の規格きかく策定さくていされている。以下いかはその一部いちぶである:

ひょう. WebRTC 規格きかく
規格きかく書名しょめい 規格きかく種別しゅべつ 発行はっこう
WebRTC: Real-Time Communication in Browsers W3C Recommendation 2023-03-06
WebRTC 1.0: Real-Time Communication Between Browsers W3C Recommendation 2021-01-26
RFC 8835 Transports for WebRTC RFC Proposed Standard 2021-01-18
RFC 8834 Media Transport and Use of RTP in WebRTC RFC Proposed Standard 2021-01-18
RFC 8832 WebRTC Data Channel Establishment Protocol RFC Proposed Standard 2021-01-18
RFC 8831 WebRTC Data Channels RFC Proposed Standard 2021-01-18
RFC 8826 Security Considerations for WebRTC RFC Proposed Standard 2021-01-18
RFC 8825 Overview: Real-Time Protocols for Browser-Based Applications RFC Proposed Standard 2021-01-18
RFC 7874 WebRTC Audio Codec and Processing Requirements RFC Proposed Standard 2016-05-25

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ https://webrtc.googlesource.com/src/webrtc/
  2. ^ "to be compliant with Web Real-Time Communication (WebRTC)." RFC 8825 より引用いんよう
  3. ^ How WebRTC Is Revolutionizing Telephony. Blogs.trilogy-lte.com (2014-02-21). Retrieved on 2014-04-11.
  4. ^ "The total WebRTC effort consists of two major parts ... A protocol specification ... A JavaScript API specification" RFC 8825 より引用いんよう
  5. ^ WebRTC”. WebRTC. 8 January 2018てんオリジナルよりアーカイブ。6 February 2018閲覧えつらん
  6. ^ WebRTC: Plugin-free realtime communication”. 6 February 2018閲覧えつらん
  7. ^ 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にち閲覧えつらん
  8. ^ https://tools.ietf.org/wg/rtcweb/charters?item=charter-rtcweb-2011-05-03.txt
  9. ^ WebRTC 1.0: Real-time Communication Between Browsers”. W3.org. 2012ねん9がつ12にち閲覧えつらん
  10. ^ WebRTC 1.0: Real-time Communication Between Browsers”. Dev.w3.org. 2012ねん9がつ12にち閲覧えつらん
  11. ^ href. “1 Introduction — HTML Standard”. Whatwg.org. 2012ねん9がつ12にち閲覧えつらん
  12. ^ Beyond HTML5: Peer-to-Peer Conversational Video | Ericsson Labs”. Labs.ericsson.com. 2012ねん9がつ12にち閲覧えつらん
  13. ^ Rtcweb Status Pages”. Tools.ietf.org. 2012ねん9がつ12にち閲覧えつらん
  14. ^ draft-jesup-rtcweb-data-protocol-00 - WebRTC Data Channel Protocol”. Tools.ietf.org. 2012ねん9がつ12にち閲覧えつらん
  15. ^ Media Capture and Streams: getUserMedia”. W3C (2013ねん9がつ3にち). 2014ねん1がつ15にち閲覧えつらん
  16. ^ WebRTC: RTCPeerConnection Interface”. W3C (2013ねん9がつ10日とおか). 2014ねん1がつ15にち閲覧えつらん
  17. ^ WebRTC: RTCDataChannel”. W3C (2013ねん9がつ10日とおか). 2014ねん1がつ15にち閲覧えつらん
  18. ^ Identifiers for WebRTC's Statistics API”. W3C (2014ねん9がつ29にち). 2020ねん8がつ31にち閲覧えつらん
  19. ^ ORTC API is now available in Microsoft Edge”. Microsoft (2015ねん9がつ18にち). 2020ねん8がつ31にち閲覧えつらん
  20. ^ Firefox Notes - Desktop. Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
  21. ^ Safari 11.0”. Apple Inc.. 6 June 2017閲覧えつらん
  22. ^ Opera News. blogs.opera.com (2013-11-19). Retrieved on 2015-09-17.
  23. ^ Firefox Notes - Desktop. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
  24. ^ 'first three groups as forming a "media transport infrastructure"' RFC 8825 より引用いんよう
  25. ^ "WebRTC endpoints MUST implement the transport protocols described in [RFC8835]." RFC 8825 より引用いんよう
  26. ^ "The format for media transport is RTP ... Implementation of the Secure Real-time Transport Protocol (SRTP) [RFC3711] is REQUIRED for all implementations." RFC 8825 より引用いんよう
  27. ^ "Considerations for the transfer of data that is not in RTP format are described in [RFC8831] ... WebRTC endpoints MUST implement these two specifications." RFC 8825 より引用いんよう
  28. ^ "This document specifies a minimum baseline ... and leaves further codecs to be included" RFC 8825 より引用いんよう
  29. ^ 'the last three groups as forming a "media service".' RFC 8825 より引用いんよう
  30. ^ "Local system support functions ... Examples in this category include echo cancellation ... local authentication and authorization mechanisms, OS access control, and the ability to do local recording of conversations." RFC 8825 より引用いんよう
  31. ^ "Privacy concerns MUST be satisfied" RFC 8825 より引用いんよう
  32. ^ "WebRTC endpoints MUST implement the processing functions in [RFC7874]" RFC 8825 より引用いんよう
  33. ^ "The following terms are used across the documents specifying the WebRTC suite, with the specific meanings given here." RFC 8825 より引用いんよう
  34. ^ "Media where the generation and display of content are intended to occur closely together in time (on the order of no more than hundreds of milliseconds)." RFC 8825 より引用いんよう

関連かんれん項目こうもく

[編集へんしゅう]

外部がいぶリンク

[編集へんしゅう]