Evaluación automática de la QoE del streaming DASH utilizando el estándar ITUT P.1203 y Google Puppeteer
Abstract
Este documento presenta un sistema de evaluación de sistemas DASH que permite realizar medidas de prestaciones de forma automatizada y sistemática. Mediante el uso de Puppeteer, la librería en Node.js desarrollada por Google que proporciona una API de alto nivel que permite automatizar acciones sobre Chrome Devtools Protocol, se pueden automatizar acciones como iniciar la reproducción, realizar cambios de ancho de banda y guardar resultados de los procesos de cambios de calidad, instantes de tiempo, etc. A partir de dichos datos se realiza un procesado para permitir la reconstrucción del vídeo visualizado, así como una evaluación subjetiva utilizando el estándar ITU-T P.1203.
Full text
This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) Evaluación automática de la QoE del streaming DASH utilizando el estándar ITUT P.1203 y Google Puppeteer Paola Guzmán Castillo, Pau Arce Vila, Juan C. Guerri Cebollada Grupo Comunicaciones Multimedia, iTEAM (Instituto de Telecomunicaciones y Aplicaciones Multimedia) Universitat Politècnica de València Camino de Vera, s/n. paoguzc1,paarvi @iteam.upv.es, [email protected]. ResumenEste documento presenta un sistema de evaluación de sistemas DASH que permite realizar medidas de prestaciones de forma automatizada y sistemática. Mediante el uso de Puppeteer, la librería en Node.js desarrollada por Google que proporciona una API de alto nivel que permite automatizar acciones sobre Chrome Devtools Protocol, se pueden automatizar acciones como iniciar la reproducción, realizar cambios de ancho de banda y guardar resultados de los procesos de cambios de calidad, instantes de tiempo, etc. A partir de dichos datos se realiza un procesado para permitir la reconstrucción del vídeo visualizado, así como una evaluación subjetiva utilizando el estándar ITU-T P.1203. Palabras ClaveDASH, Puppeteer, Video Streaming, Streaming adaptativo, QoE. I. INTRODUCCIÓN La distribución de contenidos multimedia, y en particular el streaming de vídeo, domina actualmente el tráfico global de Internet, y se prevé que, a nivel mundial, el consumo de tráfico de vídeo por Internet crecerá 4,3 veces de 2017 a 2022, una tasa de crecimiento anual del 34% [1]. Poder ofrecer la mejor calidad posible al usuario en todo momento, maximizando su calidad de experiencia QoE (Quality of Experience), ha dado origen al streaming adaptativo de vídeo sobre HTTP (HAS), siendo el estándar DASH [2] (Dynamic Adaptive Streaming over HTTP) el más representativo. HAS permite una adaptación flexible de la calidad de vídeo a los recursos de red disponibles y las capacidades del dispositivo cliente. De este modo, permite una mejor gestión del estado del buffer, el control de las interrupciones durante la reproducción y una mejor utilización del ancho de banda, lo que generalmente redunda en una mayor QoE. Para aplicar HAS, los servidores de contenidos ofrecen varias versiones (representaciones) del mismo vídeo, cada una codificada y divida en pequeños segmentos (chunks) de unos pocos segundos. Toda la información asociada a los segmentos de vídeo, como la resolución, duración y la tasa de bits promedio, se encuentra especificada en la MPD (Media Presentation Description). De esta forma, los clientes descargan los segmentos en un orden secuencial y pueden ir cambiando de representación de un segmento a otro según el ancho de banda actual estimado y/o el estado del buffer, de modo que se eviten las paradas y se pueda utilizar de forma óptima el ancho de banda disponible. La tecnología HAS ha sido adoptada por una amplia gama de aplicaciones y proveedores de contenido de vídeo, como YouTube [3] o Netflix. Por tal motivo, en los últimos años han aparecido muchas publicaciones relacionadas con DASH y su impacto en la QoE del usuario en diferentes contextos [4][5][6]. El objetivo en muchos casos, es la optimización del algoritmo de adaptación [7] o su valoración en base a los resultados de la evaluación subjetiva de los usuarios [8]. El desarrollo de este tipo de estudios involucra las siguientes etapas según se muestra en la Fig. 1. En primer lugar, identificamos una etapa de pre-procesado de los datos asociada con la codificación y generación de los segmentos DASH que van a estar disponibles en el servidor. El siguiente bloque corresponde a la emulación de la red y terminales cliente. En este punto se definen las condiciones de ancho de banda, retardos, pérdidas y prestaciones de los dispositivos que van a recibir y reproducir los contenidos de vídeo. El auge del streaming adaptativo de vídeo ha llevado al desarrollo de diferentes implementaciones de DASH. En este sentido la selección del reproductor de vídeo teniendo en cuenta aspectos como: formatos soportados, algoritmo de adaptación, código abierto o propietario, etc. es otra etapa importante en este proceso. Una vez realizada la emulación del streaming de vídeo, nos encontramos con una etapa de post-procesado Actas de las XIV Jornadas de Ingeniería Telemática (JITEL 2019), Zaragoza (España), 22-24 de octubre de 2019. ISBN: 978-84-09-21112-8
Guzmán , Arce, Guerri 2019. This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) orientada al análisis de la información obtenida y la reconstrucción del vídeo para su posterior evaluación subjetiva, lo que constituye la última etapa del proceso. Hoy en día, existen una gran cantidad de reproductores DASH y algoritmos de adaptación, y la mayoría de ellos han sido implementados en JavaScript. Sin embargo, se encuentran pocos trabajos orientados a la implementación de un sistema común para la realización de pruebas de desempeño de forma fácil y accesible [9]. Este trabajo tiene como objetivo desarrollar un sistema fácilmente exportable, reproducible y escalable que permita automatizar y sistematizar la realización de pruebas de evaluación de calidad de experiencia (QoE) en un escenario de transmisión adaptativa de vídeo, evaluando diferentes perfiles de variación de ancho de banda y/o latencia. El sistema propuesto se orienta a la ejecución del reproductor DASH, usando el navegador Google Chrome, y en concreto utilizando Puppeteer, la nueva librería desarrollado por Google que permite la automatización de pruebas funcionales en entornos web, mediante el acceso a las herramientas de desarrollador ofrecidas por la aplicación. En la sección II se presenta la arquitectura del sistema de pruebas y los componentes que lo conforman. En la sección III se describen algunos casos de uso en los que puede ser aplicado el sistema y, en la sección IV, se exponen las conclusiones del trabajo. Fig. 1. Etapas del proceso de evaluación automática. II. ARQUITECTURA DEL SISTEMA DE PRUEBAS (TESTBED) El sistema propuesto incluye los siguientes componentes: xServidor web basado en HTTP que aloja los contenidos pre-procesados (vídeo codificado y segmentado). xHerramienta para la emulación de condiciones de red (variaciones de ancho de banda y/o latencia) xCliente con el reproductor DASH. xHerramientas para la obtención y post-procesado de los datos relativos a la transmisión. xAlgoritmo para la evaluación subjetiva de la calidad de experiencia (QoE). La arquitectura del sistema de pruebas se muestra en la Fig. 2 y los detalles de cada uno de los componentes se describen en las siguientes subsecciones. Los bloques del sistema propuesto, tanto el pre-procesado como el servidor o el cliente, se han desarrollado en un PC con Ubuntu (versión 18.04.2 LTS). Los bloques son modulares y pueden ejecutarse en una misma máquina. Así, podría utilizarse un sistema de virtualización o contenedores, como Docker, para poder hacer el despliegue de cada uno de los módulos en un mismo ordenador. El hecho de implementar todo el proceso de testbed en un único dispositivo permite que el sistema desarrollado sea fácilmente exportable y replicable por la comunidad científica. Fig. 2. Arquitectura del sistema. A. Servidor Web El servidor web aloja el contenido de vídeo para la transmisión adaptativa a través de HTTP. Como paso previo a la generación de los contenidos DASH se debe realizar un proceso de codificación, que en nuestro caso se realiza empleando la librería libx264 de la aplicación ffmpeg y la tasa de bits máxima como parámetro de codificación. El sistema está abierto a otros codificadores y cualquier otra opción de codificación, incluyendo otros parámetros de codificación, como por ejemplo basado en QP (Quantization Parameter) o CRF (Constant Rate Factor) en lugar de bitrate. El uso de otros codificadores como (HEVC, VP9, AV1), está sujeto a la compatibilidad con el navegador web, el reproductor DASH y la implementación del estándar para la evaluación subjetiva. Una vez codificadas las secuencias de vídeo, se procede a la generación de los segmentos DASH y la MPD, que contiene toda la información sobre las diferentes calidades de vídeo usadas y los anchos de banda de cada una. En la actualidad estamos trabajando con MPEG-DASH como formato de entrega, aunque también está abierta la opción de usar HTTP Live Streaming (HLS), el protocolo de streaming multimedia basado en HTTP implementado por Apple. B. Emulación de condiciones de red y terminales cliente (Puppeteer) El streaming adaptativo de vídeo se puede dar en entornos heterogéneos, y un solo cambio en las condiciones de contexto
Evaluación automática de la QoE del streaming DASH utilizando el estándar ITU-T P.1203 y Google Puppeteer This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) puede tener un gran impacto en el comportamiento del reproductor y, seguramente, en la experiencia de visualización del usuario final. Como herramienta para la automatización de las pruebas extremo a extremo, incluida la emulación de las variaciones de red se empleará Puppeteer [10]. Puppeteer es la nueva librería desarrollada por Google que ofrece una interfaz basada en node.js que permite ejecutar y controlar Chrome (o Chromium) en modo headless a través del protocolo DevTools mediante la ejecución de un script desde la línea de comandos. En concreto, para esta etapa se establece una sesión CDP (Chrome Devtools Protocol) con la web en la que se encuentra alojada la implementación del Shaka Player. Mediante el acceso a los recursos Network.emulateNetworkConditions y Emulation.setCPUThrottlingRate se proporcionan los parámetros necesarios para la activación del throttling y la definición de las condiciones de la CPU del cliente. Dentro de las condiciones de red que se deben definir se encuentran: downloadThroughput (bytes/s), uploadThroughput (bytes/s) y latency (ms), que serán seleccionadas según las condiciones de contexto deseadas (Fig. 3). Cabe resaltar que, la versión actual de Puppeteer no permite emular entornos de red complejos. Por tal motivo, esta primera versión del sistema de pruebas, se centra en la evaluación de la calidad a partir de la emulación de variaciones del ancho de banda (cambios rápidos, cambios lentos, escalonados, etc.) y/o la latencia del enlace. Fig. 3. Ejemplo de la variación de ancho de banda durante la reproducción del vídeo. C. Cliente reproductor DASH (Shaka Player) mpatibles con el estándar DASH disponibles actualmente, para el desarrollo de este trabajo hemos seleccionado el reproductor Shaka Player [11]. Shaka Player es una librería de código abierto de JavaScript que permite la reproducción de contenidos multimedia tanto en formato DASH como HLS en un navegador estándar, sin requerir el uso de plugins o Flash. El player debe alojarse en un servidor web, en este caso es el ordenador local. Para esto, se ha desarrollado un script en node.js que, mediante el uso de Puppeteer, permite acceder a la web donde está el Shaka Player, seleccionar el vídeo, activar el log por consola, donde se recogerán los datos para el post-procesado, e iniciar la reproducción del vídeo haciendo clic programáticamente en el botón correspondiente. La Fig. 4 muestra una instantánea de lo que el usuario vería al ejecutar el sistema y deshabilitar el modo headless. Se muestra un mensaje en la esquina superior izquierda de la pantalla, que indica que un software de prueba automatizado está controlando Chrome. El marco derecho de la pantalla muestra que el acceso a las DevTools está activo, lo que permite tener acceso al bandwidth throttling y las estadísticas de red. Fig. 4. Navegador Chrome controlado por Puppeteer Modo Headless deshabilitado. D. Post-procesado La posibilidad de tener acceso mediante Puppeteer a todos los recursos o herramientas de desarrollador orientadas a la evaluación del desempeño de los servicios web permite que, una vez iniciada la reproducción del vídeo, se inicie también la captura de métricas y registros relacionados con: estadísticas de la red, estado del buffer, número de paradas, duración de paradas, tiempo de reproducción y representaciones transmitidas, entre otros. Esta información se extrae empleando métodos como page.setRequestInterception opage.evaluate, que permite definir un callback en el que podemos especificar mediante código los elementos de la página que resultan de interés. Estos datos se obtienen mediante su presentación por consola o la generación de un archivo en formato JSON que registra la interacción entre el cliente y el servidor. Estos archivos son procesados posteriormente para extraer los datos requeridos para la reconstrucción del vídeo (segmentos descargados, número y duración de las paradas). La información obtenida por el sistema permite analizar aspectos como: el estado del buffer (Fig. 5), el comportamiento del algoritmo de adaptación frente a los cambios de ancho de banda (Fig. 6), entre otros. Fig. 5. Ancho de banda disponible y estado del buffer.
Guzmán , Arce, Guerri 2019. This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) Fig. 6. Ancho de banda disponible, bitrate solicitado y throughput por segmento. E. Evaluación de la calidad de experiencia (QoE) Mientras que la capacidad de cambiar alternativamente entre representaciones de un vídeo reduce significativamente el riesgo de paradas, las variaciones de calidad que esto conlleva pueden también resultar molestas para el usuario. Por tal motivo, conocer la QoE percibida por el usuario es una pieza clave para evaluar el desempeño de los algoritmos de streaming adaptativo. En esta etapa, usaremos una implementación en Python del estándar ITU-T Rec. P.1203 [12]. Esta recomendación fue publicada en 2017 y se ha convertido en el primer modelo estandarizado para la evaluación de la calidad de los servicios de streaming adaptativo de audio y vídeo. La Fig. 7 presenta un diagrama de la arquitectura general de la recomendación P.1203. La P.1203 consta de tres módulos, uno para la estimación de la calidad del vídeo (P.1203, Pv), otro para la estimación de la calidad del audio (P.1203, Pa) y uno más que proporciona una percepción global de la calidad (P.1203.3, Pq). Asimismo, la herramienta tiene 4 modos de operación, desde el modo 0 hasta el modo 3. Los modos se distinguen según la cantidad de información disponible, que va desde sólo los metadatos (códec, resolución, tasa de bits, tasa de frames, resolución del display, duración del segmento) en modo 0, hasta el acceso al flujo de bits completo en el modo 3. En este trabajo nos centramos en el modo 3 y en la salida O.46, que corresponde con la evaluación integral del Mean Opinion Scale (MOS). La recomendación P.1203 tiene en cuenta la información sobre las paradas para la predicción de la calidad y proporciona un valor en una escala de 1 a 5 por cada segundo del vídeo. Como limitación tenemos, que la implementación disponible actualmente de la recomendación P.1203, solo soporta vídeos codificados en H264 con una resolución de hasta 1080p. Fig. 7. Diagrama de bloques del modelo ITU-TP.1203. III. CASOS DE USO A. Video 2D –Modificación del algoritmo de adaptación del Shaka Player Los resultados de la evaluación subjetiva de la calidad de experiencia de los usuarios frente a los diferentes escenarios de variación de ancho de banda (cambios rápidos, cambios lentos, cambios bruscos, etc.) permiten evaluar el desempeño del reproductor (Shaka Player) y se usan como realimentación del sistema para inferir qué modificaciones en el algoritmo de adaptación serían deseables. El objetivo es validar, entre otros, la respuesta del usuario frente a escenarios donde, con el objetivo de mantener la calidad en un nivel aceptable, se admitan las paradas, o si reacciona mejor a un cambio (degradación) brusco de la calidad para evitar una parada. B. Vídeo 3D - Evaluación de la QoE de vídeo 3D El uso de un reproductor web y la utilización de formatos estereoscópicos compatibles con 2D (Frame-compatible o Full-resolution Frame-compatible) hace posible que el sistema propuesto pueda ser extendido para la evaluación de la QoE de vídeo 3D, donde las diferentes representaciones disponibles del vídeo pueden ser obtenidas, además de mediante las variaciones de calidad y resolución espacial, introduciendo criterios como la asimetría entre vistas, que explotan las propiedades de adaptación del sistema de visión humano y es un factor de gran interés en este contexto. IV.CONCLUSIONES La evaluación de la QoE en sistemas de DASH incluye muchos aspectos que, en general, no hacen viable la réplica de los experimentos y complica la posibilidad de comparar soluciones o mejoras. Con el objetivo de contribuir en el desarrollo de un testbed que permita automatizar, escalar, replicar y simplificar el proceso de evaluación, se ha desarrollado un sistema que incluye, desde la descripción del proceso de codificación hasta el de la evaluación subjetiva utilizando el estándar ITU-T P.1203. Para el proceso de la emulación de la red y automatización de las pruebas, se ha utilizado la herramienta Puppeteer de Google y las opciones que ofrece Chrome DevTools. Además, se ha desarrollado el código que permite extraer la información necesaria en el cliente para la reconstrucción del vídeo visualizado y su adaptación para que pueda ser evaluado con el estándar P.1203. Con el uso de la tecnología Docker como parte del trabajo futuro, se pretende incluir todas las herramientas implementadas en contenedores; esto facilitará la réplica del sistema por parte de terceros. Sin duda, el sistema evolucionará y se ampliará conforme se incorporen nuevos codificadores (como AV1, etc.) tanto en el proceso de codificación como en la reproducción y en la evaluación según el estándar; se desarrollen nuevos reproductores; o se propongan diferentes algoritmos de adaptación. Sin embargo, todas estas nuevas propuestas no suponen cambios en todos los módulos sino la adaptación de manera independiente conforme sea necesario ante la evolución de la tecnología de streaming. AGRADECIMIENTOS Este trabajo ha sido parcialmente apoyado por el Ministerio de Ciencia, Innovación y Universidades de España
This work is licensed under a Creative Commons 4.0 International License (CC BY-NC-ND 4.0) y por la Unión Europea a través de la subvención RTI2018098085-BC41 (MCUI / AEI / FEDER) y GVA-FSE (PROMETEO/2019/109, “COMTACTS - COMunicación y compuTACión inTeligentes y Sociales”). REFERENCIAS [1] Cisco Visual Networking Index: Forecast and Trends, 2017–2022 White Paper, 2019. [2] I. Sodagar, “The MPEG-DASH Standard for Multimedia Streaming Over the Internet”,inIEEE MultiMedia, vol. 18, No. 4, pp. 62-67, April 2011. doi: 10.1109/MMUL.2011.71 [3] Krishnappa D, Bhat D, Zink M, “DASHing YouTube: An analysis of using DASH in YouTube video service”,38rh Annual IEEE Conference on local computer networks, pp: 407-415, 2013. [4] Seufert M Egger S Slanina M Zinner T Hobfeld T Tran-Gia P, “A Survey on Quality of Experience of HTTP Adaptive Streaming”, IEEE Communications Surveys & Tutorials, vol: 17, Nol 1, pp: 469-492, 2015. [5] Sani, Y., Mauthe, A., & Edwards, C. “Adaptive Bitrate Selection: A Survey”, IEEE Communications Surveys and Tutorials, vol. 19, No. 4, pp: 2985–3014. 2017. https://doi.org/10.1109/COMST.2017.2725241 [6] Bentaleb, A., Taani, B., Begen, A. C., Timmerer, C., & Zimmermann, R., “A Survey on Bitrate Adaptation Schemes for Streaming Media over HTTP”, IEEE Communications Surveys and Tutorials, vol. 21, No. 1, pp: 562-585, 2019. [7] Juluri P Tamarapalli V Medhi D, "SARA: Segment aware rate adaptation algorithm for dynamic adaptive streaming over HTTP", IEEE International Conference on Communication Workshop, ICCW 2015, pp: 1765-1770, 2015. [8] Hoßfeld T Seufert M Sieber C Zinner T Tran-Gia P, “Identifying QoE optimal adaptation of HTTP adaptive streaming based on subjective studies”, Computer Networks, vol: 81 pp: 320-332, 2015. [9] A. Zabrovskiy, E. Kuzmin, E. Petrov, C. Timmerer, and C. Mueller, “AdViSE: Adaptive Video Streaming Evaluation Framework for the Automated Testing of Media Players,” Proc. 8th ACM Multimed. Syst. Conf. - MMSys’17, pp. 217–220, 2017. [10] Puppeteer, [Online]. Available https://pptr.dev/, May 2019. [11] Shaka Player Demo. [Online]. Available: https://shaka-playerdemo.appspot.com. [12] ITU-T. Recommendation P.1203, Parametric bitstream-based quality assessment of progressive download and adaptive audiovisual streaming services over reliable transport, 2017. Evaluación automática de la QoE del streaming DASH utilizando el estándar ITU-T P.1203 y Google Puppeteer