Streaming de tasa de bits adaptable

El streaming de tasa de bits adaptable DASH (Dynamic Adaptive Streaming over HTTP) es una técnica utilizada en el streaming multimedia sobre redes informáticas. Mientras que en el pasado la mayoría de las tecnologías de streaming de video utilizaban protocolos de streaming como RTP con RTSP, hoy en día las tecnologías de streaming adaptables se basan casi exclusivamente en HTTP[1]​ y están diseñadas para trabajar eficientemente sobre grandes redes HTTP distribuidas como Internet.

Funciona detectando el ancho de banda y la capacidad de la CPU de un usuario en tiempo real y ajustando la calidad de una transmisión de video en función de ello. Requiere el uso de un codificador que pueda codificar un video de una sola fuente a múltiples tasas de bits. El cliente del reproductor[2]​ cambia entre el streaming de las diferentes codificaciones en función de los recursos disponibles.[3]​ “El resultado: muy poco buffering, tiempo de inicio rápido y una buena experiencia tanto para conexiones de gama alta como de gama baja”.

Más específicamente, y como las implementaciones en uso hoy en día lo son, el streaming de tasa de bits adaptable es un método de transmisión de video a través de HTTP en el que el contenido de la fuente se codifica a múltiples tasas de bits, entonces cada uno de los diferentes flujos de tasas se segmentan en pequeñas partes de varios segundos.[4]​ El cliente del streaming es informado de los flujos disponibles a diferentes tasas de bits y de sus segmentos mediante un archivo manifiesto. Al iniciar, el cliente solicita los segmentos del flujo con la tasa de bits más baja. Si el cliente encuentra que la velocidad de descarga es mayor que la tasa de bits del segmento descargado, entonces solicitará los siguientes segmentos con tasas de bits más altos. Posteriormente, si el cliente encuentra que la velocidad de descarga de un segmento es inferior a la tasa de bits del segmento y, por lo tanto, el rendimiento de la red se ha deteriorado, solicitará un segmento de tasa de bits inferior. El tamaño del segmento puede variar dependiendo de la implementación específica, pero generalmente es de entre dos y diez segundos.[3][4]

Usos actuales editar

Empresas de postproducción, redes de distribución de contenidos y estudios utilizan tecnología de tasa de bits adaptable para ofrecer a los consumidores video de mayor calidad con menos trabajo y recursos. La creación de múltiples salidas de video, especialmente para streaming con tasa de bits adaptable, añade un gran valor a los consumidores.

Si la tecnología funciona correctamente, el usuario final o el contenido del consumidor debe reproducirse sin interrupción y potencialmente pasar desapercibido. Las compañías de medios han estado utilizando activamente la tecnología de tasa de bits adaptable durante muchos años y se ha convertido esencialmente en una práctica estándar para los proveedores de streaming de gama alta; permitiendo poco almacenamiento en búfer cuando se transmiten flujos de alta resolución (comienza con baja resolución y se va incrementando).

Implementaciones editar

El streaming de tasa de bits adaptable fue introducido por Move Networks y ahora está siendo desarrollado y utilizado por Adobe, Apple, Microsoft y Octoshape.[5]​ En octubre de 2010, a Move Networks se le concedió una patente por su streaming de tasa de bits adaptable (patente estadounidense número 7818444).[6]

MPEG-DASH editar

MPEG-DASH es la única solución de streaming basada en HTTP con tasa de bits adaptable que es una tecnología MPEG-DASH estándar internacional desarrollada bajo MPEG. El trabajo sobre DASH comenzó en 2010; se convirtió en un Borrador de Estándar Internacional en enero de 2011, y en un Estándar Internacional en noviembre de 2011.[7][8]​ El estándar MPEG-DASH fue publicado como ISO/IEC 23009-1:2012 en abril de 2012.

