この翻訳は不完全です。英語から この記事を翻訳 してください。

WebRTC (Web Real-Time Communications、ウェブリアルタイムコミュニケーション) は、ウェブアプリケーションやウェブサイトにて、仲介を必要とせずにブラウザ間で直接、任意のデータの交換や、キャプチャしたオーディオ/ビデオストリームの送受信を可能にする技術です。WebRTCに関する一連の標準規格は、ユーザがプラグインやサードパーティ製ソフトウェアをインストールすることなく、ピア・ツー・ピアにて、データ共有や遠隔会議を実現することを可能にします。

WebRTC はこれらを実現するために、いくつかの相互に関係する API 群とプロトコル群から構成されます。ここにあるドキュメント類は、あなたが WebRTC の基礎や、データコネクション/メディアコネクションの設定、利用方法などを理解するための手助けをしてくれます。

WebRTC のコンセプトと使用例

WebRTC サーバーは複数の目的を果たし、多くの点で Media Capture と Streams API と重複します。音声会議やファイル交換、アイデンティティ管理、DTMF シグナルを送信することによるレガシー電話システムとのインターフェースのサポートを含む、パワフルなマルチメディア機能をウェブに提供します。ピア間の接続は何らかの特別なドライバやプラグインなしに実現でき、通常は中間サーバーも不要です。

P2P 接続は、RTCPeerConnection インターフェースを使用して行います。ひとたび接続が確立しオープンすると、メディアストリーム (MediaStreams) と/か データチャネル (RTCDataChannels) が接続に追加されます。

メディアストリームは複数のメディア情報トラックを構成できます; MediaStreamTrack インターフェースを基にしたオブジェクトで表現されるトラックは、オーディオ、ビデオ、(字幕やチャプター名のような) テキストのいずれかを含みます。ほとんどのストリームは、少なくとも 1 つのオーディオトラックとビデオトラックで構成され、ライブメディアまたはストリーミングされたムービーなどの保存されたメディア情報の送受信に使用できます。

RTCDataChannel インターフェースを使用して、P2P 接続を任意のバイナリデータの交換に使用することもできます。. これはバックチャネルインフォメーションやメタデータ交換、ゲームステータスパケット、ファイル転送、データ交換の主チャネルとして使用できます。

詳細や関連するガイドやチュートリアルへのリンクが必要

WebRTC インターフェイス

WebRTC は、さまざまなタスクを達成するために連携するインターフェイスを提供しているため、以下のリストにカテゴリごとに分類しました。アルファベット順のリストはサイドバーを見てください。

接続のセットアップと管理

以下のインターフェイスは、WebRTC 接続のセットアップ、オープン、管理に使用します。

RTCPeerConnection
Represents a WebRTC connection between the local computer and a remote peer. It is used to handle efficient streaming of data between the two peers.
RTCDataChannel
Represents a bi-directional data channel between two peers of a connection.
RTCDataChannelEvent
Represents events that occur while attaching a RTCDataChannel to a RTCPeerConnection. The only event sent with this interface is datachannel.
RTCSessionDescription
Represents the parameters of a session. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session.
RTCSessionDescriptionCallback
The RTCSessionDescriptionCallback is passed into the RTCPeerConnection object when requesting it to create offers or answers.
RTCStatsReport
Provides information detailing statistics for a connection or for an individual track on the connection; the report can be obtained by calling RTCPeerConnection.getStats().
RTCIceCandidate
Represents a candidate internet connectivity establishment (ICE) server for establishing an RTCPeerConnection.
RTCIceTransport
Represents information about an internet connectivity establishment (ICE) transport.
RTCPeerConnectionIceEvent
Represents events that occurs in relation to ICE candidates with the target, usually an RTCPeerConnection. Only one event is of this type: icecandidate.
RTCRtpSender
Manages the encoding and transmission of data for a MediaStreamTrack on an RTCPeerConnection.
RTCRtpReceiver
Manages the reception and decoding of data for a MediaStreamTrack on an RTCPeerConnection.
RTCRtpContributingSource
Contains information about a given contributing source (CSRC) including the most recent time a packet that the source contributed was played out.
RTCTrackEvent
Indicates that a new incoming MediaStreamTrack was created and an associated RTCRtpReceiver object was added to the RTCPeerConnection object.
RTCConfiguration
Used to provide configuration options for an RTCPeerConnection.
RTCSctpTransport
Provides information which describes a Stream Control Transmission Protocol (SCTP) transport and also provides a way to access the underlying Datagram Transport Layer Security (DTLS) transport over which SCTP packets for all of an RTCPeerConnection's data channels are sent and received.

