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

A definição de um padrão da Web é um processo demorado que garante utilidade, consistência e compatibilidade entre navegadores. Hoje, o W3C e a IETF marcam a conclusão de 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 a navegadores, apps para dispositivos móveis e para computador, normalmente usados para videochamadas. A plataforma 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 aos aplicativos de 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, inclusive o Hangouts. Em seguida, o Google adquiriu as empresas de que 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 chamadas de vídeo entre os navegadores deles. Com a evolução do padrão, muitas discussões arquitetônicas levaram a diferenças de implementação nos navegadores e desafiaram a compatibilidade e a interoperabilidade. A maioria dessas divergências foi resolvida quando o padrão se tornou finalizado nos últimos anos. A especificação WebRTC agora vem acompanhada de um conjunto completo de testes de plataforma e ferramentas para resolver a compatibilidade, e os navegadores adaptaram as implementações adequadamente. Isso traz o fim de um período desafiador em que os desenvolvedores da Web tiveram que adotar continuamente os serviços para diferentes implementações de navegador e mudanças nas especificações.

Arquitetura e funcionalidade

A API RTCPeerConnection é a parte central da especificação WebRTC. RTCPeerConnection lida com a conexão de dois aplicativos em endpoints diferentes para se comunicar usando um protocolo ponto a ponto. A API PeerConnection interage estreitamente 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 por meio do DataChannel. A funcionalidade de mídia para processamento, codificação e decodificação de áudio e vídeo é a base 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 de WebRTC são necessárias para oferecer suporte ao codec de vídeo VP8 sem custo financeiro do Google e a H.264 para processamento de vídeos. As conexões WebRTC são sempre criptografadas, o que é possível por meio de dois protocolos existentes: DTLS e SRTP. O WebRTC depende muito de padrões e tecnologias atuais, desde codecs de vídeo (VP8, H264), travessia de rede (ICE), transporte (RTP, SCTP) até protocolos de descrição de mídia (SDP). Eles estão agrupados em mais de 50 RFCs.

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

O WebRTC é amplamente usado em aplicativos urgentes, 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 videochamadas baseados no 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 atraso.

A 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 parte fundamental da vida de muitas pessoas durante a pandemia, os fornecedores de navegadores começaram a otimizar as tecnologias das quais as videochamadas dependem. Isso foi especialmente importante porque os recursos que exigem muitas reuniões e efeitos de vídeo nas videoconferências se tornaram mais comuns quando os funcionários e estudantes começaram a trabalhar e estudar em casa. No ano passado, o uso da bateria no Chrome aumentou em até 30% para as videochamadas, e mais otimizações estão por vir para situações de uso intenso. A Mozilla, a Apple e a Microsoft fizeram melhorias significativas na implementação do WebRTC durante a pandemia, especialmente para garantir que sigam o padrão agora formal.

O futuro do WebRTC

Embora o WebRTC esteja atualmente 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á disponível em WebRTC e navegadores da Web. Espera-se que as melhorias contínuas na base do código aberto reduzirão ainda mais o atraso e melhorarão a qualidade dos vídeos que podem ser transmitidos. O WebRTC NV reúne a iniciativa de criar APIs complementares para permitir novos casos de uso. Elas consistem em extensões de APIs atuais para dar mais controle sobre a funcionalidade atual, como a codificação de vídeo escalonável, bem como APIs que dão acesso a componentes de nível inferior. Essa última opção proporciona mais flexibilidade aos desenvolvedores Web para inovar com a integração de componentes personalizados de alto desempenho do WebAssembly. Com as redes 5G emergentes e a demanda por serviços mais interativos, esperamos ver um aumento contínuo na criação de serviços baseados no WebRTC no próximo ano.