MPEG-DASH es una tecnología relacionada con #HTTP Dynamic Streaming, HTTP Live Streaming (HLS) y #Microsoft Smooth Streaming.[9]​ DASH se basa en Adaptive HTTP streaming (AHS) en 3GPP versión 9 y en HTTP Adaptive Streaming (HAS) en Open IPTV Forum versión 2.[10]​ Como parte de su colaboración con MPEG, 3GPP versión 10 ha adoptado DASH (con códecs y modos de operación específicos) para su uso en redes inalámbricas.[10]

Estandarizar una solución de streaming adaptable tiene como objetivo proporcionar confianza al mercado de que la solución puede ser adoptada para un despliegue universal, en comparación con soluciones similares pero más centradas en el fabricante como HLS de Apple, Smooth Streaming de Microsoft o HDS de Adobe.

Las implementaciones disponibles son el reproductor MPEG-DASH[11]​ basado en HTML5 así como la librería de acceso al cliente DASH basada en C++ de código abierto libdash de bitmovin GmbH,[12]​ las herramientas DASH del Instituto de Tecnología de la Información (ITEC) de la Universidad Alpen-Adria de Klagenfurt,[13]​ el framework multimedia del grupo GPAC en Telecom ParisTech,[14]​ y el reproductor dash.js[15]​ del DASH-IF.

Adobe HTTP Dynamic Streaming editar

HTTP Dynamic streaming es el proceso de entrega eficiente de video en tiempo real a los usuarios mediante el cambio dinámico entre diferentes secuencias de distinta calidad y tamaño durante la reproducción. Esto proporciona a los usuarios la mejor experiencia de visualización posible que su ancho de banda y hardware de equipo local (CPU) pueden soportar. Otro de los principales objetivos del streaming dinámico es hacer que este proceso sea fluido y sin interrupciones para los usuarios, de modo que si es necesario escalar hacia arriba o hacia abajo la calidad del streaming, sea un cambio suave y casi imperceptible sin interrumpir la reproducción continua".[16]

Las versiones más recientes de Flash Player y Flash Media Server admiten streaming con tasa de bits adaptable sobre el protocolo RTMP tradicional, así como HTTP, similar a las soluciones basadas en HTTP de Apple y Microsoft,[17]

HTTP dynamic streaming es compatible con Flash Player 10.1 y versiones posteriores. El streaming basado 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. El streaming basado en HTTP también permite que los fragmentos de video sean almacenados en caché por navegadores, proxies y CDNs, reduciendo drásticamente la carga en el servidor de origen.

Apple HTTP Live Streaming editar

HTTP Live Streaming (HLS) es un protocolo de comunicaciones de streaming de medios basado en HTTP implementado por Apple. como parte de QuickTime X e iOS. HLS soporta tanto el contenido en vivo como el de video bajo demanda. Funciona dividiendo los flujos o recursos de video en varios archivos MPEG2-TS pequeños (trozos de video) con tasas de bits variables y una duración determinada mediante un segmentador de video o de archivos. Uno de estos segmentadores es proporcionado por Apple.[18]

HTTP Live Streaming es una característica estándar en el iPhone 3.0 y versiones más recientes.[19]​/

Apple ha presentado su solución a la IETF para que sea considerada como una Request for Comments Informativa.[20]​ Existen varias soluciones propietarias y de código abierto tanto para la implementación del servidor (segmentador) como para el reproductor cliente.

Las secuencias HLS se pueden identificar por la extensión .m3u8 de la URL de la lista de reproducción. Estos flujos adaptables pueden estar disponibles en varias tasas de bits diferentes y el dispositivo cliente interactúa con el servidor para obtener la mejor velocidad de transmisión disponible que pueda entregarse de forma fiable. Los dispositivos cliente van desde iPad, iPhones, Set Top Boxes (STBs) y otros dispositivos cliente adecuados.

