Francisco Javier Izquierdo Sebastián_vlc-vod

Anuncio
VideoLan-VoD-01
1
Evaluación de la plataforma VideoLAN como
servidor de Video Bajo Demanda.
Francisco Javier Izquierdo Sebastián.
Transmisión de Datos Multimedia, Master en Ingeniería de Computadores.
Resumen—VideoLAN es una comunidad de desarrollo Open
Source dedicada a la creación de módulos y aplicaciones para
tratamiento de video. Entre dichas aplicaciones figuran VLC
media player y VLS, reproductor y servidor de videos
respectivamente. Sin embargo, en los últimos meses se ha ido
incrementando el número de capacidades de VLC haciéndolo
igual de capaz, si no más, que VLS como servidor de video. De
entre todas las posibilidades que ofrece VLC, este trabajo
pretende evaluar la capacidad de dicho software de ejercer como
servidor de Video bajo Demanda (VoD). Tras una breve
introducción en las características del software y su instalación,
el trabajo se va a centrar en cómo realizar VoD con VLC, se
explicará brevemente el método y las herramientas empleadas
para hacer las mediciones para, a continuación, describir la
prueba real de carga del servidor mediante el incremento en el
número de peticiones y para distintos tipos de carga con el fin de
poder comparar comportamientos.
I. INTRODUCCIÓN
Los servicios de descarga de video por Internet están cada vez
más a la orden del día. Con el fin de obtener su cuota de
mercado en este campo los grupos desarrolladores de software
van creando y publicando sus programas Servidores de
Multimedia. Estos grupos de desarrollo son la mayoría
comerciales por lo que cabe esperar que sus productos den un
rendimiento lo suficientemente bueno como para mantenerse
en el mercado. Sin embargo, entre las comunidades de
desarrollo de software existen aquellas otras de código abierto
y no comerciales, entre las que se encuentra el Proyecto
VideoLAN, de software gratuito para video desarrollado bajo
licencia GNU, según ellos mismos se describen en [1]. Al
mismo tiempo entre los servicios de descarga de video por
Internet figura como caso particular el denominado Video
bajo Demanda en el cual el video no se descarga al completo
en una operación única y previa a cualquier otra
manipulación, sino que se va reproduciendo a medida que van
llegando partes del mismo, las suficientes como para poder ser
interpretado. Este tipo de reproducción directa, a medida que
va llegando el contenido, sin necesidad de esperar la descarga
total del mismo se conoce como streaming. En este sentido y
pasando por alto las características de las redes por las que un
envío debe pasar, el rendimiento del Servidor de VoD debe
cumplir unas expectativas de rendimiento con el fin de ofrecer
una calidad de servicio suficiente al usuario final. Con estas
dos premisas expuestas anteriormente nos ponemos en
situación acerca del objetivo final de este trabajo, que consiste
en realizar una evaluación a la aplicación VLC media player
en su faceta de servidor de VoD, esto es, someter al mismo a
una serie de pruebas de carga con el fin de obtener como
resultado final el índice de peticiones que soportaría en el caso
ideal de que no existieran problemas de red. En este sentido,
las pruebas se realizan en un entorno cerrado puesto que lo
que nos interesa es estudiar la capacidad de la aplicación del
servidor sin las perturbaciones propias de un entorno de red
abierto. Se va a tener en cuenta también el condicionante de
un par de características en lo que a videos servidos se refiere,
a saber, el bitratio de los videos servidos y la popularidad de
los mismos.
El resto del trabajo se organiza de la siguiente manera: en el
siguiente apartado, el II, las características principales del
software VLC así como el proceso de instalación del mismo;
en el III se explica cómo se ha preparado el entorno de
pruebas así como las características de los sistemas hardware
que han intervenido; el apartado IV servirá para explicar
brevemente que herramientas software se han empleado para
la realización de las mediciones; los resultados obtenidos se
repasan en el V y se exponen las conclusiones en el VI. Los
apartados VII y VIII servirán para proponer posibles trabajos
que mejoren y/o completen este y la bibliografía,
respectivamente. Se incluye al final un Anexo I con las
representaciones gráficas de los resultados obtenidos.
II. CARACTERÍSTICAS E INSTALACIÓN DE VLC
VLC media player nació como una aplicación de
manipulación de video, esto es, para la transformación y
visionado de archivos y/o dispositivos de video. Entre otras
características que la hacen interesante figuran la ya citada de
ser de licencia GNU, la existencia de versiones para diversas
plataformas (Linux, MacOS, Windows, etc.) y sobre todo la
capacidad de trabajar con diversos codecs, formatos en la
creación y conversión de los videos, así como protocolos de
envío y recepción de los archivos. Puede funcionar, en su
faceta de servidor que es la que nos ocupa, como servidor de
streaming o realizar envíos unicast o multicast.
Podemos añadir a todas estas características la variedad de
interfaces, además de la predeterminada gráfica de la
VideoLan-VoD-01
aplicación, con las que podemos actuar sobre la aplicación.
Así, se puede emplear tanto desde línea de comandos, como
vía telnet o web.
Igualmente existe la posibilidad de emplear distintos tipos de
filtros así como el volcado de video entre disco y red en un
sentido y en otro. [2]
La obtención del paquete de instalación del software se puede
realizar en la página de descargas de [1], debiendo elegir la
versión adecuada a la plataforma en la que se vaya a instalar.
Figura 1. Página de descarga del sitio web de VideoLAN
En nuestro caso se ha empleado la versión para Windows de
Microsoft (MS). La descarga nos proporciona un ejecutable
autoinstalable con lo que con la simple ejecución del mismo y
tras seleccionar un plan de simples opciones el sofware queda
instalado,
por
omisión,
en
c:\Archivos
de
programa\videolan\vlc.
Figura 2. Instalación de VLC media player
III. PREPARACIÓN DE LA EXPERIENCIA
La prueba se ha llevado a cabo en un aula con 23 PCs
marca Asus dotados de procesador Pentium IV a 3Ghz,
512Mb y tarjeta Ethernet de 100Mbps conectados en red
mediante un Hub de 100Mbps. En todos los ordenadores, con
2
sistema operativo Windows XP SP-2, se ha instalado VLC
respetando uno de ellos como Servidor de VoD y otro como
cliente observador. La función del Servidor era la de ofrecer
una colección de videos bajo el protocolo RTSP mediante un
módulo especial del VLC llamado VLM (VideoLAN Manager)
definido por ellos mismos como “un pequeño gestor para
controlar múltiples streams con una única instancia de VLC”
[2]. La gestión de este módulo solo se puede llevar a cabo vía
telnet o http. En este caso se ha optado por el uso de telnet
debido a que el interfaz http mostró un comportamiento algo
irregular.
Con el fin de poder realizar pruebas con distinto tipo de
carga se han recogido una colección de videos de diferentes
características en lo que a tasa de bits de compresión (bitrate),
duración y tamaño de cuadro se refiere. La elección de
emplear diversos videos es debido a que se pretendía
comprobar que el comportamiento del servidor no iba a ser
igual en el caso de que todos los clientes pidieran el mismo
video, pues se supone que puede ser servido desde caché, o en
su lugar hubiera una diversidad de peticiones, lo que
supondría más carga al servidor al no residir dichas peticiones
en caché. Del mismo modo se pretendía comprobar el
comportamiento si el video demandado era de mayor o menor
tasa de bits; en este caso lo esperado es que con un bitrate
mayor el deterioro en la calidad será mayor a medida que
crezca el número de peticiones, puesto que la sobrecarga que
añade cada nueva petición va en detrimento de la carga útil de
los paquetes. [3]
Para poder evaluar la calidad del software se ha optado por
realizar conjuntamente observaciones subjetivas, desde el
punto de vista del usuario final, en cuanto a la calidad del
video servido; junto con las medidas obtenidas en servidor en
términos de carga del sistema. Como ya se ha indicado, de los
23 ordenadores que intervienen en el experimento había dos
especiales, el servidor de streaming y el que ha sido
denominado cliente observador que ha servido para la
ejecución de una única instancia de VLC como cliente para la
observación subjetiva de la calidad del servicio. Los otros 21
han sido clientes con múltiples peticiones haciendo uso de una
de las características del software como es indicarle que
emplee como interfaz de salida la opción dummy con el fin de
no sobrecargar los clientes con el procesado gráfico.
En cuanto a la observación sobre el servidor hay que
indicar que se han tomado cuatro tipos de medida. El uso de
CPU, donde se espera que el rendimiento de la máquina no se
vea deteriorado hasta alcanzar el 60 ó 70%. El segundo
parámetro medido es el uso de la memoria principal, que en
principio no debe saturarse, aunque si se llega a un número de
peticiones suficientemente elevado sí que llegará a
sobrecargarse, de manera que se tendrá que hacer paginación
y el servicio se degradará considerablemente. La tercera
métrica tomada es la utilización de paginación de memoria a
disco, que si aumenta indicará que la memoria no está siendo
capaz e, igual que en el caso anterior, tendremos un deterioro
VideoLan-VoD-01
del sistema. Estas tres medidas irán acompañadas por el
número de subprocesos creados por el proceso principal de
VLC, lo que nos permitirá saber cuántas peticiones estaba
manejando el servidor. Todas estas medidas se registrarán al
mismo tiempo a intervalos regulares para poder comprobar la
evolución en el tiempo del sistema.
En el lado del servidor se ejecuta VLC indicándole que el
interfaz de acceso a VLM será telnet. Desde línea de comandos
se ejecutará vlc con la siguiente sintaxis.
vlc --ttl 12 –vvv --color -I telnet --telnet-password tdm -rtsp-host cmmf-00.gmmf.upv.es:5554
En esta misma orden se indica, además, que el servicio que
se va a ofrecer será mediante protocolo RTSP (Real Time
Streaming Protocol), así como el puerto que se va a emplear
para su posterior acceso. Igualmente se indica el password que
se va a emplear como usuario administrador y otros
parámetros sin relevancia para el estudio que nos ocupa. La
elección de RTSP como protocolo en las pruebas es debido a
que es un estándar orientado precisamente al streaming según
indica la RFC 2326.
A continuación se accede mediante hiperterminal al
servicio establecido. Aquí se pueden ir creando nuevos
elementos que describirán el tipo de video/s ofrecido/s y el
nombre con el que se obtendrá por la red. Para facilitar la
tarea en las distintas pruebas se crean archivos de
configuración que permiten establecer órdenes que luego
serán cargadas desde la terminal abierta. La sintaxis de los
archivos de configuración para las tres pruebas de carga es la
siguiente:
#VLC Archivo de configuración ratio alto
new gordo vod enabled
setup gordo input concierto.mpg
#VLC Archivo de configuración ratio bajo
new flaco vod enabled
setup flaco input concierto_bajo.mpg
#VLC Archivo de configuración variado
new p1 vod enabled
setup p1 input p1.mpg
new p2 vod enabled
setup p2 input p2.mpg
…
new p17 vod enabled
setup p17 input p17.mpg
Mediante new se crea una nueva instancia de video bajo
demanda y se habilita. Con setup se le indica cual es el
archivo de video que se va a servir bajo ese nombre en la url
correspondiente. Se pueden añadir tantos pares de líneas como
3
videos se deseen ofrecer, asignándole, eso sí, a cada uno un
nombre diferente.
La orden para cargar el fichero de configuración es bien
simple: load archivo_conf
Hay que decir que el interfaz telnet es bastante parco en
cuanto a mensajes de error. Cuando algo no funciona, en
efecto, se obtiene un mensaje de error, pero cuyo contenido no
es nada explícito, con lo que hay que revisar bien los nombres
de los archivos y su path si no están en el mismo directorio.
En los clientes y también desde línea de comandos se
lanzarán instancias paulatinamente hasta llegar a la sobrecarga
en el servidor, con el consecuente deterioro en la calidad del
video observado en el cliente observador. La posibilidad de
ejecutar los clientes desde línea de comandes facilita la tarea
puesto que se puede incluir en procesos por lotes. La sintaxis
es bien sencilla:
vlc rtsp://cmmf-00.gmmf.upv.es:5554/gordo --intf=dummy
Para cada carga de trabajo este es el proceso a seguir. A
partir de aquí será cuestión de tomar las medidas y observar
los resultados.
IV. HERRAMIENTAS EMPLEADAS EN LA MEDICIÓN
Como se ha expresado anteriormente se ha realizado
simultáneamente una observación de la calidad del video
servido junto a una medición en el servidor de ciertos valores
de rendimiento. Para esto último se ha empleado la
herramienta proporcionada por MS con sus sistemas Windows
llamada “Monitor de rendimiento” (perfmon.exe). Según se
describe en [4] esta utilidad es capaz de registrar todo tipo de
medidas de la mayoría de los componentes del sistema.
De manera predeterminada el monitor de rendimiento nos
muestra una gráfica con los contadores por defecto. Para
nuestra experiencia creamos una nueva entrada en el árbol de
Registros y alertas de rendimiento, bajo la rama Registros de
contador.
Figura 3. Consola de Monitor de Rendimiento
En esta nueva entrada en la consola se han establecido una
serie de valores a registrar que son:
“\\CMMF-00\Memoria\% de bytes asignados en uso”
“\\CMMF-00\Memoria\Páginas/s”
“\\CMMF-00\Procesador(_Total)\%
de
tiempo
de
VideoLan-VoD-01
procesador”
"\\CMMF-00\Proceso(vlc)\Número
de
subprocesos
(subprocesos)"
Con los datos obtenidos en cada una de las pruebas Monitor
de Rendimiento crea un fichero en formato .tsv (valores
separados por tabulador), y con el fin de facilitar el análisis de
los datos mediante una manera gráfica, se recurre al uso de
MS Excel para crear gráficos de línea que nos relacionen el
número de peticiones con los diversos indicadores.
Estas medidas serán contrastadas con las observaciones
subjetivas para poder obtener una conclusión.
V. RESULTADOS DE LAS MEDICIONES
El conjunto de medidas tomadas se deben clasificar en tres
grupos: Peticiones del mismo video de bitrate alto, peticiones
del mismo video de bitrate bajo y peticiones indiscriminadas
de videos con diferente tasa de bits. En cada una de estos tipos
de carga se han hecho varias pruebas, obteniendo para cada
una de ellas valores similares. Aquí se expone una muestra
representativa de cada uno de los tipos.
Las gráficas que se van a presentar en el anexo I tienen en
común los datos representados. Se muestra en el eje de
abscisas el número de subprocesos que ejecuta el proceso
VLC, pero de manera implícita también indica el tiempo,
puesto que los valores representados se han ido tomando en
intervalos de 15 segundos. En cuanto a las curvas
representadas cabe indicar para su mejor comprensión que en
el caso de los valores porcentuales de los usos de memoria y
de CPU se han multiplicado por 10 con el fin de apreciar
mejor su evolución. Esto se ha hecho así por la diferencia en
los órdenes de magnitud con el otro valor, el indicador de
Páginas por segundo.
He aquí la explicación para cada uno de los grupos de
pruebas.
- Único video bitrate alto:
Se observa que por cada petición realizada al servidor el
número de subprocesos se incrementa en tres. Esta
característica se cumple en todas las pruebas.
En este caso concreto se aprecia que mientras el incremento
de peticiones es lento y ligero, los valores de las medidas se
mantienen estables. Al comenzar una demanda mayor se
empieza a sobrecargar la memoria, lo que lleva a la
realización de más cantidad de paginado. No obstante no es
hasta alcanzar las 45 peticiones cuando el nivel de sobrecarga,
y por tanto el índice de paginado aumentan desmesuradamente
lo que lleva a un uso de CPU que alcanza el 60%. En este
punto es cuando se aprecia que el servicio de VoD deja de
funcionar de manera correcta.
- Único video bitrate bajo:
Podemos observar gráficamente las medidas tomadas para
este caso en la figura 2 del anexo I.
Este caso es similar al anterior, salvo que el número de
4
streams servidos antes de llegar a una degradación del servicio
es mayor. En este caso se alcanza la cifra de 60 peticiones
atendidas, unas pocas más que en el caso del video de tasa de
bits superior y es el indicador del uso de CPU el que coincide
con la apreciación subjetiva de error, de donde se puede
deducir que no es suficiente confiar en solo un parámetro para
llegar a conclusiones claras.
- Diversos videos de bitrates variados:
Para el caso de la prueba de carga con videos de diferente
tasa de bits los resultados se muestran en la figura 3 del anexo
I.
En este caso existe una considerable diferencia. Debido a
que los videos demandados son diferentes y, aunque algunos
de ellos se repitan en diferentes momentos, se observa un
incremento rápido del índice de paginación, lo que produce a
su vez un incremento del uso de CPU. El servicio se degrada
al alcanzar un número de peticiones bastante bajo,
concretamente 7.
VI. CONCLUSIONES
Por todo lo expuesto anteriormente, pero con las reservas
de haber hecho las pruebas con las limitaciones de hardware,
software y tiempo, se concluye que el software estudiado no
reúne la suficiente entidad como para hacer un uso comercial
del mismo. En concreto hay dos factores que llevan a dicha
conclusión.
Principalmente el resultado de la prueba en si, es decir, el
número de peticiones soportadas por el servidor es
insuficiente para un uso masivo como servidor de VoD, si
bien es cierto que no se han hecho pruebas en hardware más
potente. Es evidente que si pensamos en un servicio de cierta
relevancia no nos podemos limitar al uso de un simple
ordenador personal.
El segundo factor que desaconseja el uso de dicho software
es, al menos desde el punto de vista del usuario de entorno
gráfico, la falta de “amigabilidad” de la aplicación. Es verdad
que VLC tiene infinidad de opciones, utilidades, filtros y
parámetros con sus respectivos usos, pero también es cierto
que el empleo de los mismos resulta ser poco user friendly y
poco apoyado por la redacción de sus manuales. Sin embargo,
y aún no siendo el objetivo de este trabajo, si que parece muy
útil como herramienta de captura de video y transformación
entre formatos.
VII. TRABAJOS FUTUROS
Resultaría interesante realizar pruebas similares midiendo
mediante alguna herramienta más completa valores más
objetivos en cuanto a la calidad final de servicio. En concreto,
parece conveniente obtener datos sobre Latencia o Jitter, y ver
como afecta la carga del servidor a estos valores.
Las medidas tomadas lo han sido sobre una máquina que si
bien es un modelo bastante actual no se el adecuado para
realizar este tipo de funciones, por lo que se podría volver a
VideoLan-VoD-01
5
VIII. BIBLIOGRAFÍA
realizar este estudio, o uno mejorado, empleando como
servidor una máquina más potente.
En este trabajo no se ha comparado el software estudiado
con otros servidores existentes, cosa que podría realizarse con
el tiempo y los medios necesarios, con el fin de tener una
referencia con respecto a software comercial, por ejemplo.
[1] “The VideoLAN Project”, http://www.videolan.org
[2] “VideoLAN Documentation”,
http://www.videolan.org/doc
[3] M. Spasojevic, N. Bhatti y S. Roy. Understanding the
Impact of Diverse Streaming Workloads on End-User Quality
of Service. In 10th Iternational Workshop on Web Caching
and Content Distribution. 2005.
[4] “The Windows NT Performance Monitor”,
http://windowsitpro.com/articles/print.cfm?articleid=285
Anexo I – Representaciones gráficas
Video de alto bitrate
1800
1600
1400
1200
1000
800
600
400
7
7
1
5
6
1
5
7
1
5
7
1
5
7
1
5
8
1
5
7
1
5
7
1
5
7
1
4
2
1
4
2
1
2
7
1
1
5
1
1
5
1
1
2
1
1
2
1
1
2
6
1
1
0
0
3
1
2
8
2
5
2
5
2
5
2
2
2
2
1
9
1
9
1
9
1
9
1
9
1
9
1
9
1
6
1
3
1
0
7
1
0
7
0
6
200
Subprocesos de VLC
% de Memoria en uso
Páginas de memoria por segundo
% de tiempo de procesador
Vi d e o d e b a j o bi t r a t e
1200
1000
800
600
400
200
0
Subpr oc e s os de V LC
%de Memor i a en uso
Pági nas de memor i a por segundo
%de ti empo de pr ocesador
V i de o de bi t r a t e v a r i a do
1200
1000
800
600
400
200
0
13 13 13 13 13 13 13 13 13 16 22 16 16 22 13 25 22 25 22 22 22 25 31 34 34 37 40 40 40 40 40 45 43 46 43 42 46 47 49 49 49 46 40 40 37 34 34 28 31 31 31 25 22 22 19 16 13 13 13 13 13 10 10
Sub p r o c e s o s de V LC
% de M emor i a en uso
P ági nas de memor i a por segundo
% de t i empo de pr oc esador
7
7
7
7
Descargar