アイデンティティとセキュリティ

WebRTC API には、セキュリティとアイデンティティを管理する多数のインターフェイスがあります。

RTCIdentityProvider
Enables a user agent is able to request that an identity assertion be generated or validated.
RTCIdentityAssertion
Represents the identity of the a remote peer of the current connection. If no peer has yet been set and verified this interface returns null. Once set it can't be changed.
RTCIdentityProviderRegistrar
Registers an identity provider (idP).
RTCIdentityEvent
Represents an identity assertion generated by an identity provider (idP). This is usually for an RTCPeerConnection. The only event sent with this type is identityresult.
RTCIdentityErrorEvent
Represents an error associated with the identity provider (idP). This is usually for an RTCPeerConnection. Two events are sent with this type: idpassertionerror and idpvalidationerror.
RTCCertificate
Represents a certificate that an RTCPeerConnection uses to authenticate.

電話通信

以下のインターフェイスは、公衆電話網 (public-switched telephone networks、PTSNs) と通信するために利用します。

RTCDTMFSender
Manages the encoding and transmission of dual-tone multi-frequency (DTMF) signaling for an RTCPeerConnection.
RTCDTMFToneChangeEvent
Indicates an occurrence of a of dual-tone multi-frequency (DTMF). This event does not bubble (except where otherwise stated) and is not cancelable (except where otherwise stated).

そのほか

RTCIceServer
(STUN や TURN サーバーのような) 1 つの ICE サーバーとの接続方法を定義する。

 

ガイド

WebRTC プロトコル入門
この記事では、WebRTC API の基礎となっているプロトコルについて説明しています。
WebRTC connectivity
A guide to how WebRTC connections work and how the various protocols and interfaces can be used together to build powerful communication apps.
Lifetime of a WebRTC session
WebRTC lets you build peer-to-peer communication of arbitrary data, audio, or video—or any combination thereof—into a browser application. In this article, we'll look at the lifetime of a WebRTC session, from establishing the connection all the way through closing the connection when it's no longer needed.
Signaling and two-way video calling
A tutorial and example which turbs a WebSocket-based chat system created for a previous example and adds support for opening video calls among participants. The chat server's WebSocket connection is used for WebRTC signaling.
Using WebRTC data channels
This guide covers how you can use a peer connection and an associated RTCDataChannel to exchange arbitrary data between two peers.
Using DTMF with WebRTC
WebRTC's support for interacting with gateways that link to old-school telephone systems includes support for sending DTMF tones using the RTCDTMFSender interface. This guide shows how to do so.

チュートリアル

Improving compatibility using WebRTC adapter.js
The WebRTC organization provides on GitHub the WebRTC adapter to work around compatibility issues in different browsers' WebRTC implementations. The adapter is a JavaScript shim which lets your code to be written to the specification so that it will "just work" in all browsers with WebRTC support.
Taking still photos with WebRTC
This article shows how to use WebRTC to access the camera on a computer or mobile phone with WebRTC support and take a photo with it.
A simple RTCDataChannel sample
The RTCDataChannel interface is a feature which lets you open a channel between two peers over which you may send and receive arbitrary data. The API is intentionally similar to the WebSocket API, so that the same programming model can be used for each.

リソース

プロトコル

WebRTC-proper プロトコル

関連する補助プロトコル

仕様

仕様 状態 コメント
WebRTC 1.0: Real-time Communication Between Browsers 草案 WebRTC API の最初の定義。
Media Capture and Streams 勧告改訂案 メディアコンテンツのストリームを伝達するオブジェクトの初期定義。
Media Capture from DOM Elements 勧告改訂案 DOM 要素からコンテンツのストリームを取得する方法の初期定義。

これらの API 仕様に加えて、Web RTC は リソース に示されているさまざまなプロトコルを用いる必要があります。

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama, shuuji3, H-Yamagata, yusuke84
 最終更新者: YuichiNukiyama,