La reproducción de HLS solo se admite de forma nativa en Safari en iOS y Mac y Microsoft Edge en Windows 10. Las soluciones para la reproducción de HLS en otras plataformas se basan principalmente en plug-ins de terceros como Flash o QuickTime.

Microsoft Smooth Streaming editar

Smooth Streaming es una extensión de IIS Media Services que permite el streaming adaptable de medios a clientes a través de HTTP.[21]​ La especificación del formato se basa en el formato de archivo de medios base ISO y está estandarizado por Microsoft como Protected Interoperable File Format.[22]​ Microsoft participa activamente en los esfuerzos de las organizaciones 3GPP, MPEG y DECE para estandarizar el streaming HTTP con 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. IIS Media Services 4.0, publicado en noviembre de 2010, introdujo una función que permite que los videos H.264/AAC de Live Smooth Streaming se vuelvan a empaquetar dinámicamente en el formato Apple HTTP Adaptive Streaming y se entreguen a dispositivos iOS sin necesidad de recodificarlos. Microsoft ha demostrado con éxito la entrega de video HD 1080p en tiempo real y bajo demanda con Smooth Streaming a clientes Silverlight. En 2010, Microsoft también se asoció con NVIDIA para realizar demostraciones de video en 3D estereoscópico de 1080p a los PC equipados con la tecnología NVIDIA 3D Vision.[23]

QuavStreams Adaptive Streaming sobre HTTP editar

QuavStreams Adaptive Streaming es una tecnología de streaming multimedia desarrollada por Quavlive. El servidor de streaming es un servidor HTTP que tiene múltiples versiones de cada video, codificadas a diferentes tasas de bits y resoluciones. El servidor entrega las tramas de video/audio codificadas cambiando de un nivel a otro, de acuerdo con el ancho de banda disponible actualmente. El control está totalmente basado en el servidor, por lo que el cliente no necesita características adicionales especiales. El control de streaming emplea la teoría del control de retroalimentación.[24]​ Actualmente, QuavStreams soporta códecs H.264/MP3 multiplexados en el contenedor FLV y códecs VP8/Vorbis multiplexados en el contenedor WEBM.

upLynk editar

upLynk ofrece streaming adaptable en HD a múltiples plataformas, entre ellas: iOS, Android, Windows 8/10/Mobile, Roku y todas las combinaciones de navegadores PC/Mac/Linux mediante la codificación de 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 transmisión fue Disney ABC Television, que la utilizó para la codificación de video para aplicaciones web, móviles y de streaming en tabletas en el reproductor ABC, las aplicaciones ABC Family y Watch Disney, así como para Watch Disney Channel, Watch Disney Junior y Watch Disney XD en vivo.[25][26]

Clientes con autoaprendizaje editar

En los últimos años, los beneficios de los algoritmos de autoaprendizaje en el streaming con tasa de bits adaptable han sido investigados en el mundo académico. Aunque la mayoría de los enfoques iniciales de autoaprendizaje se implementan en el lado del servidor[27][28][29]​ (por ejemplo, control de admisión mediante aprendizaje por refuerzo o redes neuronales artificiales), la investigación más reciente se centra en el desarrollo de clientes de autoaprendizaje de streaming adaptable HTTP. Se han presentado múltiples enfoques en la documentación utilizando el algoritmo SARSA[30]​ o Q-learning.[31]​ En todos estos enfoques, el estado del cliente se modela utilizando, entre otras cosas, información sobre el rendimiento actual percibido de la red y el nivel de llenado del búfer. Basándose en esta información, el cliente con autoaprendizaje decide autónomamente qué nivel de calidad seleccionar para el siguiente segmento de video. El proceso de aprendizaje es dirigido usando información de retroalimentación, representando la calidad de experiencia (QoE) (por ejemplo, basado en el nivel de calidad, el número de cambios y el número de congelamientos del video). Además, se ha demostrado que el Q-learning multiagente puede aplicarse para mejorar la equidad de la QoE entre múltiples clientes de streaming adaptable.[32]

