Por Que o Meta Apostou no AV1 para Comunicação em Tempo Real

Em 2023, o Meta começou a liberar suporte AV1 para dispositivos topo de linha no Messenger e WhatsApp. Em 2026, o AV1 está habilitado na maioria dos dispositivos móveis dos apps de Comunicação em Tempo Real (RTC) do Meta. A motivação é simples: o AV1 entrega a mesma qualidade visual que o H.264/AVC usando pelo menos 20% menos largura de banda — e muitas vezes muito mais em dispositivos capazes.

Para usuários em mercados emergentes, onde a taxa de bits do vídeo pode cair para 10–400 kbps, essa diferença é dramática. Em testes lado a lado a 100 kbps, o vídeo H.264 aparece visivelmente borrado enquanto o AV1 permanece muito mais nítido. O AV1 também se destaca em conteúdo de tela (texto, UI) graças ao modo paleta e cópia intrabloco, que fazem parte de seu perfil principal.

Mas trazer o AV1 para chamadas em tempo real é muito mais difícil do que usá-lo para vídeo sob demanda. O RTC exige latência de ponta a ponta abaixo de 300 ms, codificação/decodificação em tempo real em dispositivos com bateria e tratamento gracioso de flutuações de rede. O blog de engenharia do Meta (fonte abaixo) detalha exatamente como eles enfrentaram cada obstáculo.

Fonte: Blog de Engenharia do Meta

Two Android phones showing H.264 vs AV1 video call quality comparison at 100 kbps Developer Related Image

Os Principais Desafios e Soluções

1. Seleção de Codificador/Decodificador

Problema: Codificadores AV1 de código aberto (como libAOM) aumentaram o consumo de energia em 14% em um Pixel 8 em comparação com H.264, e adicionaram 1,7 MB ao binário do aplicativo (600 kB compactados). Para uma empresa que atende bilhões de usuários, o tamanho do binário afeta as taxas de sucesso de atualização, o tempo de inicialização e as taxas de falha.

Solução: O Meta adotou um codificador interno de baixa complexidade com consumo de energia semelhante ao H.264 baseline. Eles desenvolveram um preset de ultrabaixa complexidade que corresponde à complexidade de codificação H.264 enquanto mantém os ganhos de compactação AV1. Para decodificação, escolheram dav1d por sua eficiência energética superior.

Mitigação de tamanho binário:

  • A abordagem de download dinâmico falhou devido a problemas de rede/dispositivo.
  • Em vez disso, otimizaram a ferramenta de matriz de quantização (QM) (reduziram pela metade), removeram ferramentas não utilizadas (economizando 60 kB) e compartilharam bibliotecas de codec entre recursos.

2. Elegibilidade de Dispositivos: Abordagem Baseada em ML

Problema: O Android tem milhares de modelos de dispositivos. Confiar em especificações como RAM, ano de lançamento ou versão do SO se mostrou não confiável. Alguns celulares octa-core de 2023 não conseguiam codificar nem 320×180@15fps em tempo real devido ao throttling da CPU.

Solução: O Meta construiu uma estrutura de elegibilidade de dispositivos baseada em ML que usa métricas de desempenho do mundo real (não dados de laboratório) para calcular um rtc_score. O modelo foi refinado iterativamente:

  • Modelo V1.1 (agosto de 2025): Expandiu o tráfego AV1.
  • Modelo V2: Abordagem de dois níveis separando dispositivos de alto e baixo desempenho.

3. Adaptação de Complexidade do Codec

Mesmo dispositivos elegíveis enfrentam dificuldades durante as chamadas. O Meta implementou três mecanismos adaptativos:

# Pseudocódigo: Ajuste adaptativo de preset do codificador
if latencia_codificacao > LIMIAR_ALTO:
    diminuir_complexidade_codificador()
elif latencia_codificacao < LIMIAR_BAIXO:
    aumentar_complexidade_codificador()

# Se ainda muito alto, mudar para H.264
if latencia_codificacao > MAXIMO_PERMITIDO:
    trocar_codec_para_h264()

# Verificação de decodificação do par
if latencia_decoficacao_par > LIMIAR_PAR:
    remetente_troca_para_h264()

Isso permite um design de codec assimétrico: celulares intermediários enviam H.264, mas recebem AV1 de pares de alto desempenho, aumentando significativamente a cobertura.

4. Controle de Taxa: Evitando Overshoot e Undershoot

Problema: Picos de taxa de bits causam congestionamento e congelamento de vídeo. O atraso VBV (Video Buffering Verifier) deve ficar abaixo de 200 ms. Overshoot é óbvio, mas undershoot também prejudica — engana a estimativa de largura de banda e diminui a rampa de aumento da taxa.

