¿Por Qué Meta Apostó por AV1 para Comunicación en Tiempo Real?

En 2023, Meta comenzó a habilitar soporte AV1 para dispositivos de gama alta en Messenger y WhatsApp. Para 2026, AV1 está activado en la mayoría de los dispositivos móviles en las aplicaciones de Comunicación en Tiempo Real (RTC) de Meta. La motivación es simple: AV1 ofrece la misma calidad visual que H.264/AVC usando al menos un 20% menos de ancho de banda, y a menudo mucho más en dispositivos capaces.

Para usuarios en mercados emergentes, donde la tasa de bits del video puede caer a 10–400 kbps, esta diferencia es dramática. En pruebas lado a lado a 100 kbps, el video H.264 se ve notablemente borroso mientras que AV1 permanece mucho más nítido. AV1 también sobresale en contenido de pantalla (texto, UI) gracias al modo paleta y la copia intrabloque, que son parte de su perfil principal.

Pero llevar AV1 a llamadas en tiempo real es mucho más difícil que usarlo para video bajo demanda. RTC requiere latencia de extremo a extremo por debajo de 300 ms, codificación/decodificación en tiempo real en dispositivos con batería y manejo elegante de fluctuaciones de red. El blog de ingeniería de Meta (fuente abajo) detalla exactamente cómo abordaron cada obstáculo.

Fuente: Blog de Ingeniería de Meta

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

Los Principales Desafíos y Soluciones

1. Selección de Codificador/Decodificador

Problema: Los codificadores AV1 de código abierto (como libAOM) aumentaron el consumo de energía en un 14% en un Pixel 8 en comparación con H.264, y agregaron 1.7 MB al binario de la aplicación (600 kB comprimidos). Para una empresa que sirve a miles de millones de usuarios, el tamaño del binario afecta las tasas de éxito de actualización, el tiempo de inicio y las tasas de fallos.

Solución: Meta adoptó un codificador interno de baja complejidad con consumo de energía similar al H.264 baseline. Desarrollaron un preset de ultra baja complejidad que iguala la complejidad de codificación H.264 mientras mantiene las ganancias de compresión AV1. Para decodificación, eligieron dav1d por su eficiencia energética superior.

Mitigación de tamaño binario:

  • El enfoque de descarga dinámica falló debido a problemas de red/dispositivo.
  • En su lugar, optimizaron la herramienta de matriz de cuantización (QM) (la redujeron a la mitad), eliminaron herramientas no utilizadas (ahorrando 60 kB) y compartieron bibliotecas de códec entre funciones.

2. Elegibilidad de Dispositivos: Enfoque Basado en ML

Problema: Android tiene miles de modelos de dispositivos. Confiar en especificaciones como RAM, año de lanzamiento o versión del SO resultó poco confiable. Algunos teléfonos octa-core de 2023 ni siquiera podían codificar 320×180@15fps en tiempo real debido a la limitación de la CPU.

Solución: Meta construyó un marco de elegibilidad de dispositivos basado en ML que utiliza métricas de rendimiento del mundo real (no datos de laboratorio) para calcular un rtc_score. El modelo se refinó iterativamente:

  • Modelo V1.1 (agosto de 2025): Expandió el tráfico AV1.
  • Modelo V2: Enfoque de dos niveles separando dispositivos de gama alta y baja.

3. Adaptación de Complejidad del Códec

Incluso los dispositivos elegibles tienen dificultades durante las llamadas. Meta implementó tres mecanismos adaptativos:

# Pseudocódigo: Ajuste adaptativo de preset del codificador
if latencia_codificacion > UMBRAL_ALTO:
    disminuir_complejidad_codificador()
elif latencia_codificacion < UMBRAL_BAJO:
    aumentar_complejidad_codificador()

# Si aún es muy alto, cambiar a H.264
if latencia_codificacion > MAXIMO_PERMITIDO:
    cambiar_codec_a_h264()

# Verificación de decodificación del par
if latencia_decodificacion_par > UMBRAL_PAR:
    remitente_cambia_a_h264()

Esto permite un diseño de códec asimétrico: los teléfonos de gama media envían H.264 pero reciben AV1 de pares de gama alta, aumentando significativamente la cobertura.

4. Control de Tasa: Evitando Overshoot y Undershoot

Problema: Los picos de tasa de bits causan congestión y congelación de video. El retardo VBV (Video Buffering Verifier) debe mantenerse por debajo de 200 ms. El overshoot es obvio, pero el undershoot también perjudica: engaña a la estimación de ancho de banda y ralentiza la rampa de aumento de la tasa.

Solución:

  • El codificador rastrea el estado del búfer VBV y reduce la tasa de los cuadros subsiguientes después de un overshoot.
  • La tasa de bits de los keyframes se controla estrictamente para evitar picos.
  • Reference Picture Resampling (RPR) permite cambios de resolución sin generar un keyframe.
  • Algoritmo revisado para evitar overshoot y undershoot.