Críticas editar

Las tecnologías de tasa de bits adaptable basadas en HTTP son mucho más complejas desde el punto de vista operativo que las tecnologías de streaming tradicionales. Algunas de las consideraciones documentadas son aspectos tales como los costos adicionales de almacenamiento y codificación, y los desafíos de mantener la calidad a nivel mundial. También se han encontrado algunas dinámicas interesantes en torno a las interacciones entre la lógica de tasa de bits adaptable compleja que compite con la lógica de control de flujo TCP compleja.[33]

Sin embargo, estas críticas han sido superadas en la práctica por la economía y escalabilidad de la entrega HTTP: mientras que las soluciones de streaming que no son HTTP requieren un despliegue masivo de infraestructura de servidores de streaming especializados, el streaming de tasa de bits adaptable basado en HTTP puede aprovechar los mismos servidores web HTTP utilizados para entregar el resto del contenido a través de Internet.

Al no existir un único estándar 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 sensible al tiempo a ningún dispositivo o reproductor. Esto también resulta ser un problema con la gestión de derechos digitales que se emplea en cualquier protocolo de streaming.

El método de segmentación de archivos en archivos más pequeños utilizados por algunas implementaciones (como el utilizado por HTTP Live Streaming) podría considerarse innecesario debido a la capacidad de los clientes HTTP para solicitar rangos de bytes desde un único recurso de video que podría tener múltiples pistas de vídeo a diferentes velocidades de bits con el archivo de manifiesto indicando únicamente el número de pista y la tasa de bits. Sin embargo, este enfoque permite servir los trozos por 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 especializado, como IIS, para responder a las solicitudes de fragmentos de recursos de video.

