WebRTC (Web Real Time Communications) é um padrão que permite comunicação ponto a ponto em tempo real e troca de dados de mídia em navegadores, eliminando a necessidade de baixar e instalar aplicativos extras ou complementos. Graças ao WebRTC, qualquer navegador pode atuar como um terminal de videoconferência: você só precisa abrir sua página da web de sua reunião para iniciar a videoconferência. Este artigo descreve WebRTC e seus exemplos de uso populares, bem como as vantagens e desvantagens dessa tecnologia.
Neste artigo, vamos revelar alguns dos recursos do uso do WebRTC, bem como considerar as vantagens e desvantagens dessa tecnologia.
Vamos ver como a tecnologia WebRTC funciona usando uma chamada ponto a ponto baseada em navegadores como exemplo:
Os codecs WebRTC podem ser divididos em obrigatórios (é necessário que os navegadores que implementam essa tecnologia suportem esses codecs) e opcionais (não padrão, embora alguns navegadores os suportem).
Para comprimir o tráfego de áudio, o WebRTC usa codecs obrigatórios (Opus e G.711) e opcionais (G.722, iLBC, iSAC).
Opus é um codec de áudio de baixa latência (2,5 ms a 60 ms) com suporte para taxa de bits variável e alta compactação, que é perfeito para streaming de áudio em redes de largura de banda variável. Opus é o principal codec de áudio para WebRTC. É uma solução híbrida que combina os melhores recursos dos codecs SILK (compressão de voz e aprimoramento da fala humana) e CELT (codificação de áudio). Esse codec é aberto e totalmente livre de royalties. Sem dúvida, o Opus supera outros codecs de áudio de várias maneiras. Quanto ao número de parâmetros, ele supera os codecs de baixa taxa de bits bastante populares, como MP3, Vorbis e AAC LC. Comparado com AMR-WB e Speex, o Opus restaura a estrutura de áudio mais próxima do original.
G.711 é um codec de voz legado de alta taxa de bits (64 kbps) projetado para uso em sistemas VoIP tradicionais. A principal vantagem é a carga computacional mínima graças aos algoritmos de compressão leves. O codec tem um baixo nível de compressão dos sinais de áudio e não aumenta o atraso do áudio na comunicação entre os usuários.
G.711 é compatível com muitos dispositivos. Os sistemas que utilizam este codec são mais fáceis de usar do que aqueles baseados em outros codecs de áudio, como G.723, G.726, G.728, etc. Em termos de qualidade, G.711 pontuou 4,2 no teste MOS (uma pontuação de 4–5 é o mais alto e significa boa qualidade semelhante à qualidade do tráfego de voz em ISDN e ainda superior).
Sendo livre de royalties, o G.722 é um padrão ITU-T adotado em 1988. Ele pode operar a 48, 56 e 64 kbps, fornecendo qualidade de áudio igual ao G.711. Semelhante ao G.711, é legado, mas ainda é compatível com Chrome, Safari e Firefox.
iLBC (Internet Low Bitrate Codec) é um codec de voz de banda estreita de código aberto compatível com Chrome e Safari. Devido à alta compressão de fluxo, este codec aumenta a carga da CPU.
iSAC (Internet Speech Audio Codec) é um codec de áudio de voz de banda larga proprietário que agora faz parte do projeto WebRTC. Apesar de não ser obrigatório, é compatível com Chrome e Safari. No caso do WebRTC, ele usa uma taxa de bits adaptável de 10 a 52 kbps com uma taxa de amostragem de 32 kHz.
Qual codec de vídeo escolher para WebRTC? Os desenvolvedores tiveram que pensar sobre isso por vários anos, e a resposta é VP8 e H.264. Existem também codecs de vídeo opcionais (H.265, VP9 e AV1).
VP8 é um codec de vídeo aberto livre de royalties com alta velocidade de decodificação de vídeo e maior resistência à perda de quadro. O codec é multifuncional: é fácil de integrar em plataformas de hardware, então os provedores de videoconferência costumam usá-lo em seus produtos. É compatível com Chrome, Edge, Firefox e Safari (12.1+).
O codec de vídeo pago H.264 veio a ser conhecido muito antes de sua contraparte. Este codec oferece uma alta taxa de compressão para streams de vídeo, mantendo a alta qualidade de vídeo. Amplamente utilizado em sistemas de videoconferência de hardware, é perfeito para WebRTC. É compatível com Chrome (52+), Edge, Firefox (não é mais compatível com as versões 68+ para Android) e Safari.
VP9 é um padrão de compressão de vídeo aberto e livre de royalties desenvolvido pelo Google em 2012. Posteriormente expandido dentro do AV1It, ele resulta das ideias por trás do VP8. Este codec é compatível com Chrome (48+) e Firefox.
H.265 é um codec de vídeo pago visto como um sucessor do H.264 e fornecendo a mesma qualidade visual com metade da taxa de bits. Isso é possível graças a algoritmos de compressão mais eficientes. Este codec está competindo atualmente com o AV1 livre de royalties.
AV1 é um codec de compressão de vídeo de código aberto criado especificamente para a transmissão de vídeo pela Internet. É compatível com Chrome (70+) e Firefox (67+).
Dependendo de sua implementação WebRTC, pode haver certas diferenças nas versões dos navegadores compatíveis. Saiba mais sobre navegadores de desktop e móveis suportados por TrueConf aqui.
Se você está ansioso para saber como a tecnologia WebRTC se desenvolverá, recomendamos que visite seu site oficial, o site do projeto WebRTC e o repositório.
Atualmente, o WebRTC é o segundo em popularidade entre os protocolo de vídeo, depois do patenteado pela Zoom. O WebRTC ultrapassa todos os outros protocolos padrão (H.323 e SIP) e patenteados (Microsoft Teams e Cisco Webex).
A tecnologia WebRTC teve um impacto profundo no mercado de videoconferências. Após o lançamento dos primeiros navegadores com WebRTC em 2013, o número potencial de terminais de videoconferência aumentou em 1 bilhão de dispositivos em todo o mundo. Na verdade, cada navegador agora é um terminal de videoconferência com recursos básicos.
Várias bibliotecas JavaScript e APIs de nuvem com suporte WebRTC permitem adicionar suporte de vídeo a qualquer projeto da web. Anteriormente, a transferência de dados em tempo real exigia habilidades de programação avançadas e licenciamento adicional, o que resultava em aumento de custo. Atualmente, o WebRTC é amplamente usado para organizar centros de contato com vídeo, realizar webinars, etc.
WebRTC e HTML5 foram um golpe mortal para o Flash que já estava passando por seus tempos difíceis. Desde 2017, os navegadores líderes deixaram oficialmente de oferecer suporte ao Flash, forçando essa tecnologia a desaparecer completamente do mercado.
TrueConf Server é um sistema de videoconferência baseado em SVC auto-hospedado que opera em LAN/VPN e na Internet. O servidor de seminário web é implantado nas instalações da sua empresa, restringindo o acesso de terceiros aos seus dados pessoais. TrueConf pode ser uma boa solução para transmissão de eventos virtuais, ensino à distância e trabalho remoto, graças ao vídeo de resolução 4K e uma série de ferramentas de colaboração.
O Google Meet é um serviço de mensagens instantâneas, comunicação de áudio e vídeo lançado pelo Google em 2017. Os navegadores baseados em Chromium (Google Chrome, etc.) usam muitos recursos WebRTC ocultos que não são descritos nas especificações técnicas. Novos lançamentos WebRTC são geralmente integrados ao Google Meet (como com seu predecessor, o Google Hangouts), por exemplo, captura de tela, fundo desfocado e criptografia de hardware para algumas plataformas.
Jitsi Meet é um aplicativo de código aberto lançado pela 8x8. A tecnologia Jitsi é baseada na arquitetura Simulcast, o que significa que o serviço pode operar de forma instável em baixa largura de banda e exigir conexão de alta velocidade à Internet do lado do servidor. Jitsi oferece suporte apenas para conferências baseadas em navegadores e não fornece aplicativos de videoconferência completos. Com o Jitsi, é possível acomodar até 75 participantes em uma reunião (até 35 para uma experiência de alta qualidade). No entanto, Jitsi não é uma solução pronta, portanto, para fazer uso completo do Jitsi em um ambiente corporativo, você precisará de habilidades de programação avançadas.
BigBlueButton é um software de videoconferência de uso gratuito com forte foco na educação. BigBlueButton suporta videoconferências com até 100 participantes e oferece muitos recursos essenciais para o ensino à distância, por exemplo, quadro branco interativo, compartilhamento de conteúdo, enquetes, salas de descanso e muito mais.
Ao contrário da crença popular, o Zoom não usa a tecnologia WebRTC para transferir e decodificar dados de mídia a fim de economizar recursos do servidor. Considerando o lado do navegador, Zoom envolve outras tecnologias da web, como WebAssembly e WebSocket. Abordagens não padronizadas para a transferência de streams de vídeo podem resultar em baixa qualidade de áudio e vídeo e problemas de conectividade.