Para mis amigos que dicen que solo voy a pasear y no trabajo cuando viajo 😛
Para mis amigos que dicen que solo voy a pasear y no trabajo cuando viajo 😛
Azure Media Services tiene la capacidad de hacer live streaming como se explica en este link. En este post vamos a utilizar FFmpeg para capturar, codificar e inyectar una señal RTMP en un Channel de Media Services.
Como parte del proceso de creación debemos dar un nombre, descripción y tipo de codificación al canal. En nuestro caso, no usaremos codificación en Azure ya que FFmpeg la realizará localmente por lo que seleccionamos Encodig Type none.
El siguiente paso nos pregunta qué tipo de protocolo utilizaremos para la ingestión de la señal. Usaremos RTMP, el más popular.
Por último, vamos a configurar restricciones de acceso al canal. En nuestro caso como es una demo no aplicaremos restricciones pero en un ambiente productivo se debe proteger el canal para que no se pueda enviar señal desde cualquier origen.
Lo primero en conocer la URL de ingestión, la cual podemos leerlas desde el portal.
Para ejecutar FFmpeg utilizaremos el script livebrodcast.bat , que se describe a continuación
set ffmpeg=.\ffmpeg-20150109-git-d1c6b7b-win64-static\bin\ffmpeg
set videoDevice=Integrated Camera
set audioDevice=Microphone (Realtek High Definition Audio)
set ingestURL=rtmp://demoffmpeg-mediabutlerdev.channel.mediaservices.windows.net:1935/live/1c11bbadd489450bb03655cb50390b39
set streamName=mystream1
%ffmpeg% -v verbose -rtbufsize 2100M -f dshow -i video=»%videoDevice%»:audio=»%audioDevice%» -strict -2 -c:a aac -b:a 128k -ar 44100 -r 30 -g 60 -keyint_min 60 -b:v 400000 -c:v libx264 -preset medium -bufsize 400k -maxrate 400k -pix_fmt yuv420p -f flv %ingestURL%/%streamName%
En este script se debe especificar el dispositivo de video y audio a utilizar en la captura así como la URL de ingestión.
Al ejecutarlo veremos una salida por pantalla como la siguiente, donde vemos las estadísticas de la trasmisión en la última línea por ejemplo fps 43.
Para revisar el retardo de la señal, se puede utilizar un reloj y ver la diferencia de tiempo entre el reloj y la señal online.
Este retardo es el tiempo total que acumula la captura de la señal, la codificación, la ingestión en el canal, el procesamiento del canal y DVR, más la latencia para consumir la señal desde la nube nuevamente.
Azure Media Services ha simplificado los requerimientos de un escenario para realizar Live Streaming al punto que con un device que envié RTMP ya puedes hacer trasmitir utilizando esta solución de nube.
Es muy sencillo utilizar un software en el punto de captura y completar la cadena para hacer trasmisiones en vivo.