5. Resiliencia a Errores: Capas Temporales y LTR

Capas Temporales (TL):

  • Los cuadros se organizan en capa base (T0) y capas de mejora (T1, T2…).
  • Si se pierden paquetes de mejora, la decodificación continúa con la capa base — sin congelación.
  • FEC protege la capa base; las retransmisiones se priorizan por capa.
  • TL se activa adaptativamente solo cuando aumenta la pérdida de paquetes, para evitar pérdida de eficiencia de compresión.

Long-Term Reference (LTR):

  • Periódicamente, el codificador emite un cuadro LTR almacenado en un búfer de 4 cuadros.
  • Ante una pérdida de paquete, el receptor solicita un cuadro LTRP (predicho por LTR) — resincronizando instantáneamente sin un keyframe costoso.
  • LTR se implementa mediante una extensión de encabezado RTP propietaria que lleva un indicador LTR explícito y frame_id para el seguimiento ACK.
# Manejo de solicitud LTR (simplificado)
def handle_ltr_request(request):
    if tiene_ltr_con_ack_en_buffer():
        codificar_cuadro_ltrp()
    else:
        codificar_keyframe()  # fallback

LTR reutiliza cuadros periódicos de alta calidad existentes, por lo que tiene poca sobrecarga.

Diagram of AV1 temporal layer structure for error resilience in real-time communication System Abstract Visual

Limitaciones y Advertencias

Aunque el enfoque de Meta es impresionante, no es una bala de plata:

  • El consumo de energía sigue siendo mayor en dispositivos de gama baja, incluso con el codificador optimizado.
  • Las llamadas grupales siguen siendo un desafío — decodificar múltiples flujos AV1 simultáneamente es mucho más difícil.
  • Se necesita soporte AV1 por hardware para una adopción verdaderamente generalizada.
  • Las capas temporales reducen la eficiencia de compresión si siempre están activadas; la conmutación adaptativa agrega complejidad.
  • LTR requiere una coordinación estrecha entre red y codificador — no todas las implementaciones de códec lo soportan.

Próximos Pasos para tu Aprendizaje

Si estás implementando o evaluando AV1 para tu propio producto RTC:

  1. Empieza con el decodificador dav1d — es la opción de código abierto más eficiente en energía.
  2. Construye un modelo de capacidad de dispositivo usando métricas de rendimiento reales, no solo especificaciones.
  3. Implementa conmutación adaptativa de códec — no asumas que un dispositivo que decodifica AV1 también puede codificarlo.
  4. Prueba el control de tasa bajo cambios frecuentes de tasa/resolución — aquí es donde fallan la mayoría de los codificadores.
  5. Considera capas temporales y LTR para redes con pérdida, pero mide el trade-off de compresión.

Para un contexto más profundo sobre técnicas de optimización de códec, echa un vistazo a Beyond Matrix Math: Cómo NVIDIA Blackwell Ultra Enfrenta el Cuello de Botella Softmax — cubre trade-offs similares en inferencia de IA. Y si tienes curiosidad sobre otras tendencias tecnológicas de 2026, CSS en 2026: Función Alpha, Grid Lanes y lo que Pasó en CSS Day explora nuevas capacidades frontend.

Meta server infrastructure supporting AV1 real-time video encoding and decoding Developer Related Image

Conclusión: AV1 es el Futuro del RTC — Pero Requiere Ingeniería

La travesía de Meta muestra que adoptar AV1 para comunicación en tiempo real no es solo un cambio de códec. Requiere:

  • Diseño de codificador de baja complejidad que iguale el consumo de energía de H.264.
  • Elegibilidad de dispositivos basada en ML que aprende de datos del mundo real.
  • Conmutación adaptativa de códec y preset que responde a la salud del dispositivo.
  • Control de tasa sofisticado para evitar overshoot y undershoot.
  • Capas temporales y LTR para degradación elegante bajo pérdida de paquetes.

¿El resultado? AV1 ahora alimenta la mayoría de los dispositivos móviles en las llamadas de Messenger y WhatsApp, ofreciendo mejor calidad a los usuarios en redes limitadas. A medida que el soporte de hardware se expande y los modelos de ML mejoran, la cobertura y la calidad solo aumentarán.

Mensaje clave para desarrolladores: Los beneficios de AV1 son reales, pero implementarlo en un producto RTC requiere un enfoque holístico a nivel de sistema — no solo integrar una biblioteca. Empieza pequeño, mide todo e itera.

Este contenido fue redactado con la asistencia de herramientas de IA, basándose en fuentes confiables, y fue revisado por nuestro equipo editorial antes de su publicación. No reemplaza el asesoramiento de un profesional especializado.