Siga-nos nas redes sociais

Voltar para Terminologia

WebRTC

WebRTC (Web Real Time Communications) é um padrão que permite comunicação em tempo real peer-to-peer e troca de dados multimédia nos navegadores, eliminando a necessidade de descarregar e instalar aplicações ou add-ons adicionais. Graças ao WebRTC, qualquer navegador pode funcionar como um terminal de videoconferência: basta abrir a página da sua reunião para iniciar a videoconferência. Este artigo descreve o WebRTC, os seus casos de uso mais comuns, bem como as vantagens e desvantagens desta tecnologia.

Como Funciona o WebRTC

Vamos ver como a tecnologia WebRTC funciona usando como exemplo uma chamada peer-to-peer baseada no navegador:

How WebRTC Works

  • Um utilizador abre uma página WebRTC.
  • O navegador pode solicitar acesso à câmara web e ao microfone. Neste caso, o utilizador precisa de conceder permissão para que a aplicação WebRTC tenha acesso aos seus dispositivos. Há também casos em que esta permissão não é necessária, por exemplo, ao assistir a uma transmissão em direto.
  • How WebRTC Works

  • Um pacote do Protocolo de Descrição de Sessão (SDP) é gerado no navegador que inicia a ligação. Na prática, é um ficheiro de texto que contém detalhes importantes da ligação, como o tipo de dados multimédia (áudio, vídeo ou conteúdo), codecs, que parâmetros são suportados pelo navegador, etc.
  • Dependendo de como a tecnologia é implementada, o iniciador da ligação transfere este pacote para os outros participantes. Um servidor de sinalização e o protocolo WebSocket são frequentemente utilizados para este fim.
  • Do lado do recetor, o navegador recebe o pacote SDP e depois gera um semelhante que também incorpora os dados do primeiro pacote. O segundo pacote é enviado de volta para o lado iniciador. Agora, ambos os clientes já se “conheceram” de certa forma.
  • Dependendo da sua implementação, o estado da ligação de rede é analisado em simultâneo com os passos anteriores. É fornecido aos clientes o endereço de um servidor STUN, utilizado para descobrir o endereço IP externo do dispositivo. Este é então comparado com o endereço IP interno para determinar se está a ser usado NAT na ligação e, em caso afirmativo, como os pacotes UDP são encaminhados. Em casos mais complexos, por exemplo, quando é usado double NAT, os programadores recorrem a servidores TURN. Estes funcionam essencialmente como repetidores, transformando uma ligação peer-to-peer (P2P) numa ligação cliente-servidor-cliente.
  • Uma vez concluídos estes passos com sucesso, a ligação é estabelecida. O evento onicecandidate é invocado periodicamente para transferir informações sobre endereços IP, configurações NAT e tentativas de ligação entre os clientes.

How WebRTC Works

Vantagens Desvantagens

1. Não é necessária instalação de software.

As soluções WebRTC são incompatíveis entre si, pois o padrão descreve apenas os métodos para transferir dados de vídeo e áudio, deixando os programadores decidirem sobre métodos de endereçamento, opções de monitorização de estado, troca de mensagens e ficheiros, agendamento, etc. Por outras palavras, não pode fazer chamadas de uma aplicação WebRTC para outra.

2. Comunicação de alta qualidade graças a:
– Codecs de vídeo e áudio modernos
– Ajuste automático de qualidade
– Cancelamento de eco e ruído integrado
– Controlo Automático de Ganho (AGC).

Os utilizadores preocupados com a segurança ficarão desapontados ao saber que o WebRTC deteta os seus endereços IP reais. Ao mesmo tempo, nem um proxy nem a rede Tor ajudarão a manter o anonimato. Pode esconder o seu endereço IP usando vários serviços VPN e o servidor TURN. Se necessário, o WebRTC pode ser desativado.

3. Forte aposta na segurança: todas as ligações são protegidas e encriptadas de acordo com os protocolos DTLS e SRTP. Ao mesmo tempo, o WebRTC opera apenas sobre o protocolo HTTPS, e um website que utilize esta tecnologia deve ter um certificado assinado.

O WebRTC não suporta controlo remoto do ambiente de trabalho. Claro, pode transmitir o que está a acontecer no ecrã do seu dispositivo, mas é um stream de vídeo unidirecional, como uma imagem transmitida por uma câmara, não havendo forma de interagir com a fonte do stream. Isto é feito por razões de segurança: o código Javascript não pode controlar nada fora da janela do seu navegador atual. Pode obter mais funcionalidades, incluindo controlo remoto do ambiente de trabalho, utilizando aplicações cliente personalizadas pelos fornecedores de videoconferência.

4. Suporte SVC adicionado como parte da implementação dos codecs VP9 e AV1. Apesar de os navegadores ainda não suportarem SVC, a TrueConf permite SVC nos clientes de navegador.

5. Funcionalidade nativa de partilha do ambiente de trabalho.

6. Interfaces de controlo baseadas em HTML5 e JavaScript.

7. Projeto de código aberto que pode ser integrado no seu produto ou serviço.

8. Cross-platform: a aplicação WebRTC funciona igualmente bem em qualquer sistema operativo — de secretária ou móvel — se o navegador suportar WebRTC. Isto poupa significativamente recursos no desenvolvimento de software.

