La transmisión de velocidad de bits adaptativa es una técnica utilizada en la transmisión de multimedia a través de redes informáticas .
Mientras que en el pasado la mayoría de las tecnologías de transmisión de video o audio utilizaban protocolos de transmisión como RTP con RTSP , las tecnologías de transmisión adaptativa actuales se basan casi exclusivamente en HTTP , [1] y están diseñadas para funcionar de manera eficiente en grandes redes HTTP distribuidas.
La transmisión de velocidad de bits adaptativa funciona detectando el ancho de banda y la capacidad de la CPU de un usuario en tiempo real, ajustando la calidad de la transmisión multimedia en consecuencia. [2] Requiere el uso de un codificador que codifica un medio de fuente única (vídeo o audio) a múltiples velocidades de bits . El cliente del reproductor [3] cambia entre la transmisión de diferentes codificaciones dependiendo de los recursos disponibles. [4] Esto da como resultado proporcionar muy poco almacenamiento en búfer , tiempos de inicio más rápidos y una buena experiencia tanto para conexiones de gama alta como de gama baja. [5]
Más específicamente, la transmisión de velocidad de bits adaptativa es un método de transmisión de video a través de HTTP donde el contenido de origen se codifica a múltiples velocidades de bits. Cada uno de los diferentes flujos de velocidad de bits se segmenta en pequeñas partes de varios segundos. [6] El tamaño del segmento puede variar dependiendo de la implementación particular, pero normalmente son entre dos y diez segundos. [4] [6] Primero, el cliente descarga un archivo de manifiesto que describe los segmentos de transmisión disponibles y sus respectivas velocidades de bits. Durante el inicio del flujo, el cliente generalmente solicita los segmentos del flujo de velocidad de bits más baja. Si el cliente encuentra que el rendimiento de la red es mayor que la velocidad de bits del segmento descargado, solicitará un segmento de velocidad de bits más alta. Posteriormente, si el cliente descubre que el rendimiento de la red se ha deteriorado, solicitará un segmento de velocidad de bits más baja. Un algoritmo de velocidad de bits adaptativo (ABR) en el cliente realiza la función clave de decidir qué segmentos de velocidad de bits descargar, en función del estado actual de la red. Se utilizan comercialmente varios tipos de algoritmos ABR: los algoritmos basados en el rendimiento utilizan el rendimiento alcanzado en descargas anteriores recientes para la toma de decisiones (por ejemplo, la regla de rendimiento en dash.js), los algoritmos basados en el búfer utilizan sólo el nivel de búfer actual del cliente (por ejemplo, , BOLA [7] en dash.js) y los algoritmos híbridos combinan ambos tipos de información (por ejemplo, DYNAMIC [8] en dash.js).
Las empresas de posproducción , las redes de distribución de contenidos y los estudios utilizan tecnología de velocidad de bits adaptativa para ofrecer a los consumidores vídeos de mayor calidad utilizando menos mano de obra y menos recursos. La creación de múltiples salidas de video, particularmente para transmisión con velocidad de bits adaptativa, agrega un gran valor a los consumidores. [9] Si la tecnología funciona correctamente, el contenido del usuario final o del consumidor debería reproducirse sin interrupción y potencialmente pasar desapercibido. Las empresas de medios han estado utilizando activamente la tecnología de velocidad de bits adaptativa durante muchos años y esencialmente se ha convertido en una práctica estándar para los proveedores de transmisión de alto nivel; permitiendo poco almacenamiento en búfer cuando se transmiten transmisiones de alta resolución (comienza con baja resolución y sube).
La transmisión de velocidad de bits adaptativa tradicional impulsada por el servidor brinda a los consumidores de medios de transmisión la mejor experiencia posible, ya que el servidor de medios se adapta automáticamente a cualquier cambio en la red y las condiciones de reproducción de cada usuario. [10] La industria de los medios y el entretenimiento también se beneficia de la transmisión con velocidad de bits adaptativa. A medida que crece el espacio del vídeo, las redes de distribución de contenidos y los proveedores de vídeo pueden ofrecer a los clientes una experiencia de visualización superior. La tecnología de tasa de bits adaptable requiere codificación adicional , pero simplifica el flujo de trabajo general y crea mejores resultados.
Las tecnologías de transmisión de velocidad de bits adaptativa basada en HTTP generan beneficios adicionales sobre la transmisión de velocidad de bits adaptativa tradicional impulsada por servidor. En primer lugar, dado que la tecnología de transmisión se basa en HTTP , a diferencia de la transmisión adaptativa basada en RTP , los paquetes no tienen dificultades para atravesar firewalls y dispositivos NAT . En segundo lugar, dado que la transmisión HTTP está exclusivamente impulsada por el cliente, toda la lógica de adaptación reside en el cliente. Esto reduce el requisito de conexiones persistentes entre el servidor y la aplicación cliente. Además, no es necesario que el servidor mantenga información del estado de la sesión en cada cliente, lo que aumenta la escalabilidad. Finalmente, la infraestructura de entrega HTTP existente, como los servidores y cachés HTTP, se puede adoptar sin problemas. [11] [12] [13] [14]
Se utiliza una CDN escalable para ofrecer transmisión de medios a una audiencia de Internet. La CDN recibe la transmisión del origen en su servidor de origen y luego la replica en muchos o todos sus servidores de caché perimetrales . El usuario final solicita la transmisión y es redirigido al servidor Edge "más cercano". Esto se puede probar utilizando libdash [15] y el conjunto de datos Distributed DASH (D-DASH), [16] que tiene varios espejos en Europa, Asia y EE. UU. El uso de transmisión adaptativa basada en HTTP permite que el servidor Edge ejecute un software de servidor HTTP simple, cuyo costo de licencia es barato o gratuito, lo que reduce el costo de la licencia de software, en comparación con las costosas licencias de servidor de medios (por ejemplo, Adobe Flash Media Streaming Server). El costo de CDN para los medios de transmisión HTTP es similar al costo de CDN del almacenamiento en caché web HTTP.
La velocidad de bits adaptativa a través de HTTP fue creada por el DVD Forum en el grupo WG1 Special Streaming en octubre de 2002. El grupo fue copresidido por Toshiba y Phoenix Technologies . El grupo de expertos cuenta con la colaboración de Microsoft , Apple Computer , DTS Inc. , Warner Brothers , 20th Century Fox , Digital Deluxe, Disney , Macromedia y Akamai . [ dudoso ] [ cita necesaria ] La tecnología originalmente se llamaba DVDoverIP y fue un esfuerzo integral del libro DVD ENAV. [17] El concepto surgió de almacenar sectores TS de DVD MPEG-1 y MPEG-2 en pequeños archivos de 2 KB, que se entregarán mediante un servidor HTTP al reproductor. Los segmentos MPEG-1 proporcionaron un flujo de ancho de banda más bajo, mientras que el MPEG-2 proporcionó un flujo de velocidad de bits más alta. El esquema XML original proporcionaba una lista de reproducción sencilla de velocidades de bits, idiomas y servidores de URL. El primer prototipo funcional fue presentado en el DVD Forum por Phoenix Technologies en el laboratorio Harman Kardon en Villingen, Alemania. [ cita necesaria ]
Move Networks introdujo la transmisión de velocidad de bits adaptativa y ahora está siendo desarrollada y utilizada por Adobe Systems , Apple , Microsoft y Octoshape. [18] En octubre de 2010, Move Networks recibió una patente para su transmisión de velocidad de bits adaptativa (número de patente estadounidense 7818444). [19]
La transmisión dinámica adaptativa sobre HTTP (DASH), también conocida como MPEG-DASH, es la única solución de transmisión adaptativa basada en HTTP de velocidad de bits que es un estándar internacional [20]. La tecnología MPEG-DASH se desarrolló bajo MPEG . El trabajo en DASH comenzó en 2010 y se convirtió en un borrador de norma internacional en enero de 2011 y en una norma internacional en noviembre de 2011. [20] [21] [22] El estándar MPEG-DASH se publicó como ISO/IEC 23009-1:2012 en abril , 2012.
MPEG-DASH es una tecnología relacionada con Adobe Systems HTTP Dynamic Streaming, Apple Inc. HTTP Live Streaming (HLS) y Microsoft Smooth Streaming. [23] DASH se basa en la transmisión HTTP adaptable (AHS) en la versión 9 de 3GPP y en la transmisión adaptativa HTTP (HAS) en la versión 2 del Open IPTV Forum . [24] Como parte de su colaboración con MPEG, la versión 10 de 3GPP ha adoptado DASH ( con códecs y modos de funcionamiento específicos) para su uso en redes inalámbricas. [24]
El objetivo de estandarizar una solución de transmisión adaptativa es asegurar al mercado que la solución puede funcionar universalmente, a diferencia de otras soluciones que son más específicas para ciertos proveedores, como HLS de Apple, Smooth Streaming de Microsoft o HDS de Adobe.
Las implementaciones disponibles son el reproductor bitdash MPEG-DASH basado en HTML5 [25] así como la biblioteca de acceso de cliente DASH de código abierto basada en C++ libdash de bitmovin GmbH, [15] las herramientas DASH del Instituto de Tecnología de la Información (ITEC) en Alpen -Adria University Klagenfurt, [3] [26] el marco multimedia del grupo GPAC en Telecom ParisTech, [27] y el reproductor dash.js [28] de DASH-IF .
HTTP Live Streaming (HLS) es un protocolo de comunicaciones de transmisión de medios basado en HTTP implementado por Apple Inc. como parte de QuickTime X e iOS . HLS admite contenido en vivo y de vídeo bajo demanda . Funciona dividiendo flujos o archivos multimedia en fragmentos cortos (segmentos multimedia) que se almacenan como archivos MPEG-TS o MP4 fragmentados . Por lo general, esto se hace a múltiples velocidades de bits utilizando una aplicación segmentadora de secuencias o archivos, también conocida como empaquetador. Apple proporciona una de esas implementaciones de segmentador. [29] Hay paquetes adicionales disponibles, incluidas ofertas gratuitas/de código abierto como Shaka Packager de Google [30] y también varias herramientas comerciales, como Unified Streaming. [31] El segmentador también es responsable de producir un conjunto de archivos de lista de reproducción en formato M3U8 que describen los fragmentos de medios. Cada lista de reproducción es específica de una tasa de bits determinada y contiene las URL relativas o absolutas de los fragmentos de esa tasa de bits. Luego, el cliente es responsable de solicitar la lista de reproducción adecuada según el ancho de banda disponible.
HTTP Live Streaming es una característica estándar en el iPhone 3.0 y versiones más recientes. [32]
Apple ha presentado su solución al IETF para su consideración como una Solicitud Informativa de Comentarios . [33] Esto fue aceptado oficialmente como RFC 8216. Existen varias soluciones patentadas y de código abierto tanto para la implementación del servidor (segmentador) como para el reproductor cliente.
Las transmisiones HLS se pueden identificar mediante la extensión del formato URL de la lista de reproducción de m3u8 o el tipo MIME de aplicación/vnd.apple.mpegurl. [34] Estos flujos adaptativos pueden estar disponibles en muchas velocidades de bits diferentes y el dispositivo cliente interactúa con el servidor para obtener la mejor velocidad de bits disponible que pueda entregarse de manera confiable.
La reproducción de HLS es compatible con muchas plataformas, incluidas Safari y aplicaciones nativas en macOS/iOS, Microsoft Edge en Windows 10, ExoPlayer en Android y la plataforma Roku. Muchos televisores inteligentes también tienen soporte nativo para HLS. La reproducción de HLS en otras plataformas como Chrome/Firefox generalmente se logra mediante una implementación de navegador/reproductor JavaScript. Hay muchos reproductores comerciales y de código abierto disponibles, incluidos hls.js, video.js http-streaming, BitMovin, JWPlayer, THEOplayer, etc.
"La transmisión dinámica HTTP es el proceso de entrega eficiente de video en tiempo real a los usuarios cambiando dinámicamente entre diferentes transmisiones de diferente calidad y tamaño durante la reproducción. Esto brinda a los usuarios la mejor experiencia de visualización posible que su ancho de banda y el hardware de su computadora local ( CPU ) pueden soportar. Otro El principal objetivo de la transmisión dinámica es hacer que este proceso sea fluido y fluido para los usuarios, de modo que si es necesario aumentar o reducir la calidad de la transmisión, sea un cambio suave y casi imperceptible sin interrumpir la reproducción continua". [35]
Las últimas versiones de Flash Player y Flash Media Server admiten transmisión de velocidad de bits adaptativa a través del protocolo RTMP tradicional , así como HTTP , similar a las soluciones basadas en HTTP de Apple y Microsoft, [36] la transmisión dinámica HTTP es compatible con Flash Player. 10.1 y posteriores. [37] La transmisión basada en HTTP tiene la ventaja de no requerir que se abra ningún puerto de firewall fuera de los puertos normales utilizados por los navegadores web. La transmisión basada en HTTP también permite que los navegadores, servidores proxy y CDN almacenen en caché fragmentos de video , lo que reduce drásticamente la carga en el servidor de origen.
Smooth Streaming es una extensión de IIS Media Services que permite la transmisión adaptativa de medios a clientes a través de HTTP. [38] La especificación del formato se basa en el formato de archivo multimedia base ISO y está estandarizado por Microsoft como formato de archivo interoperable protegido. [39] Microsoft participa activamente en los esfuerzos de las organizaciones 3GPP , MPEG y DECE para estandarizar la transmisión HTTP de velocidad de bits adaptable. Microsoft proporciona kits de desarrollo de software Smooth Streaming Client para Silverlight y Windows Phone 7 , así como un kit de portabilidad Smooth Streaming que se puede utilizar para otros sistemas operativos de clientes, como Apple iOS, Android y Linux. [40] IIS Media Services 4.0, lanzado en noviembre de 2010, introdujo una función que permite reempaquetar dinámicamente vídeos H.264/AAC de Live Smooth Streaming en el formato Apple HTTP Adaptive Streaming y entregarlos a dispositivos iOS sin necesidad de volver a codificarlos. . Microsoft ha demostrado con éxito la entrega de vídeo HD de 1080p tanto en vivo como bajo demanda con Smooth Streaming a clientes Silverlight. En 2010, Microsoft también se asoció con NVIDIA para demostrar la transmisión en vivo de vídeo 3D estereoscópico de 1080p a PC equipadas con la tecnología NVIDIA 3D Vision . [41]
CMAF es un formato contenedor de presentación utilizado para la entrega de HLS y MPEG-DASH. Por lo tanto, se pretende simplificar la entrega de medios de transmisión por secuencias basados en HTTP. Fue propuesto en 2016 por Apple y Microsoft y publicado oficialmente en 2018. [42]
QuavStreams Adaptive Streaming es una tecnología de transmisión multimedia desarrollada por Quavlive. El servidor de streaming es un servidor HTTP que tiene múltiples versiones de cada vídeo, codificadas con diferentes velocidades de bits y resoluciones. El servidor entrega los fotogramas de vídeo/audio codificados cambiando de un nivel a otro, según el ancho de banda disponible actualmente. El control está completamente basado en servidor, por lo que el cliente no necesita funciones adicionales especiales. El control de transmisión emplea la teoría del control de retroalimentación. [43] Actualmente, QuavStreams admite códecs H.264/MP3 mezclados en el contenedor FLV y códecs VP8/Vorbis mezclados en el contenedor WEBM.
Uplynk ofrece transmisión de velocidad de bits adaptativa HD a múltiples plataformas, incluidas iOS, Android, Windows Mac, Linux y Roku, a través de varias combinaciones de navegadores, codificando video en la nube utilizando un único formato de transmisión adaptativo no propietario. En lugar de transmitir y almacenar múltiples formatos para diferentes plataformas y dispositivos, Uplynk almacena y transmite solo uno. El primer estudio en utilizar esta tecnología para la entrega fue Disney–ABC Television Group , usándola para la codificación de video para aplicaciones de transmisión web, móviles y de tabletas en las aplicaciones ABC Player, ABC Family y Watch Disney, así como Watch Disney Channel en vivo. Mira Disney Junior y mira Disney XD. [44] [45]
En los últimos años, se han investigado en el mundo académico los beneficios de los algoritmos de autoaprendizaje en la transmisión de velocidad de bits adaptativa. Si bien la mayoría de los enfoques iniciales de autoaprendizaje se implementan en el lado del servidor [46] [47] [48] (por ejemplo, realizando control de admisión utilizando aprendizaje por refuerzo o redes neuronales artificiales ), la investigación más reciente se centra en el desarrollo de autoaprendizaje. aprender clientes HTTP Adaptive Streaming. En la literatura se han presentado múltiples enfoques utilizando el algoritmo SARSA [49] o Q-learning [50] . En todos estos enfoques, el estado del cliente se modela utilizando, entre otros, información sobre el rendimiento percibido actual de la red y el nivel de llenado del buffer. Basándose en esta información, el cliente de autoaprendizaje decide de forma autónoma qué nivel de calidad seleccionar para el siguiente segmento de vídeo. El proceso de aprendizaje se dirige utilizando información de retroalimentación, que representa la Calidad de la Experiencia (QoE) (por ejemplo, en función del nivel de calidad, el número de cambios y el número de congelaciones de vídeo). Además, se demostró que el Q-learning multiagente se puede aplicar para mejorar la equidad de QoE entre múltiples clientes de transmisión adaptativa. [51]
Las tecnologías de velocidad de bits adaptables basadas en HTTP son significativamente más complejas operativamente que las tecnologías de transmisión tradicionales. Algunas de las consideraciones documentadas son cosas como costos adicionales de almacenamiento y codificación, y desafíos para mantener la calidad a nivel mundial. También se han encontrado algunas dinámicas interesantes en torno a las interacciones entre la compleja lógica de velocidad de bits adaptativa que compite con la compleja lógica de control de flujo TCP. [11] [52] [53] [54] [55]
Sin embargo, estas críticas han sido superadas en la práctica por la economía y la escalabilidad de la entrega HTTP: mientras que las soluciones de transmisión no HTTP requieren un despliegue masivo de una infraestructura de servidor de transmisión especializada, la transmisión de velocidad de bits adaptativa basada en HTTP puede aprovechar los mismos servidores web HTTP utilizados para entregar el resto del contenido a través de Internet. [ cita necesaria ]
Sin un estándar único claramente definido o abierto para la gestión de derechos digitales utilizado en los métodos anteriores, no existe una forma 100% compatible de entregar contenido restringido o urgente a ningún dispositivo o reproductor. Esto también resulta ser un problema con la gestión de derechos digitales empleada por cualquier protocolo de transmisión.
El método de segmentar archivos en archivos más pequeños utilizado por algunas implementaciones (como el utilizado por HTTP Live Streaming ) podría considerarse innecesario debido a la capacidad de los clientes HTTP de solicitar rangos de bytes de un único archivo de recursos de video que podría tener múltiples pistas de video en diferentes bits. tasas con el archivo de manifiesto solo indicando el número de pista y la tasa de bits. Sin embargo, este enfoque permite el servicio de fragmentos mediante cualquier servidor HTTP simple y, por lo tanto, garantiza la compatibilidad con CDN . Las implementaciones que utilizan rangos de bytes, como Microsoft Smooth Streaming, requieren un servidor HTTP dedicado, como IIS, para responder a las solicitudes de fragmentos de recursos de vídeo.
{{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite journal}}
: Citar diario requiere |journal=
( ayuda )