WebRTC - Visão geral

A Web não é mais estranha à comunicação em tempo real, pois WebRTC (Web Real-Time Communication)entra em jogo. Embora tenha sido lançado em maio de 2011, ainda está em desenvolvimento e seus padrões estão mudando. Um conjunto de protocolos é padronizado pela comunicação em tempo real no grupo de trabalho de navegadores WEB emhttp://tools.ietf.org/wg/rtcweb/ do IETF (Internet Engineering Task Force)enquanto novos conjuntos de APIs são padronizados pelo Web Real-Time Communications Working Groupe emhttp://www.w3.org/2011/04/webrtc/ do W3C (World Wide Web Consortium). Com o surgimento do WebRTC, os aplicativos da web modernos podem transmitir facilmente conteúdo de áudio e vídeo para milhões de pessoas.

Esquema Básico

WebRTC permite que você configure conexões ponto a ponto para outros navegadores da web de forma rápida e fácil. Para construir tal aplicativo do zero, você precisaria de uma grande variedade de estruturas e bibliotecas para lidar com problemas típicos, como perda de dados, queda de conexão e passagem de NAT. Com o WebRTC, tudo isso vem embutido no navegador pronto para uso. Esta tecnologia não precisa de plug-ins ou software de terceiros. É de código aberto e seu código-fonte está disponível gratuitamente emhttp://www.webrtc.org/.

A API WebRTC inclui captura de mídia, codificação e decodificação de áudio e vídeo, camada de transporte e gerenciamento de sessão.

Captura de mídia

A primeira etapa é obter acesso à câmera e ao microfone do dispositivo do usuário. Detectamos o tipo de dispositivos disponíveis, obtemos permissão do usuário para acessar esses dispositivos e gerenciar o fluxo.

Codificação e decodificação de áudio e vídeo

Não é uma tarefa fácil enviar um fluxo de dados de áudio e vídeo pela Internet. É aqui que a codificação e a decodificação são usadas. Este é o processo de dividir quadros de vídeo e ondas de áudio em pedaços menores e compactá-los. Este algoritmo é chamadocodec. Existe uma quantidade enorme de codecs diferentes, que são mantidos por empresas diferentes com objetivos de negócios diferentes. Existem também muitos codecs dentro do WebRTC, como H.264, iSAC, Opus e VP8. Quando dois navegadores se conectam, eles escolhem o codec compatível mais adequado entre dois usuários. Felizmente, o WebRTC faz a maior parte da codificação nos bastidores.

Camada de Transporte

A camada de transporte gerencia a ordem dos pacotes, lida com a perda de pacotes e se conecta a outros usuários. Novamente, a API WebRTC nos dá um acesso fácil a eventos que nos informam quando há problemas com a conexão.

Gestão de Sessão

O gerenciamento de sessão lida com o gerenciamento, abertura e organização de conexões. Isso é comumente chamadosignaling. Se você transferir fluxos de áudio e vídeo para o usuário, também fará sentido transferir dados colaterais. Isso é feito peloRTCDataChannel API.

Engenheiros de empresas como Google, Mozilla, Opera e outras fizeram um ótimo trabalho para trazer essa experiência em tempo real para a web.

Compatibilidade do navegador

Os padrões WebRTC são um dos que evoluem mais rapidamente na web, então isso não significa que todos os navegadores suportam todos os mesmos recursos ao mesmo tempo. Para verificar se o seu navegador suporta WebRTC ou não, você pode visitarhttp://caniuse.com/#feat=rtcpeerconnection. Ao longo de todos os tutoriais, recomendo que você use o Chrome para todos os exemplos.

Experimentando WebRTC

Vamos começar a usar WebRTC agora. Navegue no seu navegador para o site de demonstração emhttps://apprtc.appspot.com/

Clique no botão “PARTICIPAR”. Você deve ver uma notificação suspensa.

Clique no botão “Permitir” para iniciar o streaming de seu vídeo e áudio para a página da web. Você deve ver um stream de vídeo de você mesmo.

Agora abra a URL em que você está atualmente em uma nova guia do navegador e clique em “PARTICIPAR”. Você deve ver dois streams de vídeo - um do primeiro cliente e outro do segundo.

Agora você deve entender porque o WebRTC é uma ferramenta poderosa.

Casos de Uso

A web em tempo real abre a porta para uma nova gama de aplicativos, incluindo chat baseado em texto, compartilhamento de tela e arquivo, jogos, chat de vídeo e muito mais. Além da comunicação, você pode usar WebRTC para outros fins, como -

  • marketing em tempo real
  • publicidade em tempo real
  • comunicações de back office (CRM, ERP, SCM, FFM)
  • gestão de RH
  • rede social
  • serviços de namoro
  • consultas médicas online
  • serviços financeiros
  • surveillance
  • jogos multijogador
  • transmissão ao vivo
  • e-learning

Resumo

Agora você deve ter um entendimento claro do termo WebRTC. Você também deve ter uma ideia de que tipos de aplicativos podem ser construídos com WebRTC, como você já experimentou em seu navegador. Resumindo, WebRTC é uma tecnologia bastante útil.