WebRTC em Dispositivos Móveis

Codecs WebRTC

Os codecs WebRTC podem ser divididos em obrigatórios (é necessário que os navegadores que implementam esta tecnologia suportem estes codecs) e opcionais (não padrão, embora alguns navegadores os suportem).

Codecs de Áudio

Para comprimir o tráfego de áudio, o WebRTC utiliza 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 de taxa de bits variável e alta compressão, sendo perfeito para transmitir áudio em redes com largura de banda variável. O Opus é o codec de áudio principal para WebRTC. É uma solução híbrida que combina as melhores características dos codecs SILK (compressão de voz e melhoria da fala humana) e CELT (codificação de áudio). O codec é aberto e completamente isento de royalties. Sem dúvida, o Opus supera outros codecs de áudio em muitos aspetos. Quanto ao número de parâmetros, supera 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) concebido 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 de áudio na comunicação entre utilizadores.

Sendo isento de royalties, G.722 é um padrão ITU-T adotado em 1988. Pode operar a 48, 56 e 64 kbps, proporcionando qualidade de áudio igual ao G.711. Tal como o G.711, é legado, mas ainda suportado pelo Chrome, Safari e Firefox.

iLBC (internet Low Bitrate Codec) é um codec de fala de banda estreita de código aberto suportado pelo Chrome e Safari. Devido à alta compressão do stream, este codec aumenta a carga da CPU.

iSAC (internet Speech Audio Codec) é um codec de áudio de fala de banda larga anteriormente proprietário que agora faz parte do projeto WebRTC. No entanto, não é obrigatório, mas é suportado pelo Chrome e Safari. No caso do WebRTC, utiliza uma taxa de bits adaptável de 10 a 52 kbps com uma taxa de amostragem de 32 kHz.

Audio Codecs

Codecs de Vídeo

Que codec de vídeo escolher para WebRTC? Os programadores tiveram que ponderar durante 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 e isento de royalties, com alta velocidade de descodificação de vídeo e maior resistência à perda de quadros. O codec é multifuncional: é fácil de integrar em plataformas de hardware, por isso os fornecedores de videoconferência frequentemente o utilizam nos seus produtos. É compatível com Chrome, Edge, Firefox e Safari (12.1+).

O codec de vídeo pago H.264 tornou-se conhecido muito antes do seu concorrente. Este codec oferece uma alta taxa de compressão para streams de vídeo, mantendo uma alta qualidade de vídeo. Amplamente utilizado em sistemas de videoconferência baseados em hardware, é perfeito para WebRTC. É compatível com Chrome (52+), Edge, Firefox (já não suportado nas versões 68+ para Android) e Safari.

VP9 é um padrão de compressão de vídeo aberto e isento de royalties desenvolvido pela Google em 2012. Posteriormente expandido no âmbito do AV1, 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 o sucessor do H.264, proporcionando a mesma qualidade visual com metade da taxa de bits. Isto é possível graças a algoritmos de compressão mais eficientes. Este codec compete atualmente com o AV1, que é isento de royalties.

AV1 é um codec de compressão de vídeo de código aberto criado especificamente para transmissão de vídeo pela Internet. É suportado pelo Chrome (70+) e Firefox (67+).

Aspetos do WebRTC

Ligação WebRTC

Dependendo da sua implementação do WebRTC, podem existir certas diferenças nas versões dos navegadores compatíveis. Saiba mais sobre os navegadores de secretária e móveis suportados pela TrueConf aqui.

Se está ansioso para saber como a tecnologia WebRTC se desenvolverá, recomendamos que visite o seu website oficial, o website do projeto WebRTC e o repositório.

WebRTC Connection

Popularidade da Tecnologia

Hoje, o WebRTC é o segundo protocolo de vídeo mais popular depois do protocolo proprietário da Zoom. O WebRTC ultrapassa todos os outros protocolos padrão (H.323 e SIP) e proprietários (Microsoft Teams e Cisco Webex).

Aumento dos Terminais de Videoconferência

A tecnologia WebRTC teve um impacto profundo no mercado de videoconferência. Com o lançamento dos primeiros navegadores com WebRTC em 2013, o número potencial de terminais de videoconferência aumentou em mil milhões de dispositivos em todo o mundo. Na prática, cada navegador é agora um terminal de videoconferência com capacidades básicas.

Soluções Personalizadas

Várias bibliotecas JavaScript e APIs em nuvem com suporte WebRTC permitem adicionar suporte de vídeo a qualquer projeto web. Anteriormente, a transferência de dados em tempo real exigia conhecimentos avançados de programação e licenciamento adicional, o que resultava num aumento de custos. Hoje, o WebRTC é amplamente utilizado para organizar centros de contacto com suporte de vídeo, realizar webinars, etc.

WebRTC vs Flash

O WebRTC e o HTML5 foram um golpe fatal para o Flash, que já estava a passar por tempos difíceis. Desde 2017, os principais navegadores cessaram oficialmente o suporte ao Flash, forçando esta tecnologia a desaparecer completamente do mercado.

Casos de Uso do WebRTC