Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

WebRTC (Web Real-Time Communications) é uma tecnologia a qual permite  aplicativos e sites da Web a capturarem e opcionalmente transmitirem mídia de áudio e/ou vídeo, assim como para trocar informação arbitrária entre navegadores sem requerir um intermediador. A série de padrões que abrangem WebRTC faz possível compartilhar informação e realizar teleconferência peer-to-peer, sem requerir que o usuário instale plug-ins ou quaisquer softwares de terceiros.

WebRTC consiste em diversas APIs interligadas e protocolos, os quais trabalham juntos para alcançar isso. A documentação que você encontrará aqui o ajudará a entender os fundamentos de WebRTC, como configurar e usar tanto informação, bem como conexões de mídia, e mais. 

WebRTC concepts and usage

WebRTC serve à diversas propostas, e sobrepõe-se substancialmente com a API de Captura e Transmissão. Juntas, provém capacidades poderosas de multimídia para a Web, incluíndo suporte para conferência em áudio e vídeo, troca de arquivos, administração de identidade, e lidando com sistemas telefônicos legados enviando sinais DTMF.

Conexões entre dois peers são criadas usando—e representadas por—uma interface RTCPeerConnection. Uma vez que a conexão tenha sido estabilizada e iniciada, media streams (MediaStreams) (transmissões de mídia) e/ou data channels (RTCDataChannels) (canais de dados) podem ser adicionados à conexão.

Dados de mídia podem consistir em qualquer número de tracks(faixas) de dados de mídia; tracks, que são representados por objetos baseados na interface MediaStreamTrack , que podem conter um número dentre tipos de dados de mídia, incluíndo áudio, vídeo e texto (como legendas ou até mesmo nomes de capítulos). A maioria das transmissões consiste de ao menos uma faixa de áudio e comumente também uma faixa de vídeo, e podem ser usadas para enviar e receber ambas as mídias ao vivo ou dados salvos de mídia (como um filme transmitido).

Você também pode usar a conexão entre dois peers para trocar dados arbitrários binários usando a interface RTCDataChannel. Isto pode ser usado para informação de back-channel (canal de volta), troca de metadata, pacotes de status de games, transferência de arquivos, ou até mesmo como um canal primário para transferir dados.

são necessários mais detalhes e links e tutoriais relevantes

WebRTC interfaces

Because WebRTC provides interfaces that work together to accomplish a variety of tasks, we have divided up the interfaces in the list below by category. Please see the sidebar for an alphabetical list.

Connection setup and management

These interfaces are used to set up, open, and manage WebRTC connections.

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.
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.
RTCTrackEvent
Indicates that a new incoming MediaStreamTrack was created and an associated RTCRtpReceiver object was added to the RTCPeerConnection object.

Identity and security

The WebRTC API includes a number of interfaces to manage security and identity.

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.

Telephony

These interfaces are related to interactivity with 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).

Guides

Introduction to WebRTC protocols
This article introduces the protocols on top of which the WebRTC API is built.
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.

Tutorials

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.

Resources

Protocols

WebRTC-proper protocols

Specifications

Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browsers Candidata a Recomendação The initial definition of the API of WebRTC.
Media Capture and Streams Candidata a Recomendação The initial definition of the object conveying the stream of media content.
Media Capture from DOM Elements Rascunho atual The initial definition on how to obtain stream of content from DOM Elements

In additions to these specifications defining the API needed to use WebRTC, there are several protocols, listed under resources.

Etiquetas do documento e colaboradores

Colaboradores desta página: mdnwebdocs-bot, pedro-surf, Sheppy
Última atualização por: mdnwebdocs-bot,