La transmisión de tasa de bits adaptable es una técnica utilizada en la transmisión de multimedia a través de redes de computadoras .
Si bien 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 adaptativas 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 de medios en consecuencia. [2] Requiere el uso de un codificador que codifica un solo medio de origen (video o audio) a múltiples velocidades de bits . El cliente del reproductor [3] cambia entre la transmisión de las diferentes codificaciones según los recursos disponibles. [4] Esto da como resultado un almacenamiento en búfer muy bajo , 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 flujos de diferentes velocidades de bits se segmenta en pequeñas partes de varios segundos. [6] El tamaño del segmento puede variar según la implementación particular, pero normalmente son de entre dos y diez segundos. [4] [6] Primero, el cliente descarga un archivo de manifiesto que describe los segmentos de flujo disponibles y sus respectivas velocidades de bits. Durante el inicio de la transmisión, el cliente generalmente solicita los segmentos del flujo de velocidad de bits más baja. Si el cliente descubre 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. Más tarde, 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 adaptativa (ABR) en el cliente realiza la función clave de decidir qué segmentos de velocidad de bits descargar, según el estado actual de la red. Existen varios tipos de algoritmos ABR en uso comercial: 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 búfer utilizan solo 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 la 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 vídeo, en particular para la transmisión con velocidad de bits adaptativa, añade 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 interrupciones 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 se ha convertido esencialmente en una práctica estándar para los proveedores de transmisión de alta gama; permitiendo poco almacenamiento en búfer cuando se transmiten señales de alta resolución (comienza con baja resolución y va subiendo).
La transmisión tradicional con tasa de bits adaptativa basada en servidor ofrece a los consumidores de transmisión multimedia la mejor experiencia posible, ya que el servidor multimedia 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 tasa de bits adaptativa. A medida que crece el espacio del video, las redes de distribución de contenido y los proveedores de video pueden brindar a los clientes una experiencia de visualización superior. La tecnología de tasa de bits adaptativa requiere codificación adicional , pero simplifica el flujo de trabajo general y crea mejores resultados.
Las tecnologías de streaming de velocidad de bits adaptativa basadas en HTTP ofrecen ventajas adicionales con respecto a la transmisión de velocidad de bits adaptativa basada en servidor tradicional. En primer lugar, dado que la tecnología de streaming se basa en HTTP , a diferencia de la transmisión adaptativa basada en RTP , los paquetes no tienen dificultades para atravesar dispositivos NAT y cortafuegos. En segundo lugar, dado que la transmisión HTTP está puramente 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 se requiere que el servidor mantenga información del estado de la sesión en cada cliente, lo que aumenta la escalabilidad. Por último, la infraestructura de entrega HTTP existente, como los cachés y servidores HTTP, se puede adoptar sin problemas. [11] [12] [13] [14]
Se utiliza una CDN escalable para entregar streaming de medios a una audiencia de Internet. La CDN recibe el stream de la fuente en su servidor de origen, luego lo replica a muchos o todos sus servidores de caché Edge . El usuario final solicita el stream y es redirigido al servidor Edge "más cercano". Esto se puede probar utilizando libdash [15] y el conjunto de datos DASH distribuido (D-DASH), [16] que tiene varios espejos en Europa, Asia y los EE. UU. El uso de streaming adaptativo basado 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 del software, en comparación con las costosas licencias de servidor de medios (por ejemplo, Adobe Flash Media Streaming Server). El costo de CDN para streaming de medios HTTP es entonces similar al costo de CDN de caché web HTTP.
La tasa de bits adaptativa sobre 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 – discutir ] [ cita requerida ] La tecnología se llamó originalmente 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 servirán utilizando un servidor HTTP al reproductor. Los segmentos MPEG-1 proporcionaron el flujo de ancho de banda más bajo, mientras que MPEG-2 proporcionó un flujo de tasa de bits más alto. El esquema XML original proporcionó una lista de reproducción simple de tasas de bits, idiomas y servidores URL. El primer prototipo funcional fue presentado en el DVD Forum por Phoenix Technologies en el Laboratorio Harman Kardon en Villingen, Alemania. [ cita requerida ]
Move Networks introdujo la transmisión de velocidad de bits adaptativa en 2006 [18] y ahora está siendo desarrollada y utilizada por Adobe Systems , Apple , Microsoft y Octoshape. [19] En octubre de 2010, Move Networks recibió una patente por su transmisión de velocidad de bits adaptativa (número de patente de EE. UU. 7818444). [20]
Dynamic Adaptive Streaming over HTTP (DASH), también conocido como MPEG-DASH, es la única solución de streaming basada en HTTP con velocidad de bits adaptable que es un estándar internacional [21] La tecnología MPEG-DASH se desarrolló bajo el MPEG . El trabajo sobre DASH comenzó en 2010 y se convirtió en un borrador de estándar internacional en enero de 2011 y en un estándar internacional en noviembre de 2011. [21] [22] [23] El estándar MPEG-DASH se publicó como ISO/IEC 23009-1:2012 en abril de 2012.
MPEG-DASH es una tecnología relacionada con Adobe Systems HTTP Dynamic Streaming, Apple Inc. HTTP Live Streaming (HLS) y Microsoft Smooth Streaming. [24] DASH se basa en Adaptive HTTP Streaming (AHS) en 3GPP Release 9 y en HTTP Adaptive Streaming (HAS) en Open IPTV Forum Release 2. [25] Como parte de su colaboración con MPEG, 3GPP Release 10 ha adoptado DASH (con códecs y modos operativos específicos) para su uso en redes inalámbricas. [25]
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 de ciertos proveedores, como HLS de Apple, Smooth Streaming de Microsoft o HDS de Adobe.
Las implementaciones disponibles son el reproductor MPEG-DASH bitdash basado en HTML5 [26], así como la biblioteca de acceso de cliente DASH basada en C++ de código abierto libdash de bitmovin GmbH, [15] las herramientas DASH del Instituto de Tecnología de la Información (ITEC) de la Universidad Alpen-Adria de Klagenfurt, [3] [27] el marco multimedia del grupo GPAC de Telecom ParisTech, [28] y el reproductor dash.js [29] 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 video a pedido . Funciona dividiendo los flujos de medios o archivos en fragmentos cortos (segmentos de medios) que se almacenan como MPEG-TS o archivos MP4 fragmentados . Esto generalmente se hace a múltiples tasas de bits utilizando una aplicación de segmentación de flujo o archivo, también conocida como empaquetador. Apple proporciona una de esas implementaciones de segmentación. [30] Hay empaquetadores adicionales disponibles, incluidas ofertas gratuitas / de código abierto como Shaka Packager de Google [31] y varias herramientas comerciales también, como Unified Streaming. [32] El segmentador también es responsable de producir un conjunto de archivos de lista de reproducción en el formato M3U8 que describen los fragmentos de medios. Cada lista de reproducción es específica para una tasa de bits determinada y contiene las URL relativas o absolutas de los fragmentos para esa tasa de bits. Luego, el cliente es responsable de solicitar la lista de reproducción adecuada según el ancho de banda disponible.
La transmisión en vivo HTTP es una función estándar en el iPhone 3.0 y versiones más nuevas. [33]
Apple ha enviado su solución al IETF para su consideración como una solicitud informativa de comentarios . [34] 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 del cliente.
Las transmisiones HLS se pueden identificar por la extensión de formato de URL de lista de reproducción de m3u8 o el tipo MIME de application/vnd.apple.mpegurl. [35] Estas transmisiones adaptables se pueden poner a disposición en muchas tasas de bits diferentes y el dispositivo cliente interactúa con el servidor para obtener la mejor tasa de bits disponible que se pueda entregar 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 compatibilidad nativa con HLS. La reproducción de HLS en otras plataformas, como Chrome/Firefox, generalmente se logra a través de 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 entregar de manera eficiente la transmisión de video a los usuarios al cambiar dinámicamente entre diferentes transmisiones de calidad y tamaño variables durante la reproducción. Esto proporciona a los usuarios la mejor experiencia de visualización posible que su ancho de banda y el hardware de su computadora local ( CPU ) puedan soportar. Otro objetivo principal de la transmisión dinámica es hacer que este proceso sea fluido y sin inconvenientes para los usuarios, de modo que si es necesario aumentar o reducir la calidad de la transmisión, se realice un cambio fluido y casi imperceptible sin interrumpir la reproducción continua". [36]
Las últimas versiones de Flash Player y Flash Media Server admiten la transmisión de velocidad de bits adaptable a través del protocolo RTMP tradicional , así como HTTP , de forma similar a las soluciones basadas en HTTP de Apple y Microsoft, [37] la transmisión dinámica HTTP es compatible con Flash Player 10.1 y versiones posteriores. [38] La transmisión basada en HTTP tiene la ventaja de no requerir que se abran puertos de firewall fuera de los puertos normales utilizados por los navegadores web. La transmisión basada en HTTP también permite que los fragmentos de vídeo se almacenen en caché por navegadores, servidores proxy y CDN , 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 adaptable de contenido multimedia a clientes a través de HTTP. [39] La especificación de formato se basa en el formato de archivo multimedia base ISO y está estandarizada por Microsoft como el Formato de Archivo Interoperable Protegido. [40] 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 Smooth Streaming Porting Kit que se puede utilizar para otros sistemas operativos cliente, como Apple iOS, Android y Linux. [41] IIS Media Services 4.0, lanzado en noviembre de 2010, introdujo una característica que permite que los videos Live Smooth Streaming H.264/AAC se vuelvan a empaquetar dinámicamente en el formato Apple HTTP Adaptive Streaming y se entreguen a dispositivos iOS sin necesidad de volver a codificarlos. Microsoft ha demostrado con éxito la entrega de video HD 1080p en vivo y 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 video 3D estereoscópico de 1080p a PC equipadas con tecnología NVIDIA 3D Vision . [42]
CMAF es un formato de contenedor de presentación que se utiliza para la entrega de HLS y MPEG-DASH. Por lo tanto, su objetivo es simplificar la entrega de contenido multimedia en streaming basado en HTTP. Fue propuesto en 2016 por Apple y Microsoft y publicado oficialmente en 2018. [43]
QuavStreams Adaptive Streaming es una tecnología de transmisión multimedia desarrollada por Quavlive. El servidor de transmisión es un servidor HTTP que tiene múltiples versiones de cada video, codificadas a diferentes tasas de bits y resoluciones. El servidor entrega los fotogramas de video/audio codificados cambiando de un nivel a otro, según el ancho de banda disponible en ese momento. El control se basa completamente en el servidor, por lo que el cliente no necesita características adicionales especiales. El control de transmisión emplea la teoría de control de retroalimentación. [44] Actualmente, QuavStreams admite códecs H.264/MP3 multiplexados en el contenedor FLV y códecs VP8/Vorbis multiplexados en el contenedor WEBM.
Uplynk ofrece streaming de alta definición con tasa de bits adaptable a múltiples plataformas, incluidas iOS, Android, Windows Mac, Linux y Roku, a través de varias combinaciones de navegadores, codificando el vídeo en la nube utilizando un único formato de streaming adaptable 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 , que la utilizó para la codificación de vídeo para aplicaciones de streaming web, móviles y de tabletas en las aplicaciones ABC Player, ABC Family y Watch Disney, así como en el canal en directo Watch Disney Channel, Watch Disney Junior y Watch Disney XD. [45] [46]
En los últimos años, en el ámbito académico se han investigado los beneficios de los algoritmos de autoaprendizaje en la transmisión de tasa de bits adaptativa. Si bien la mayoría de los enfoques de autoaprendizaje iniciales se implementan en el lado del servidor [47] [48] [49] (por ejemplo, realizando un control de admisión mediante aprendizaje de refuerzo o redes neuronales artificiales ), la investigación más reciente se centra en el desarrollo de clientes de transmisión adaptativa HTTP de autoaprendizaje. Se han presentado múltiples enfoques en la literatura que utilizan el algoritmo SARSA [50] o Q-learning [51] . En todos estos enfoques, el estado del cliente se modela utilizando, entre otros, información sobre el rendimiento actual de la red percibida y el nivel de llenado del búfer. Con base en esta información, el cliente de autoaprendizaje decide de forma autónoma qué nivel de calidad seleccionar para el siguiente segmento de video. El proceso de aprendizaje se dirige utilizando información de retroalimentación, que representa la Calidad de la Experiencia (QoE) (por ejemplo, basada en el nivel de calidad, la cantidad de cambios y la cantidad de congelamientos de video). Además, se demostró que el Q-learning multiagente se puede aplicar para mejorar la equidad de la QoE entre múltiples clientes de transmisión adaptativa. [52]
Las tecnologías de velocidad de bits adaptable basadas en HTTP son significativamente más complejas desde el punto de vista operativo que las tecnologías de transmisión tradicionales. Algunas de las consideraciones documentadas son aspectos como los costos adicionales de almacenamiento y codificación y los desafíos para mantener la calidad a nivel global. También se han encontrado algunas dinámicas interesantes en torno a las interacciones entre la lógica compleja de velocidad de bits adaptable que compite con la lógica compleja de control de flujo TCP. [11] [53] [54] [55] [56]
Sin embargo, en la práctica, estas críticas se han visto superadas por la economía y la escalabilidad de la distribución HTTP: mientras que las soluciones de streaming no HTTP requieren una implementación masiva de una infraestructura de servidor de streaming especializada, el streaming de velocidad de bits adaptativa basado en HTTP puede aprovechar los mismos servidores web HTTP utilizados para distribuir todo el resto del contenido a través de Internet. [ cita requerida ]
Dado que no existe un único estándar abierto y claramente definido para la gestión de derechos digitales que se utiliza en los métodos anteriores, no existe una forma 100 % compatible de entregar contenido restringido o sensible al tiempo a cualquier dispositivo o reproductor. Esto también resulta ser un problema con la gestión de derechos digitales que se utiliza en cualquier protocolo de transmisión.
El método de segmentación de archivos en archivos más pequeños que utilizan algunas implementaciones (como el que utiliza 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 recurso de video que podría tener múltiples pistas de video a diferentes velocidades de bits, y el archivo de manifiesto solo indica el número de pista y la velocidad de bits. Sin embargo, este enfoque permite que cualquier servidor HTTP simple sirva fragmentos 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 video.
{{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda )