Silverlight Media Framework – Play Silverlight

A la hora de incluir elementos multimedia en una aplicación web Silverlight provee el control MediaElement. Es un control sencillo, que facilita las operaciones básicas de reproducción de elementos multimedia como reproducir, pausar o parar, etc. Sin embargo, tiene una serie de desventajas que le hace perder puntos con respecto a otras soluciones.

Entre ellas, se encuentra la limitación en los formatos de video y audio soportados de forma nativa por Silverlight, además de una dificultad para hacerlo nosotros mismos, al tener que implementar todos los aspectos relacionados. Esto incluye desde la recepción de contenido desde una localización remota hasta el control de la reproducción de audio y renderización de video.

El uso de MediaElement tiene otra problemática, la dificultad para implementar transmisión suave por secuencias (Smooth Streaming). La reproducción de contenido multimedia mediante smooth streaming proporciona una mayor información adicional al propio contenido que dificilmente puede implementarse extendiendo MediaStreamSource (Origen de contenido para MediaElement) debido a que se trata de una caja negra con un conjunto de funcionalidades expuestas limitadas.

Como alternativa a MediaElement, encontramos Silverlight Media Framework (SMF) que permite desarrollar reproductores multimedia robustos, escalables y personalizables. Además tiene una serie de características muy interesantes como la posibilidad de ajustar el bitrate basándose en el ancho de banda disponible, reproducción bajo demanda y en directo, e integrar orígenes de datos externos en el reproductor, entre otros.

Silverlight Media Framework

Empezaremos con una pequeña prueba en la que prepararemos el entorno necesario en IIS para ofrecer un pequeño video vía streaming y consumirlo desde una sencilla aplicación Silverlight.

Los elementos que deberemos tener instalados son los siguientes:

Media Services en IIS

Empezaremos instalando la extensión Media Services para IIS. Como resultado de la instalación de ésta, aparecerá un nuevo grupo en la página principal del servidor como se ve en la siguiente imagen:

IIS Media Services

IIS Media Services

  • En la sección Bit Rate Throttling, se permite modificar aspectos relacionados con el bit rate con el que se servirán contenidos por tipo de fichero.
  • Live Smooth Streaming, donde se puede configurar características de la caché cuando se trata de transmisión de contenidos en directo.
  • El apartado Smooth Streaming contiene las características de la reproducción de contenidos bajo demanda, como  caché, limitación de memoria para metadatos de los videos o los puntos en los que se cachea datos (en número de peticiones e intervalo entre las mismas)

Codificación con Microsoft Expression Encoder

A continuación, utilizando la herramienta Microsoft Expression Encoder, importaremos un mideo y lo codificaremos de manera que pueda ser utilizado para smooth streaming.

Microsoft Expression Encoder

Pantalla principal de Microsoft Expression Encoder

Su paso por este proceso dará como resultado varias versiones del mismo video, pero con diferentes bit rates. De este modo, en base al ancho de banda disponible, se servirá el video que mejor se adapte a esas condiciones.

La configuración que utilizaremos para codificar el video se muestra en la siguiente imagen:

Configuración Codificación

Configuración Codificación

Por defecto, el número de videos que resultarán del proceso de codificación es configurable, así como las características de individuales de cada uno de ellos. Una vez hecho esto, tan solo habrá que pulsar el botón Codificar para iniciar el proceso. Con los videos obtenidos, crearemos un nuevo directorio virtual en IIS donde alojaremos los videos listos para ser consumidos.

Comentar que podremos ver los videos disponibles en la sección Smooth Streaming Presentation del directorio virtual donde los alojemos, además de poder eliminar algunos de los videos generados a fin de no desaprovechar espacio en disco, sin que ello impida mantener un número de videos con bit rates que se ajusten a varias capacidades de ancho de banda.

Aplicación Silverlight

La última parte será consumir el video que tenemos en nuestro IIS. Para ello, crearemos un nuevo proyecto Silverlight y añadiremos referencias a las librerías de SMF y Smooth Streaming.

Librerías SMF y Smooth Streaming

Librerías SMF y Smooth Streaming

Después con poco más de un par de líneas de código tendremos nuestro reproductor con todas las capacidades básicas:

<p:Player>

<p:CoreSmoothStreamingMediaElement
 SmoothStreamingSource="http://localhost/Streaming/Bear.ism/Manifest"/>

</p:Player>

Por último comentar, que como origen de datos, se hace referencia a un fichero ism (en concreto, a su manifiesto). Si abrimos dicho fichero, veremos un documento XML en el que aparecen las diferentes versiones del mismo video, con este formato:


<video  src="Lake_937.ismv" systemBitrate="937000">

     <param  name="trackID" value="2" valuetype="data" />

</video>

Este el resultado de este proceso:

Reproductor Multimedia

Reproductor Multimedia

En próximas entradas intentaré profundizar en algunos de los aspectos más interesantes de este framework.

Saludos!

Enlaces relacionados:

Anuncios
Esta entrada fue publicada en Silverlight y etiquetada , , , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s