compilar ffmpeg

FFMPEG | COMANDOS BÁSICOS PARA STREAMING

FFMPEG Y STREAMING PROFESIONAL

En esta entrada vamos a aplicar ffmpeg al streaming que es para lo que he montado el ordenador del que hablamos en el último vídeo y de paso desvelar unas dudas que me han trasladado algunos seguidores.

Para hacer una retransmisión en directo es esencial como siempre digo respetar los formatos de entrada y salida. De esta forma que si entramos con las cámaras a 1080i50 salgamos a todo lo demás a ese formato.

Cuando lanzamos vídeos a las pantallas o proyectores estos suelen aceptar el entrelazado normalmente pero cuando queremos emitir a través de internet a YouTube o cualquier plataforma este formato no es muy amigable y menos para dispositivos móviles. Internet está hecho para el progresivo.

Lo ideal es que todas nuestras fuentes estuvieran en progresivo pero por desgracia la mayoría de cámaras broadcast sacan por su salida de vídeo un entrelazado viejuno que no podemos evitar. Es cierto que cada vez más las cámaras vienen equipadas con sistemas que nos permiten cambiar el formato de salida independientemente de la grabación interna pero por ahora la gran mayoría de cámaras que te encontrarás sacan entrelazado por su HD-SDI y como en muchos bolos tendrás alguna cámara que solo saque entrelazado es más fácil que cámaras viejas y modernas se configuren en entrelazado.

CONVERTIR DE 1080i50 a 108050p

Para hacer esta magia tendremos que recurrir a los filtros que lleva implementado el codificador H264 a través de FFMPEG. En este caso vamos a usar un filtro llayado YADIF que permite convertir de entrelazado a progresivo conservando la suavidad y la fluidez del entrelazado sin guarrear la imagen demasiado calidad. De esta forma tendremos un 1080p50 real en formato con la cadencia correcta y sin saltos extraños.

Las primeras pruebas que realicé me di cuenta que YouTube por ejemplo tiene días en que acepta este formato y días que no, dando algún saltito de vez en cuando. Esto es debido a que YouTube no tiene soporte 50 fps en los directos. Pero en los últimos streamings que he realizado no he tenido ningún problema conservando la fluidez de forma continua durante varias horas y sin saltos.

USANDO FFMPEG

La sintaxis es la siguiente que me gusta usar con ffmpeg es la siguiente.:

ffmpeg origen/source filtros formato salida/destino

STREAMING, DESENTRELAZADO YADIF, COMPRESIÓN NVENC:

ffmpeg -f decklink -i "DeckLink Mini Recorder (1)" -r 50 -vf yadif=1 -c:v h264_nvenc -pix_fmt yuv420p -b:v 6000k -f flv rtmp://tu-dirección-rtmp

DESGLOSADO.:

-f decklink -i "DeckLink Mini Recorder (1)" Fuente de vídeo que queremos emitir. En este caso es una tarjeta capturadora blackmagic.

-r 50 Filtro que fuerza a que se reproduzca el vídeo a 50 fotogramas por segundo.

-vf yadif=1 Filtro Yadif, es el encargado de desentrelazar y mantener la suavidad y la fluidez el entrelazado dentro del nuevo progresivo en este caso 50p

-pix_fmt yuv420p Convierte el vídeo a 4:2:0 ya que en algunos reproductores como QuickTime es necesario ya que no aceptan el muestreo de color más alto.

-b:v 6000k Bitrate a 6000 Kbps

-f flv Contenedor de salida en flv

rtmp://tu-dirección-rtmp Dirección donde quieres enviar tu vídeo.

VÍDEO EXPLICATIVO.: