Arquitectura de Video Digital: Protocolos, Códecs y Estándares de Transmisión
Clasificado en Informática
Escrito el en
español con un tamaño de 5,28 KB
MPD y Estructura de DASH
MPD (Media Presentation Description): Contenido bajo demanda con una duración de 60 segundos. Se organiza en segmentos de 4 a 6 segundos cada uno. Cuenta con 2 pistas de vídeo, 9 de audio y 4 de subtítulos, ofreciendo 5 representaciones de vídeo.
- Bandwidth (Ancho de banda): Variable según la representación.
- Códecs:
- Audio: Opus y MP4.
- Vídeo: AVC1 y VP09.
- Formatos: WebM y WebM.
- URL: Indicadas en las playlists.
- DASH: Estándar abierto.
El segmento inicial se define con SegmentBase usando el atributo indexRange, el cual indica un rango de bytes. El índice de segmentos también se especifica como un rango de bytes dentro de SegmentBase para cada representación.
Calidad y Metadatos
Angel One: Soporta AAC, AV y MP4. La calidad de vídeo se mide mediante métricas como PSNR, SSIM y VMAF.
Sidx: Cabecera que contiene información de segmentación; sin embargo, se distingue entre los casos donde hay segmentación y donde no la hay.
Relaciones y Gestión de Derechos Digitales (DRM)
Tabla de Relaciones
- Tipo de pista: AdaptationSet
- Ancho de banda: Representation
- Códec: Representation
- Resolución: Representation
Seguridad y Desencriptación
- CDM (Content Decryption Module): Encargado de desencriptar el contenido.
- EME (Encrypted Media Extensions): Facilita la comunicación entre el CDM y el servidor.
- CENC (Common Encryption): Permite cifrar el contenido una sola vez para que sirva en todos los sistemas, utilizando la misma clave y KeyID en todos ellos.
- AES (Advanced Encryption Standard): Utiliza bloques de 128 bits. Los modos CBC y CTR funcionan de manera independiente.
Estándares de Interoperabilidad y Distribución
CMAF (Common Media Application Format): Utiliza el tipo fMP4 y soporta encriptación AES-CBC (para MPEG-DASH) y AES-CTR. Permite un único flujo de trabajo e integra soporte nativo para DRM.
Shaka Player: Biblioteca que gestiona la descarga, el cambio de calidad (adaptabilidad) y la reproducción, optimizando el uso del ancho de banda.
CDN (Content Delivery Network): Ejemplos destacados incluyen Akamai, CloudFlare, Netflix Open Connect, Fastly o Amazon CloudFront.
Interfaces del Navegador y Formatos HAS
MSE (Media Source Extensions): Permite a JavaScript enviar datos directamente a los códecs del navegador.
EME: Permite al navegador comunicarse con sistemas de protección de contenido.
Formatos Actuales de Streaming Adaptativo (HAS)
Ordenados de mayor a menor uso:
- HLS (Apple): Utiliza códecs como H.264/H.265 y AAC o MP3. Originalmente usaba MPEG2-TS, pero actualmente permite fMP4 y dispone de versiones de baja latencia (Low-Latency HLS). Ideal para transmisiones en directo. Su manifiesto es el archivo M3U8 y emplea cifrado AES-128 CBC.
- MPEG-DASH: Estándar abierto (ISO), más flexible con los códecs y compatible con navegadores HTML5, aunque no funciona nativamente en iOS o AppleTV. Posee versiones de baja latencia como DASH CMAF. Utiliza fMP4, manifiestos MPD y cifrado AES-128 CTR.
- Microsoft Smooth Streaming
- Adobe HDS
Protocolos de Red y Codificación
- TCP: Protocolo más fiable pero generalmente más lento.
- UDP: Menos fiable pero más rápido. Reenvía paquetes perdidos automáticamente en ciertos contextos y es la base del protocolo QUIC.
- RTP: Basado en UDP.
Latencia (de mayor a menor retardo)
DASH > RTMP > Low-latency HLS > WebRTC
Modos de Codificación
- VBR (Variable Bitrate): El bitrate cambia según la complejidad de la imagen (usando QR o CRF).
- CBR (Constant Bitrate): El bitrate se mantiene fijo.
Métricas de Calidad y Rendimiento
La calidad de vídeo se evalúa con PSNR, SSIM y VMAF. El streaming adaptativo se apoya principalmente en MPEG-DASH y HLS.
Bitrate (bps): Se calcula mediante la fórmula:
Bitrate = Resolución × (YUV o RGB) × fps × bits por píxel (depende de la resolución y la velocidad de fotogramas).
Ratio de compresión: Se define como el tamaño antes de comprimir (S0) dividido por el tamaño después de comprimir (S1), con valores típicos que oscilan entre 90 y 200.