Referencias editar

  1. Saamer Akhshabi; Ali C. Begen, Constantine Dovrolis (2011). An Experimental Evaluation of Rate-Adaptation Algorithms in Adaptive Streaming over HTTP. In Proceedings of the second annual ACM conference on Multimedia systems (MMSys '11). Nueva York, EE UU. 
  2. «ITEC – Dynamic Adaptive Streaming over HTTP». www-itec.uni-klu.ac.at (en inglés). Consultado el 30 de marzo de 2018. 
  3. a b «Proceedings Template - WORD». Consultado el 30 de marzo de 2018. 
  4. a b «mmsys2012-final36.pdf». Consultado el 30 de marzo de 2018. 
  5. Gannes, Liz (10 de junio de 2009). «The Lowdown on Apple’s HTTP Adaptive Bitrate Streaming». newteevee.com (en inglés). Archivado desde el original el 19 de junio de 2010. Consultado el 30 de marzo de 2018. 
  6. «The industry leader in emerging technology research». gigaom.com (en inglés). Archivado desde el original el 22 de octubre de 2011. Consultado el 30 de marzo de 2018. 
  7. Timmerer, Christian (26 de abril de 2012). «Multimedia Communication: HTTP Streaming of MPEG Media». Multimedia Communication. Consultado el 30 de marzo de 2018. 
  8. «ISO/IEC 23009-1:2012 - Information technology -- Dynamic adaptive streaming over HTTP (DASH) -- Part 1: Media presentation description and segment formats». www.iso.org (en inglés). Consultado el 30 de marzo de 2018. 
  9. Timmerer, Christian (11 de febrero de 2011). «Multimedia Communication: Dynamic Adaptive Streaming over HTTP (DASH)». Multimedia Communication. Consultado el 1 de abril de 2018. 
  10. a b «http://www.3gpp.org/ftp/Specs/html-info/26247.htm». www.3gpp.org. Consultado el 1 de abril de 2018. 
  11. «HTML5 Player for Adaptive Streaming from Bitmovin». Bitmovin (en inglés). Consultado el 1 de abril de 2018. 
  12. «Libdash - Bitmovin». Bitmovin (en inglés). Consultado el 1 de abril de 2018. 
  13. «ITEC – Dynamic Adaptive Streaming over HTTP». www-itec.uni-klu.ac.at (en inglés). Consultado el 1 de abril de 2018. 
  14. «MP4Box: fragmentation, segmentation, splitting and interleaving». gpac.wp.imt.fr (en inglés). Consultado el 1 de abril de 2018. 
  15. «Dash-Industry-Forum/dash.js». GitHub (en inglés). Consultado el 1 de abril de 2018. 
  16. «Dynamic streaming in Flash Media Server 3.5 – Part 1». www.adobe.com (en inglés). Consultado el 1 de abril de 2018. 
  17. «Live video streaming online - Adobe HTTP Dynamic Streaming». www.adobe.com (en inglés). Consultado el 1 de abril de 2018. 
  18. «Using HTTP Live Streaming». developer.apple.com (en inglés). Consultado el 1 de abril de 2018. 
  19. «Apple launches HTTP Live Streaming standard in iPhone 3.0». AppleInsider (en inglés). Consultado el 1 de abril de 2018. 
  20. Roger, Pantos,. «HTTP Live Streaming». tools.ietf.org (en inglés). Consultado el 1 de abril de 2018. 
  21. «Smooth Streaming : The Official Microsoft IIS Site». www.iis.net (en inglés). Consultado el 1 de abril de 2018. 
  22. Microsoft. «Protected Interoperable File Format». learn.iis.net (en inglés estadounidense). Consultado el 1 de abril de 2018. 
  23. «First Day of IBC». The Silverlight Blog (en inglés). Archivado desde el original el 2 de febrero de 2011. Consultado el 1 de abril de 2018. 
  24. «Feedback Control for Adaptive Live Video Streaming». 
  25. «Uplynk creates a cheap and efficient way for Disney to stream videos». VentureBeat (en inglés). 16 de enero de 2013. Consultado el 1 de abril de 2018. 
  26. Dreier, Troy (20130116). «UpLynk Emerges from Stealth Mode; DisneyABC Is First Customer». Streaming Media Magazine. Consultado el 1 de abril de 2018. 
  27. Fei, Yu (1 de febrero de 2006). «Efficient QoS Provisioning for Adaptive Multimedia in Mobile Communication Networks by Reinforcement Learning». Mobile Networks and Applications (en inglés). pp. 101-110. doi:10.1007/s11036-005-4464-2. Consultado el 1 de abril de 2018. 
  28. Charvillat, Vincent. «Reinforcement learning for dynamic multimedia adaptation». Journal of Network and Computer Applications. pp. 1034-1058. doi:10.1016/j.jnca.2005.12.010. Consultado el 1 de abril de 2018. 
  29. McClary, Daniel W. «Adaptive audio streaming in mobile ad hoc networks using neural networks». Ad Hoc Networks. pp. 524-538. doi:10.1016/j.adhoc.2007.04.005. Consultado el 1 de abril de 2018. 
  30. Menkovski, V. (January 2013). «Intelligent control for adaptive video streaming». pp. 127-128. doi:10.1109/ICCE.2013.6486825. Consultado el 1 de abril de 2018. 
  31. Claeys, M. (April 2014). «Design and Evaluation of a Self-Learning HTTP Adaptive Video Streaming Client». IEEE Communications Letters. pp. 716-719. doi:10.1109/lcomm.2014.020414.132649. Consultado el 1 de abril de 2018. 
  32. Petrangeli, S. (May 2014). «A multi-agent Q-Learning-based framework for achieving fairness in HTTP Adaptive Streaming». pp. 1-9. doi:10.1109/NOMS.2014.6838245. Consultado el 1 de abril de 2018. 
  33. «Is adaptive bit rate the yellow brick road, or fool's gold for HD streaming?». www.fierceonlinevideo.com (en inglés). Archivado desde el original el 7 de septiembre de 2011. Consultado el 1 de abril de 2018.