Seguro que alguna vez has experimentado la molestia de que YouTube se te haya quedado colgado, esperando a que se cargue el vídeo que te han enlazado. Es realmente molesto, pero esas esperas odiosas están a punto de terminar! El nuevo estándar DASH (Dynamic Adaptive Streaming over HTTP  nació, entre otros, con ese propósito y de eso iba mi Trabajo de Final de Carrera (TFC) de Ingeniería Técnica de Telecomunicaciones, especialidad Telemática, en la EETAC . En él describo DASH, una tecnología muy reciente (publicada en Abril de 2012) donde se estandariza el streaming adaptativo, y que ya empieza a cambiar con fuerza el panorama del vídeo sobre Internet.

El objetivo del streaming adaptativo es modular la tasa binaria del vídeo, en función del estado de la red. Si la red está muy congestionada (es cuando YouTube se para, porque intenta enviarte 6 Mbit/s sobre una ruta hacia tu ordenador que en esos momentos quizá sólo permite transmitir 4 o 5 Mbit/s), DASH es capaz de darse cuenta y baja la tasa del vídeo a la más apropiada. Si en cambio la red está libre, DASH puede subir la tasa y ofrecer una mejor calidad de imagen. ¡Tan sencillo como suena! Y aunque es una idea que hace 15 años que se intentaba llevar a cabo en Internet, problemas técnicos y comerciales lo impedían.

Figura 1: Ejemplo de streaming adaptativo.

 

Como ejemplo del concepto de adaptación de tasa, en la figura 1 se presenta una imagen de una prueba que hice, donde se ve claramente que el ancho de banda estimado (en rojo) va variando, y la tasa del vídeo (en azul) se adapta. A la derecha, otro ejemplo de la variación obtenida en otra prueba.

DASH aparece en un momento clave: el de la aparición de los smartphones, que se conectan a Internet vía un canal radio (mediante tecnologías 3G o LTE), lo que provoca que la variabilidad del ancho de banda disponible sea incluso superior que en la Internet sobre cable. Dado que cuando vemos vídeo en un smartphone estamos accediendo a Internet vía el protocolo IP, si no usamos una solución de streaming adaptativo (y un buen buffer), estamos condenados a sufrir cortes y parones en la reproducción. Cada fabricante sacó sistemas propietarios de streaming adaptativo (SmoothStreaming de Microsoft, HLS de Apple, etc), fragmentando el mercado, complicando la vida a los proveedores de servicio, y encareciendo los productos al no aprovechar las economías de escala. Por eso es importante disponer de un estándar, y eso es lo que aporta el consorcio MPEG con DASH.

La idea principal en la que se basa DASH es disponer del contenido (vídeo pregrabado,  canales en directo) codificado a diferentes calidades (tasas, resoluciones, incluso codecs diferentes), y segmentado en tiempo, de manera que el reproductor puede ir cambiando de calidad en cada segmento temporal. La figura 2 ilustra estos cambios, para el caso de segmentos de 5 segundos, y 3 calidades identificadas como 0, 1 y 2, a diferentes tasas.

Figura 2. Ejemplo de funcionamiento de DASH.

La H de DASH significa HTTP, ya que es el protocolo sobre el que se transporta. Os sonará el nombre, porque es el mismo protocolo con el que acedemos a la web. DASH utiliza HTTP porque simplifica muchísimo la problemática la conexión; para los que tengáis alma de telemático y sepáis un poco de esto, al usar TCP con el puerto 80, saltar NATs y atravesar firewalls se hace mucho más sencillo. En el siguiente ejemplo, mostrador e la figura 3,  capturado con Wireshark podeis ver como cada segundo el reproductor (VideoLAN) va cambiando la petición del segmento de vídeo (en este caso de duración 4 segundos, a calidades de 900, 1500 y 2000 kbit/s), en función del ancho de banda disponible en cada instante de la transmisión. Cada petición de un segmento nuevo se realiza mediante un mensaje HTTP del tipo GET, como si nos bajáramos un fichero nuevo. Aquí no se ve, pero cada GET añade dos parámetros de inicio y final, para identificar los bytes específicos asociados a la duración de 4 segundos de vídeo.

Figura 3. Captura Wireshark de una transmisión DASH sobre HTTP.

La clave para el funcionamiento de DASH es disponer de un fichero que describa las calidades, la duración de los segmentos, y las direcciones (URL) de HTTP donde encontrarlos. Ese fichero se llama MPD, y está codificado en XML, siguiendo la tendencia actual en el mundo IP (XML está apareciendo por doquier!).

 

En el siguiente vídeo podéis ver una pequeña demostración que realicé a mi tutor y a un grupo de estudiantes de la EETAC, en Junio de 2012. El escenario que monté incluía un servidor web (Apache) cargado con contenido DASH, un emulador de red (DummyNet) que me permitía variar el ancho de banda disponible, para así forzar la adaptación, y un reproductor VideoLAN con DASH.

 

Una vez explicada la parte técnica, os comento algo más personal. Empecé a estudiar DASH mientras aún se estaba cociendo, durante octubre y noviembre del 2011, y los primeros meses fueron realmente difíciles. Sólo había drafts (borradores) del estándar y pocas aplicaciones que realmente funcionasen. Se podía hacer bien poco con las herramientas que había, pero en cuestión de pocos meses apareció bastante cantidad de software decente para la creación de streams DASH. Para poder hacer nuestros “vídeos” DASH, hay varios reproductores compatibles (incluido el famoso VideoLAN, en su versión 2.1), ¡incluso se puede reproducir un stream utilizando HTML5! Y prácticamente todos los smartphones y actualizaciones de su sistema operativo (Android, Apple iOS) aparecidos durante 2012 ya incluyen soporte DASH. Incluso algunas Smart TV lo incorporan ya. La velocidad a la que está avanzando DASH es espeluznante y no me extrañaría que en este 2013 lo estemos viendo como un “servicio” de serie en cualquier dispositivo, sea teléfono, ordenador o TV.

Si queréis experimentar por vuestra cuenta, en la página oficial de DASH podemos encontrar muchas herramientas y aplicaciones, como por ejemplo streams DASH listos para descargar y probar, enlaces e instrucciones para la instalación de aplicaciones DASH y noticias varias sobre DASH.

Desde el punto de vista personal, una de las cosas de las que me arrepiento de este TFC es, aparte de no poder profundizar más, haber dejado de lado el blog que empecé a hacer durante el proyecto . En serio, es muy recomendable; si tienes que hacer un proyecto largo, usa un blog o algo por el estilo para anotar todo lo que puedas. Gracias al blog, la cantidad de enlaces que tuve disponible a lo largo del proyecto y la anotación de las pruebas, ayudaron mucho al desarrollo de la memoria, y como es un blog, el tutor me pudo ir aconsejando en varios puntos clave. Este punto me lo anoto para mis futuros proyectos, hazlo tú también.

Y para que os hagáis una idea de lo rápido que va todo… si yo lo he estado estudiando durante la primera mitad de 2012, que es cuando aún se estaba estandarizando y se estaban creando las aplicaciones DASH, para el mes de junio del 2012 ya se estaban impartiendo en la EETAC clases sobre DASH, en el nuevo Grado de Ingeniería Telemática.

Si estáis interesados en más detalles sobre DASH, podéis consultar mi TFC.

Dani Padilla, Ing. Técnico en Telecomunicaciones, especialidad Telemática, EETAC, 2012.