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

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 接続のセットアップ、オープン、管理に使用します。

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.
Represents a bi-directional data channel between two peers of a connection.
Represents events that occur while attaching a RTCDataChannel to a RTCPeerConnection. The only event sent with this interface is datachannel.
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.
The RTCSessionDescriptionCallback is passed into the RTCPeerConnection object when requesting it to create offers or answers.
Provides information detailing statistics for a connection or for an individual track on the connection; the report can be obtained by calling RTCPeerConnection.getStats().
Represents a candidate internet connectivity establishment (ICE) server for establishing an RTCPeerConnection.
Represents information about an internet connectivity establishment (ICE) transport.
Defines how to connect to a single ICE server (such as a STUN or TURN server).
Represents events that occurs in relation to ICE candidates with the target, usually an RTCPeerConnection. Only one event is of this type: icecandidate.
Manages the encoding and transmission of data for a MediaStreamTrack on an RTCPeerConnection.
Manages the reception and decoding of data for a MediaStreamTrack on an RTCPeerConnection.
Contains information about a given contributing source (CSRC) including the most recent time a packet that the source contributed was played out.
Indicates that a new incoming MediaStreamTrack was created and an associated RTCRtpReceiver object was added to the RTCPeerConnection object.
Used to provide configuration options for an RTCPeerConnection.
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 には、セキュリティとアイデンティティを管理する多数のインターフェイスがあります。

Enables a user agent is able to request that an identity assertion be generated or validated.
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.
Registers an identity provider (idP).
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.
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.
Represents a certificate that an RTCPeerConnection uses to authenticate.


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

Manages the encoding and transmission of dual-tone multi-frequency (DTMF) signaling for an RTCPeerConnection.
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).


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 turns 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 は リソース に示されているさまざまなプロトコルを用いる必要があります。



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