# 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 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 cambia entre el streaming de las diferentes codificaciones en función de los recursos disponibles. “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. 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.

## Usos actuales

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

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. 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).

### MPEG-DASH

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. 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. 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. 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.
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 basado en HTML5 así como la librería de acceso al cliente DASH basada en C++ de código abierto libdash de bitmovin GmbH, las herramientas DASH del Instituto de Tecnología de la Información (ITEC) de la Universidad Alpen-Adria de Klagenfurt, el framework multimedia del grupo GPAC en Telecom ParisTech, y el reproductor dash.js del DASH-IF.

### Adobe HTTP Dynamic Streaming

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".
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,
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

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.
HTTP Live Streaming es una característica estándar en el iPhone 3.0 y versiones más recientes./
Apple ha presentado su solución a la IETF para que sea considerada como una Request for Comments Informativa. 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

Smooth Streaming es una extensión de IIS Media Services que permite el streaming adaptable de medios a clientes a través de HTTP. 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. 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.

### QuavStreams Adaptive Streaming sobre HTTP

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. Actualmente, QuavStreams soporta códecs H.264/MP3 multiplexados en el contenedor FLV y códecs VP8/Vorbis multiplexados en el contenedor WEBM.

### upLynk

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.

### Clientes con autoaprendizaje

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 (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 o Q-learning. 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.

## Críticas

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.
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.