Solução:

  • O codificador rastreia o status do buffer VBV e reduz a taxa dos quadros subsequentes após overshoot.
  • A taxa de bits dos keyframes é estritamente controlada para evitar picos.
  • O Reference Picture Resampling (RPR) permite mudanças de resolução sem gerar um keyframe.
  • Algoritmo revisado para evitar overshoot e undershoot.

5. Resiliência a Erros: Camadas Temporais e LTR

Camadas Temporais (TL):

  • Quadros organizados em camada base (T0) e camadas de aprimoramento (T1, T2…).
  • Se pacotes de aprimoramento são perdidos, a decodificação continua com a camada base — sem congelamento.
  • FEC protege a camada base; retransmissões são priorizadas por camada.
  • TL é ativada adaptativamente apenas quando a perda de pacotes aumenta, para evitar perda de eficiência de compactação.

Long-Term Reference (LTR):

  • Periodicamente, o codificador emite um quadro LTR armazenado em um buffer de 4 quadros.
  • Em caso de perda de pacote, o receptor solicita um quadro LTRP (previsto por LTR) — ressincronizando instantaneamente sem um keyframe caro.
  • LTR é implementado via uma extensão de cabeçalho RTP proprietária que carrega um indicador LTR explícito e frame_id para rastreamento ACK.
# Manipulação de solicitação LTR (simplificada)
def handle_ltr_request(request):
    if tem_ltr_com_ack_no_buffer():
        codificar_quadro_ltrp()
    else:
        codificar_keyframe()  # fallback

O LTR reutiliza quadros periódicos de alta qualidade existentes, então há pouca sobrecarga.

Diagram of AV1 temporal layer structure for error resilience in real-time communication Development Concept Image

Limitações e Cuidados

Embora a abordagem do Meta seja impressionante, não é uma bala de prata:

  • Consumo de energia ainda maior em dispositivos de baixo desempenho, mesmo com codificador otimizado.
  • Chamadas em grupo continuam desafiadoras — decodificar vários fluxos AV1 simultaneamente é muito mais difícil.
  • Suporte AV1 por hardware é necessário para adoção verdadeiramente generalizada.
  • Camadas temporais reduzem a eficiência de compactação se sempre ativadas; a comutação adaptativa adiciona complexidade.
  • LTR requer coordenação estreita entre rede e codificador — nem todas as implementações de codec suportam isso.

Próximos Passos para Seu Aprendizado

Se você está implementando ou avaliando AV1 para seu próprio produto RTC:

  1. Comece com o decodificador dav1d — é a opção de código aberto mais eficiente em energia.
  2. Construa um modelo de capacidade de dispositivo usando métricas de desempenho reais, não apenas especificações.
  3. Implemente comutação adaptativa de codec — não presuma que um dispositivo que decodifica AV1 também pode codificá-lo.
  4. Teste o controle de taxa sob mudanças frequentes de taxa/resolução — é onde a maioria dos codificadores falha.
  5. Considere camadas temporais e LTR para redes com perda, mas meça o trade-off de compactação.

Para um contexto mais profundo sobre técnicas de otimização de codec, confira Beyond Matrix Math: Como o NVIDIA Blackwell Ultra Enfrenta o Gargalo Softmax — ele aborda trade-offs semelhantes em inferência de IA. E se você está curioso sobre outras tendências tecnológicas de 2026, CSS em 2026: Função Alpha, Grid Lanes e o que Aconteceu no CSS Day explora novas capacidades frontend.

Meta server infrastructure supporting AV1 real-time video encoding and decoding Technical Structure Concept

Conclusão: AV1 é o Futuro do RTC — Mas Exige Engenharia

A jornada do Meta mostra que adotar AV1 para comunicação em tempo real não é apenas uma troca de codec. Exige:

  • Design de codificador de baixa complexidade que corresponda ao consumo de energia do H.264.
  • Elegibilidade de dispositivos baseada em ML que aprende com dados do mundo real.
  • Comutação adaptativa de codec e preset que responde à saúde do dispositivo.
  • Controle de taxa sofisticado para evitar overshoot e undershoot.
  • Camadas temporais e LTR para degradação graciosa sob perda de pacotes.

O resultado? O AV1 agora alimenta a maioria dos dispositivos móveis nas chamadas do Messenger e WhatsApp, entregando melhor qualidade para usuários em redes limitadas. Conforme o suporte de hardware se expande e os modelos de ML melhoram, a cobertura e a qualidade só aumentarão.

Mensagem principal para desenvolvedores: Os benefícios do AV1 são reais, mas implantá-lo em um produto RTC exige uma abordagem holística em nível de sistema — não apenas integrar uma biblioteca. Comece pequeno, meça tudo e itere.

Este conteúdo foi elaborado com o auxílio de ferramentas de IA, com base em fontes confiáveis, e revisado pela nossa equipe editorial antes da publicação. Não substitui o aconselhamento de um profissional especializado.