¿Qué es el streaming con tasa de bits adaptativa?

El streaming con tasa de bits adaptativa ofrece varias variantes del mismo contenido generadas mediante encoding. El reproductor alterna entre ellas según el ancho de banda, el estado del búfer y la capacidad del dispositivo durante la reproducción.

Un video de origen
El reproductor solicita una variante por segmento
El encoding y el empaquetado de la escala se realizan antes de que se soliciten sus segmentos. Durante la reproducción, el reproductor elige una variante para cada solicitud de segmento a partir de sus propias mediciones, por lo que el servidor no transcodifica por espectador.

Cómo funciona el streaming con tasa de bits adaptativa

El streaming adaptativo divide las variantes alineadas temporalmente en segmentos multimedia direccionables y los describe en un manifiesto: una lista de reproducción en HLS y un documento XML llamado MPD en MPEG-DASH. El reproductor elige una variante para las próximas solicitudes de segmentos a partir de señales como el caudal medido y el contenido multimedia almacenado en el búfer, por lo que el cambio es una decisión de entrega del lado del cliente y no una transcodificación del lado del servidor durante la transmisión. Ambos protocolos pueden transportar segmentos MP4 fragmentados, lo que permite que el empaquetado CMAF sirva un único conjunto de archivos multimedia bajo ambos manifiestos.

Datos clave

  1. Los cambios sin interrupciones se determinan durante el encoding y el empaquetado. RFC 8216 exige que el contenido correspondiente de todas las variantes HLS tenga marcas de tiempo coincidentes, y la especificación de creación de Apple exige que cada segmento de video comience con un fotograma IDR y recomienda que los límites de los segmentos se sitúen en los mismos puntos temporales en todas las variantes. El perfil de interoperabilidad de DASH-IF también inicia cada segmento con un punto de acceso similar a IDR y alinea los límites de los segmentos dentro de un Adaptation Set.
  2. El algoritmo de cambio pertenece al reproductor, no al protocolo: RFC 8216 lo deja fuera de su alcance, por lo que una misma transmisión puede comportarse de forma distinta según el reproductor. En hls.js, por ejemplo, los ajustes predeterminados exigen un margen de ancho de banda mayor para subir de nivel (abrBandWidthUpFactor) que para mantenerlo o bajarlo (abrBandWidthFactor), y limitar la calidad al tamaño del elemento de video o reaccionar a los fotogramas descartados solo ocurre cuando se activa capLevelToPlayerSize o capLevelOnFPSDrop; ambas opciones están desactivadas de forma predeterminada.
  3. La calidad inicial depende del orden de la lista de reproducción y de los ajustes del reproductor. La especificación de Apple considera predeterminada de cada grupo la primera variante que aparece en la lista de reproducción multivariante dentro de ese grupo de variantes con audio compatible. En hls.js, dejar startLevel sin establecer no fija la reproducción en el primer nivel de la lista, aunque algunas partes de la documentación de su API afirman que sí: el código fuente de v1.6.13 elige el nivel inicial a partir de una estimación del ancho de banda, que la tasa de bits de la primera variante de la lista puede elevar, de modo que el orden de la lista influye en el inicio sin fijarlo. Con startLevel en -1, hls.js descarga de forma predeterminada un fragmento del nivel más bajo para estimar el ancho de banda antes de elegir.
  4. La separación entre niveles de la escala es una decisión que depende del contenido, y las tasas declaradas deben ser precisas. Apple presenta sus tablas de tasas de bits como objetivos iniciales que debes evaluar con tu propio contenido, y el trabajo por título de Netflix observó que una escala fija consume más bits de los que necesitan los títulos sencillos, mientras deja artefactos en los complejos. Su objetivo declarado es separar los niveles adyacentes aproximadamente por una diferencia apenas perceptible, para que los cambios sean suaves con el menor número de variantes. En HLS, RFC 8216 advierte que un valor de BANDWIDTH impreciso puede causar interrupciones o impedir que se reproduzca una variante.

Cuándo es relevante el streaming con tasa de bits adaptativa

Proporciona una escala de tasas de bits cuando los cambios en las condiciones de red causarían interrupciones de otro modo. Las variantes mal espaciadas pueden desperdiciar almacenamiento o forzar caídas visibles de calidad sin mejorar significativamente la continuidad.

Cómo ayuda Transloadit con el streaming con tasa de bits adaptativa

El Robot /video/adaptive de Transloadit empaqueta variantes generadas mediante encoding en una salida HLS, MPEG-DASH o CMAF y genera los archivos de listas de reproducción y manifiestos; con technique establecido en cmaf, los manifiestos DASH y HLS hacen referencia a los mismos segmentos fMP4. Las variantes suelen proceder de Steps del Robot /video/encode que utilizan los ajustes preestablecidos hls/ o dash/, y se agrupan en un único Step del Robot /video/adaptive.

Transloadit prepara los archivos; el reproductor que utilices elige la variante durante la reproducción. La documentación del Robot también describe cómo forzar fotogramas clave coincidentes en cada Step del Robot /video/encode para que los segmentos se alineen entre variantes, los encabezados CORS que debes configurar en tu servidor de archivos (necesarios cuando el reproductor carga los archivos desde otro origen) y los metadatos relative_path que debes utilizar al almacenar segmentos para que se resuelvan las referencias de las listas de reproducción.

Explora las capacidades de transmisión de medios de Transloadit

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis