Videos: contenedores, codecs y protocolos
Clase 20 de 24 • Curso de Fundamentos de Ingeniería de Software
Resumen
La compresión de video es un campo fascinante que combina matemáticas avanzadas, ciencia computacional y tecnología de hardware para permitirnos disfrutar de contenido audiovisual en nuestros dispositivos. Sin esta tecnología, sería prácticamente imposible almacenar o transmitir videos digitales debido al enorme volumen de datos que representan. Veamos cómo funciona este proceso esencial en nuestra vida digital cotidiana.
¿Cómo funciona la compresión de video?
La compresión de video surge de una necesidad práctica: una película no es más que una secuencia de imágenes mostradas en sucesión rápida, típicamente a 24 frames por segundo. Sin compresión, el tamaño de estos archivos sería inmanejable.
Los algoritmos de compresión de video funcionan identificando patrones y redundancias a lo largo del tiempo. Por ejemplo, en un video de una persona corriendo, el fondo permanece mayormente estático mientras solo la persona se mueve. Los códecs (compresores/descompresores) identifican estas áreas estáticas y las convierten en bloques tridimensionales que permanecen constantes hasta que cambia completamente la escena.
Esta técnica permite reducir drásticamente el tamaño del archivo sin perder calidad visual perceptible, aunque requiere operaciones matemáticas complejas que demandan considerable potencia de procesamiento.
Anatomía de un archivo de video digital
Un video digital moderno está compuesto por varios elementos clave:
- Contenedor: Es el formato de archivo donde se almacena todo el contenido (.mp4, .mkv, .avi, .MOV, etc.)
- Pistas de video: La información visual comprimida mediante un códec específico
- Pistas de audio: El sonido comprimido con su propio códec
- Subtítulos: Texto sincronizado que aparece en momentos específicos
Un mismo contenedor puede albergar múltiples pistas de cada tipo, permitiendo diferentes idiomas de audio, subtítulos o incluso ángulos de cámara.
Códecs: el corazón de la compresión
Los códecs son algoritmos especializados que comprimen y descomprimen el contenido audiovisual. Entre más comprimido esté un video, más recursos computacionales se necesitan para reproducirlo en tiempo real.
Los códecs de video más comunes actualmente son:
- H.264: El estándar más extendido, propiedad del consorcio MPEG-LA
- H.265: Una versión más eficiente, popular en dispositivos Apple
- VP9: Desarrollado por Google como alternativa abierta
- AV1: Un códec más reciente y eficiente
Es importante destacar que H.264 es un códec propietario cuyo uso requiere el pago de licencias por parte de los fabricantes de dispositivos. Como respuesta, Google adquirió la empresa ON2 y desarrolló VP9 como alternativa de código abierto. Paralelamente, la comunidad de software libre creó X264, una implementación abierta del algoritmo H.264.
La compresión de audio y su evolución
El audio en los videos también requiere compresión. El formato MP3 revolucionó este campo en los años 90 aplicando un principio similar al JPG: eliminar componentes que el oído humano no puede percibir.
Los códecs de audio más utilizados actualmente son:
- AAC: Comúnmente usado junto con H.264 en contenedores MP4
- MP3: Ampliamente utilizado por su compatibilidad universal
- Opus: Un códec más moderno y eficiente
Aunque existen audiófilos que afirman percibir diferencias sutiles entre formatos de alta fidelidad, para la mayoría de usuarios las diferencias entre códecs de audio de calidad similar son imperceptibles.
Transmisión de video por internet: protocolos especializados
La transmisión de video por internet presenta desafíos únicos. Cuando accedemos a un punto específico de un video (como saltar al minuto 5 en YouTube), necesitamos información de la cabecera del archivo para reproducirlo correctamente.
Para solucionar este problema, existen protocolos de transmisión especializados:
- HLS (HTTP Live Streaming): El más popular actualmente
- MPEG-DASH: Una alternativa estandarizada
- RTMP: Un protocolo más antiguo de la era Flash
Estos protocolos dividen el video en segmentos pequeños, cada uno con su propia cabecera, permitiendo acceder a cualquier punto del video sin necesidad de descargarlo completo.
Adaptación de calidad y bitrate
Los servidores modernos de video monitorizan constantemente el ancho de banda disponible entre el usuario y el servidor, ajustando dinámicamente la calidad del video para evitar interrupciones.
Es importante distinguir entre resolución y bitrate:
- Resolución: Número de píxeles (como 1080p, 720p)
- Bitrate: Cantidad de datos por segundo (medido en bits/segundo)
Contrario a lo que muchos creen debido a la interfaz de YouTube, resolución y bitrate no están necesariamente vinculados. Es posible tener un video 1080p con diferentes bitrates, resultando en distintos niveles de calidad visual dentro de la misma resolución.
Los servicios como Netflix o Twitch utilizan procesadores avanzados para recomprimir videos en tiempo real, adaptándose a las condiciones de red de cada usuario.
Para máxima compatibilidad al exportar videos, se recomienda usar:
- Contenedor: MP4
- Códec de video: H.264
- Códec de audio: AAC
Los subtítulos también siguen estándares, siendo SRT y VTT los formatos más comunes, que básicamente son archivos de texto con marcas de tiempo que indican cuándo debe mostrarse cada línea.
La compresión de video es un campo en constante evolución que ha transformado nuestra forma de consumir contenido audiovisual. ¿Has notado cómo ha mejorado la calidad de streaming en los últimos años a pesar de usar el mismo ancho de banda? Comparte tu experiencia en los comentarios.