MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

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

WebRTC (Comunicações da Web em Tempo Real) é uma tecnologia que permite às aplicações e sites da Web capturar e opcionalmente transmitir multimédia de áudio e/ou vídeo, bem como trocar dados arbitrariamente entre navegadores sem a necessidade de um intermediário. O conjunto de normas que compreende WebRTC torna possível a partilha de dados e realizar teleconferência peer-to-peer, sem precisar que o utilizador instale plug-ins ou qualquer outro software de terceiros.

O WebRTC é constituído de diversos protocolos e APIs inter-relacionadas que trabalham juntos para obter os resultados pretendidos. A documentação que você encontrará aqui ajudará você a entender os fundamentos da WebRTC, como configurar e usar conexões de dados e mídia - e muito mais.

Conceitos e utilização de WebRTC

O WebRTC atende múltiplos propósitos e se destaca consideravelmente com Media Capture e Streams API. Juntos, eles fornecem recursos multimídia poderosos para a Web, incluindo suporte para conferências de áudio e vídeo, troca de arquivos, gerenciamento de identidade e interface com sistemas telefônicos legados, enviando sinais  DTMF . As conexões entre pares podem ser feitas sem exigir drivers especiais ou plug-ins, e muitas vezes podem ser feitas sem nenhum servidor intermediário.

As conexões entre dois pares são criadas usando - e representadas pela interface - RTCPeerConnection . Uma vez que uma conexão foi estabelecida e aberta, os fluxos de mídia (MediaStreams) e / ou canais de dados (RTCDataChannels) podem ser adicionados à conexão.

Os fluxos de mídia podem ser constituídos de qualquer número de faixas de informações de mídia; As faixas, que são representadas por objetos com base na interface MediaStreamTrack , podem conter um dos vários tipos de dados de mídia, incluindo áudio, vídeo e texto (como legendas ou nomes de capítulos) . A maioria dos fluxos consistem em pelo menos uma faixa de áudio e provavelmente também uma faixa de vídeo, e pode ser usados para enviar e receber mídia ao vivo ou informações de mídia armazenada (como um filme transmitido).

Você também pode usar a conexão entre dois pares para trocar dados binários arbitrários usando a interface RTCDataChannel . Isso pode ser usado para informações back-channel, troca de metadados, pacotes com status de jogos, transferências de arquivos ou mesmo como um canal primário para transferência de dados.

Mais detalhes e links para guias relevantes e tutoriais necessários

Interfaces de WebRTC

Como a WebRTC fornece interfaces que trabalham juntas para realizar uma variedade de tarefas, dividimos as interfaces na lista abaixo por categoria. Veja a barra lateral para uma lista alfabética.

Gestão e configuração de ligação

Essas interfaces são usadas para configurar, abrir e gerenciar conexões WebRTC.

RTCPeerConnection
Representa uma conexão WebRTC entre o computador local e um ponto remoto. Ele é usado para lidar com transmissão eficiente de dados entre os dois pares.
RTCDataChannel
Representa um canal de dados bidirecional entre dois pares de uma conexão.
RTCDataChannelEvent
Representa eventos que ocorrem ao anexar um RTCDataChannel a um RTCPeerConnection . O único evento enviado com esta interface é datachannel .
RTCSessionDescription
Representa os parâmetros de uma sessão. Cada RTCSessionDescription consiste em um tipo de descrição que indica qual parte do processo de negociação de oferta(offer) / resposta(answer) isso descreve e do SDP descritor da sessão.
RTCStatsReport
Fornece informações detalhando estatísticas para uma conexão ou para uma faixa individual na conexão; O relatório pode ser obtido chamando RTCPeerConnection.getStats() .
RTCIceCandidate
Representa um servidor candidato que estabelece a conectividade de internet (ICE -internet connectivity establishment) para estabelecer um RTCPeerConnection .
RTCIceTransport
Representa informações sobre o transporte referentes ao estabelecimento de conectividade de internet (ICE - internet connectivity establishment).
RTCPeerConnectionIceEvent
Representa eventos que ocorrem em relação aos candidatos ICE com o destino, geralmente um RTCPeerConnection . Apenas um evento é deste tipo: icecandidate .
RTCRtpSender
Gerencia a codificação e a transmissão de dados para um MediaStreamTrack em RTCPeerConnection.
RTCRtpReceiver
Gerencia a recepção e decodificação de dados para um MediaStreamTrack em um RTCPeerConnection.
RTCTrackEvent
Indica que uma nova entrada MediaStreamTrack foi criada e um objeto associado RTCRtpReceiver foi adicionado ao objeto RTCPeerConnection .

Identidade e segurança

A API WebRTC inclui uma série de interfaces para gerenciar segurança e identidade.

RTCIdentityProvider
Permite que um agente do usuário possa solicitar que uma confirmação de identidade seja gerada ou validada.
RTCIdentityAssertion
Representa a identidade de um ponto remoto da conexão atual. Caso nenhum par (peer) seja configurado e verificado, esta interface retorna null. Uma vez configurado, este não poderá ser alterado.
RTCIdentityProviderRegistrar
Registra um provedor de identidade (idP).
RTCIdentityEvent
Representa uma confirmação de identidade gerada por um provedor de identidade (idP). Isso geralmente é para um RTCPeerConnection. O único evento enviado com este tipo é identityresult.
RTCIdentityErrorEvent
Representa um erro associado ao provedor de identidade (idP). Isso geralmente é para um RTCPeerConnection . Dois eventos são enviados com este tipo: idpassertionerror e idpvalidationerror .
RTCCertificate
Representa um certificado que um RTCPeerConnection usa para autenticar.

Telefonia

Essas interfaces estão relacionadas à interatividade com redes telefônicas de comutação pública (PTSNs).

RTCDTMFSender
Gerencia a codificação e a transmissão da sinalização multi-frequência de dois tons (DTMF) para um RTCPeerConnection.
RTCDTMFToneChangeEvent
Indica uma ocorrência de uma multi-frequência de dois tons (DTMF). Este evento não faz bolha (bubble) (exceto quando indicado de outra forma) e não é cancelável (exceto quando indicado de outra forma).

Guias

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.

Tutoriais

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.

Recursos

Protocolos

WebRTC-proper protocols

Especificações

Especificação Estado Comentário
WebRTC 1.0: Real-time Communication Between Browsers Working Draft A definição inicial da API do WebRTC.
Media Capture and Streams Editor's Draft A definição inicial do objeto que transmite o fluxo de conteúdo de mídia.
Media Capture from DOM Elements Editor's Draft A definição inicial sobre como obter fluxo de conteúdo de Elementos DOM

Em adição a estas especificações que definem a API necessária para usar o WebRTC, existem vários protocolos, listados em recursos.

Etiquetas do documento e contribuidores

 Contribuidores para esta página: Gurigraphics, mansil
 Última atualização por: Gurigraphics,