WebRTC agora é um padrão W3C e IETF

Uma breve visão geral da história, da arquitetura, dos casos de uso e do futuro do WebRTC.

Huib Kleinhout
Huib Kleinhout

O processo de definir um padrão da Web é um processo longo que 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.

WebRTC é uma plataforma que oferece a navegadores, apps para dispositivos móveis e apps para computador recursos de comunicação em tempo real, normalmente usados para videochamadas. Ela consiste em um conjunto abrangente de tecnologias e padrões. O Google iniciou a ideia de criar o WebRTC em 2009, como uma alternativa ao Adobe Flash e 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. Em seguida, o Google adquiriu as empresas das quais estava licenciando 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 utilizam WebRTC. Juntamente 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, o Mozilla e o Google demonstraram videochamadas entre navegadores. Com a evolução do padrão, muitas discussões de arquitetura levaram a diferenças de implementação em navegadores e desafiaram a compatibilidade e a interoperabilidade. A maioria dessas divergências foi resolvida à medida que o padrão foi finalizado nos últimos anos. A especificação WebRTC agora vem acompanhada de um conjunto completo de testes de plataforma e ferramentas para abordar compatibilidade, e os navegadores já adaptaram as implementações adequadamente. Isso encerra um período desafiador em que os desenvolvedores Web tiveram que adotar continuamente os serviços para diferentes implementações e alterações de especificações de navegadores.

Arquitetura e funcionalidade

A API RTCPeerConnection é a parte central da especificação WebRTC. O RTCPeerConnection lida com a conexão de dois aplicativos em endpoints diferentes para se comunicarem usando um protocolo ponto a ponto. A API PeerConnection interage com getUserMedia para acessar a câmera e o microfone e com 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 processamento, codificação e decodificação de áudio e vídeo fornece o núcleo de qualquer implementação do WebRTC. O WebRTC é compatível com vários codecs de áudio, sendo o Opus o mais usado e versátil. As implementações do WebRTC são necessárias para oferecer suporte ao codec de vídeo VP8 sem custo financeiro do Google e ao H.264 para processamento de vídeo. As conexões WebRTC são sempre criptografadas, o que é possível por meio de dois protocolos atuais: DTLS e SRTP. O WebRTC se baseia muito nos padrões e nas tecnologias atuais, desde codecs de vídeo (VP8, H264), travessia de rede (ICE), transporte (RTP, SCTP) a protocolos de descrição de mídia (SDP). Elas estão vinculadas em mais de 50 RFCs.

Casos de uso: quando é uma questão de milissegundos

O WebRTC é amplamente usado em aplicativos com requisitos críticos de tempo, como cirurgia remota, monitoramento de sistema e controle remoto de carros autônomos e chamadas de voz ou vídeo criadas no UDP, em que o armazenamento em buffer não é possível. Quase todos os serviços de videochamada baseados em navegador de empresas como Google, Facebook, Cisco, RingCentral e Jitsi usam WebRTC. O Google Stadia e o NVIDIA GeForce NOW usam o WebRTC para transmitir o fluxo do jogo da nuvem para o navegador da Web sem atrasos perceptíveis.

Pandemia foca no desempenho das videochamadas

No ano passado, o WebRTC teve um aumento de 100 vezes no uso no Chrome devido ao aumento das videochamadas no navegador. Reconhecendo que as videochamadas se tornaram uma parte fundamental da vida de muitas pessoas durante a pandemia, os fornecedores de navegadores começaram a otimizar as tecnologias de que as videochamadas dependem. Isso foi muito importante porque os recursos que exigiam reuniões grandes e efeitos de vídeo em videoconferências se tornaram mais comuns quando os funcionários e estudantes começaram a trabalhar e estudar em casa. No ano passado, o Chrome aumentou em até 30% o consumo de bateria para videochamadas, com mais otimizações que estão por vir em cenários de uso intenso. Mozilla, Apple e Microsoft fizeram melhorias significativas na implementação do WebRTC durante a pandemia, principalmente para garantir a adesão ao padrão que agora está formalizado.

O futuro do WebRTC

Embora o WebRTC seja concluído como um padrão W3C, as melhorias continuam. O novo codec de vídeo AV1 que economiza até 50% da largura de banda está sendo disponibilizado no WebRTC e nos navegadores da Web. Espera-se que as melhorias contínuas na base do código-fonte aberto reduzam ainda mais o atraso e melhorem a qualidade do vídeo que pode ser transmitido. O WebRTC NV reúne a iniciativa de criar APIs complementares para possibilitar novos casos de uso. Eles consistem em extensões de APIs atuais para fornecer mais controle sobre os recursos atuais, como a codificação de vídeo escalonável, bem como APIs que dão acesso a componentes de nível inferior. O segundo método oferece mais flexibilidade para os desenvolvedores Web inovarem, 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 baseados no WebRTC ao longo do próximo ano.