Compresión de video con H264 y MP3

Clase 26 de 32Fundamentos de Ingeniería de Software

Resumen

Optimizar video y audio requiere entender cómo se comprime, qué contenedores y códecs se usan, y qué protocolos los transportan. Aquí encontrarás una guía clara para elegir mejor, ahorrar batería y evitar errores comunes en producción y reproducción.

¿Cómo se comprimen video y audio sin perder demasiado?

La compresión no solo reduce el tamaño de cada imagen, también aprovecha que en un video muchas zonas cambian poco a lo largo del tiempo. En audio, se eliminan partes que el oído humano no percibe. Ambas decisiones equilibran calidad, peso y consumo del procesador.

¿Qué significan los frames por segundo?

  • Un video son muchas fotos por segundo: 24, 30 o 12 fps.
  • Ejemplo práctico: 100 frames a 24 fps ≈ 4 segundos.
  • Si cada frame pesara 1.9 MB (como un JPG del ejemplo), esos 100 frames serían ≈ 190 MB para 4 s.
  • Compresión temporal: se reutilizan zonas estáticas a través del tiempo para reducir bytes.
  • En escenas educativas con fondo fijo, el algoritmo puede mantener áreas constantes por minutos.

¿Por qué existen los keyframes y los artefactos?

  • Los keyframes reestablecen la referencia completa cada cierto número de frames para evitar errores acumulados.
  • Si se pierde un keyframe, aparecen los drop keyframes: pantallas verdes o objetos congelados hasta la siguiente referencia.
  • Los códecs avanzados como H264 y H265 no solo usan rectángulos; también aproximan con formas geométricas.
  • Más compresión implica más trabajo para CPU/GPU al decodificar y más consumo de batería.

¿Qué son los kbps y la fidelidad en audio y video?

  • kbps indica cuántos bytes por segundo representan la señal: más kbps, mayor fidelidad.
  • Números comunes en audio: 96, 128, 256 kbps.
  • Con 1000 kbps, una onda se representa con muchos puntos (alta fidelidad). Con 100 kbps, el software aproxima y pierde detalle.
  • En video ocurre algo similar: con pocos kbps, la imagen se suaviza por aproximaciones de color.
  • MP3 comprime eliminando partes de la onda que el oído humano no detecta.
  • Otros formatos: AAC, FLAC (compresión sin pérdida, como PNG o .zip), OGG (abierto, poco usado), y .WAB como representación sin compresión.

¿Qué es un contenedor y qué códecs dominan?

Un contenedor guarda video, audio, subtítulos y metadatos (por ejemplo, 1280×720 y el códec usado). Permite múltiples pistas de video y audio, y funcionalidades como transmisión segmentada.

¿Qué hacen formatos como MP4, WebM y MKV?

  • Contenedores conocidos: AVI, MP4, FLV, MPG, WebM, MKV.
  • MKV (Matrioshka Video): soporta subtítulos con animaciones o estilo CSS y múltiples pistas de audio.
  • Multipart: el video se divide en fragmentos que repiten la cabecera; útil para llegar a mitad de una transmisión en vivo.
  • El contenedor gestiona cabeceras y metadatos esenciales.

¿Qué códecs se usan y quién los controla?

  • Códec: codificador/decodificador o compresor/descompresor. Ejemplos: DivX, H264, VP9, Ogg.
  • VP9 y Ogg: abiertos a la comunidad. WebM (contenedor) y VP9 fueron abiertos por Google tras comprar On2.
  • H264 y MP4: cerrados y con patentes administradas por MPEG LA (empresas como Apple, Microsoft, Universal, Sony).
  • La televisión digital terrestre suele usar H264 en MP4, según el estándar de cada país.

¿Cómo afecta el hardware y la batería?

  • iPhone y muchos Android incluyen un chip dedicado para H264: comprime/ descomprime con menor consumo eléctrico.
  • Esto alarga la vida de la batería, pero desincentiva usar alternativas más libres como WebM/VP9.
  • Históricamente, pocos Android soportan VP9, mientras que H264 se soporta ampliamente.

¿Qué protocolos permiten transmitir video en Internet?

Para entrega continua y resiliente, no basta con descargar archivos: se necesitan protocolos que soporten fragmentación, bidirección y baja latencia.

¿Qué mejoras tiene HTTP para medios?

  • Descarga progresiva: reanudar sin empezar desde cero.
  • Lectura aleatoria: bajar partes específicas del archivo.
  • Descarga paralela de pedacitos para acelerar la entrega.

¿Cómo funciona RTMP en streaming?

  • RTMP (Real Time Message Protocol) permite enviar y recibir video.
  • Soporta multipart: fragmentos con cabeceras propias para empezar en cualquier punto.
  • Transporta video, audio y texto (chats, videojuegos) en paralelo.
  • Usado en plataformas como YouTube y Twitch.

¿Qué propone Web RTC?

  • Web RTC es peer to peer: los clientes también comparten el video entre sí.
  • Similar a BitTorrent, con un servidor que origina y pares que redistribuyen.
  • Ideal para videollamadas punto a punto.
  • Exigente para CPU (codificación/decodificación en tiempo real) y para la conexión.
  • Por ahora, soporte limitado en pocos navegadores.

¿Te quedó alguna duda sobre contenedores, códecs o protocolos? Comparte tu caso de uso y comentemos cómo optimizar calidad, peso y consumo según tu escenario.