Microsoft Azure Media Services: Probando formatos de salida en Live Streaming

Cuando empezamos a trabajar con Microsoft Azure Media Services y Live Streaming es importante comprobar los distintos formatos de salida, gracias al empaquetamiento dinámico (Dynamic Packaging). Como ya se comentó en un post anterior, para recuperar el formato deseado basta con añadir una de las siguientes cadenas a la URL de publicación:

  • Smooth Streaming: formato por defecto, no es necesario especificarlo.
  • MPEG DASH: /Manifest(format=mpd-time-csf)
  • HLS V4:/Manifest(format=m3u8-aapl)
  • HLS V3:/Manifest(format=m3u8-aapl-v3)
  • HDS: /Manifest(format=f4m-f4f)

Para más información sobre Dynamic Packaging puedes leer más en el artículo de MSDN relacionado.

En este post me gustaría mencionar cuáles son los reproductores que he utilizado para comprobar el correcto funcionamiento de cada uno de los formatos. Para llevar a cabo la ingesta se puede seguir el post de introducción a Live Streaming, donde se muestra cómo configurar Flash Media Live Encoder, o usar Wirecast 6 tal y como se explica en este otro post.

Smooth Streaming

Para el ejemplo de Smooth Streaming, podemos hacer uso de Smooth Streaming Health Monitor o bien descargar SmoothStreamingPlayer.xap, en el apartado Aditional Downloads del sitio Microsoft Media Platform de Codeplex y modificar el archivo de ejemplo, con la URL del canal:

SmoothStreamingPlayer

MPEG DASH

Existe un apartado de players en Dashif.org, donde podemos utilizar la última versión del reproductor (a día de hoy es la versión 1.2.0):

Dash Player

HLS v4

La forma más fácil de comprobar HLS v4 es haciendo uso de Quicktime en Mac OS. Los pasos son muy sencillos, basta con abrir el reproductor > Command + L y agregar la URL con el formato correspondiente:

Quicktime player HLS

HLS v3

En el caso de HLS v3 se puede hacer uso de la aplicación para Windows 8 llamada 3ivx HLS Player

3ivx Media Player

También es posible realizar la prueba con JW Player, aunque es necesario tener una cuenta de tipo Premium para poder reproducir HLS. No obstante, a través de la URL http://www.jwplayer.com/partners/azure/ tenemos a nuestra disposición un reproductor el cual podemos modificar para realizar nuestras pruebas:

JWPlayer Azure streams

HDS

Para poder probar HTTP Dynamic Streaming es necesario tener una licencia de Adobe Primetime.

Cambios en el encoder: !important Reset Channel

Otro punto importante a tener en cuenta cuando estamos probando el servicio de Live Streaming es el refresco del manifiesto. Es normal que debamos hacer cambios en la configuración del encoder, añadir nuevos canales, cambiar calidades, etcétera. Para que estos cambios se vean reflejados es necesario parar el canal, refrescar el mismo y volver a iniciarlo para poder obtener la nueva versión del manifiesto. Para comprobar que los cambios se han realizado, basta con acceder directamente a la URL desde el navegador, descargar el XML del manifiesto y verificar que los cambios se ven reflejados en el mismo.

Espero que haya sido de utilidad.

Happy Testing/Streaming!

Deshabilitar ARR (afinidad con el servidor) en Microsoft Azure Websites

Una característica que fue muy demandada a la plataforma de Microsoft Azure fue la posibilidad de tener afinidad con los frontales web, debido a la gran cantidad de aplicaciones legacy que se habían desarrollado de esta manera. Para los que no conozcáis este proceso, basicamente lo que permite es que un usuario mantenga todas las peticiones con el mismo frontal durante toda la sesión, lo cual rompe por completo el concepto de escalabilidad en cloud. No obstante, Microsoft Azure Websites hace uso de Application Request Routing, módulo de IIS que adjunta una cookie (ARRAffinity) al navegador del usuario, la cual hará posible la afinidad con el servidor que está incluido en la misma de forma cifrada:

IE Cookies ARRAffinity

Sin embargo, hay situaciones en las que no queremos que este comportamiento sea el establecido para nuestro sitio web. Para poder deshabilitarlo, la manera más sencilla es modificar el archivo web.config de la aplicación y añadir la siguiente cabecera:

  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Arr-Disable-Session-Affinity" value="true"/>
      </customHeaders>
    </httpProtocol>
  </system.webServer>

Para comprobar que la configuración ha funcionado correctamente, basta con cerrar el navegador y volver a entrar de nuevo al sitio. La cookie ARRAffinity y la cabecera Arr-Disable-Session-Affinity desaparecerán de las peticiones, haciendo uso del balanceo de carga a partir de ahora.

Espero que sea de utilidad.

¡Buen finde!

Wirecast 6 & Microsoft Azure Media Services

Telestream-Wirecast-logo

En este mes de Noviembre se publicó en MSDN cómo trabajar con Wirecast y el servicio de Live Streaming de Azure Media Services. Con la nueva versión Wirecast 6, nos han facilitado mucho más el trabajo ofreciendo la opción “Microsoft Azure Media Services” a través del apartado Output Settings…

Wirecast Output settings

Ahora basta con elegir como destino Microsoft Azure Media Services entre las opciones:

Wirecast Select an Output Destination

Y modificar la URL de ingesta por la que nos facilita la plataforma cuando creamos un canal:

Azure Media Services Ingest URL

Happy streaming!