Uma breve visão geral da história, arquitetura, casos de uso e futuro do WebRTC.
O processo de definição de um padrão da Web é longo e garante utilidade, consistência e compatibilidade entre navegadores. Hoje, o W3C e o IETF marcam a conclusão de talvez um dos padrões mais importantes durante a pandemia: o WebRTC.
Histórico
O WebRTC é uma plataforma que oferece recursos de comunicação em tempo real para navegadores, apps para dispositivos móveis e apps para computadores, geralmente usados para videochamadas. A plataforma consiste em um conjunto abrangente de tecnologias e padrões. O Google teve a ideia de criar o WebRTC em 2009, como uma alternativa ao Adobe Flash e aos aplicativos para computador que não podiam ser executados no navegador. A geração anterior de produtos baseados em navegador foi criada com base em tecnologia proprietária licenciada. Vários produtos foram criados com essa tecnologia, incluindo o Hangouts. O Google adquiriu as empresas de que licenciava a tecnologia e a disponibilizou como o projeto WebRTC de código aberto. Essa base de código é integrada ao Chrome e usada pela maioria dos aplicativos que usam o WebRTC. Junto com outros fornecedores de navegadores e líderes do setor, como Mozilla, Microsoft, Cisco e Ericsson, a padronização do WebRTC foi iniciada no W3C e no IETF. Em 2013, a Mozilla e o Google demonstraram chamadas de vídeo entre os navegadores. Durante a evolução do padrão, muitas discussões de arquitetura levaram a diferenças de implementação entre os navegadores e desafiaram a compatibilidade e a interoperabilidade. A maioria desses desacordos foi resolvida quando o padrão foi finalizado nos últimos anos. A especificação do WebRTC agora é acompanhada de um conjunto completo de testes de plataforma e ferramentas para lidar com a compatibilidade, e os navegadores adaptaram amplamente as implementações de acordo. Isso encerra um período desafiador em que os desenvolvedores da Web precisavam adotar seus serviços continuamente para diferentes implementações de navegador e mudanças de especificação.
Arquitetura e funcionalidade
A API RTCPeerConnection
é
a parte central da especificação do WebRTC. O RTCPeerConnection
lida com a conexão de dois
aplicativos em endpoints diferentes para se comunicar usando um protocolo peer-to-peer. A API PeerConnection
interage com
getUserMedia
para
acessar a câmera e o microfone e
getDisplayMedia
para
capturar o conteúdo da tela. O WebRTC permite enviar e receber streams que incluem conteúdo de áudio e/ou
vídeo, bem como dados binários arbitrários pelo DataChannel
. A funcionalidade de mídia para
processar, codificar e decodificar áudio e vídeo é o núcleo de qualquer implementação do WebRTC.
O WebRTC oferece suporte a vários codecs de áudio, sendo o Opus o mais usado e versátil. As implementações do
WebRTC precisam oferecer suporte ao codec de vídeo VP8 sem custo financeiro do Google e ao H.264 para
processar vídeos. As conexões do WebRTC são sempre criptografadas, o que é feito por meio de dois protocolos: DTLS e SRTP. O WebRTC depende muito de padrões e tecnologias existentes, de codecs
de vídeo (VP8, H264), travessia de rede (ICE), transporte (RTP, SCTP) a protocolos de descrição de mídia
(SDP). Isso está vinculado em mais de 50 RFCs.
Casos de uso: quando é uma questão de milissegundos
O WebRTC é amplamente usado em aplicativos de tempo crítico, como cirurgia remota, monitoramento de sistema e controle remoto de carros autônomos, além de chamadas de voz ou vídeo criadas em UDP, em que o buffer não é possível. Quase todos os serviços de videochamadas baseados em navegador de empresas como Google, Facebook, Cisco, RingCentral e Jitsi usam o WebRTC. O Google Stadia e o NVIDIA GeForce NOW usam o WebRTC para receber o streaming da jogabilidade da nuvem para o navegador da Web sem atraso perceptível.
A pandemia aumenta o foco na performance das videochamadas
No último ano, o WebRTC teve um aumento de 100 vezes no uso no Chrome devido ao aumento das chamadas de vídeo no navegador. Sabendo que as videochamadas se tornaram parte fundamental da vida de muitas pessoas durante a pandemia, os fornecedores de navegadores começaram a otimizar as tecnologias que as videochamadas dependem. Isso foi particularmente importante, já que os recursos necessários para reuniões grandes e os efeitos de vídeo em videochamadas se tornaram mais comuns quando funcionários e estudantes começaram a trabalhar e estudar de casa. No ano passado, o Chrome ficou até 30% mais econômico em chamadas de vídeo, com mais otimizações para cenários de uso intenso. A Mozilla, a Apple e a Microsoft fizeram melhorias significativas na implementação do WebRTC durante a pandemia, em particular, para garantir que elas aderem ao padrão agora formalizado.
O futuro do WebRTC
Embora o WebRTC já tenha sido concluído como um padrão do W3C, as melhorias continuam. O novo codec de vídeo AV1, que economizou até 50% da largura de banda, está disponível no WebRTC e em navegadores da Web. Espera-se que as melhorias contínuas na base de código de código aberto reduzam ainda mais o atraso e melhorem a qualidade do vídeo que pode ser transmitido. O WebRTC NV reúne a iniciativa para criar APIs complementares e permitir novos casos de uso. Elas consistem em extensões de APIs existentes para dar mais controle sobre as funcionalidades, como a Codificação de vídeo escalável, e APIs que dão acesso a componentes de nível inferior. O segundo oferece mais flexibilidade aos desenvolvedores da Web para inovar, integrando componentes personalizados de alto desempenho do WebAssembly. Com as redes 5G emergentes e a demanda por serviços mais interativos, esperamos um aumento contínuo de serviços criados com base no WebRTC no ano que vem.