Cómo garantizar transcodificaciones ffmpeg con una velocidad superior a 1x

Cómo garantizar transcodificaciones ffmpeg con una velocidad superior a 1x

Estoy intentando transmitir televisión usando hls. Mi configuración es ffmpeg y nginx (con módulo nginx-tx para transmisión hls). Estoy usando el siguiente comando para escalar el video a una altura de 320 y afinarlo usando los valores predeterminados. Estoy usando el siguiente comando.

ffmpeg -report -f mpegts -i <input> -vf "scale=trunc(oh*a/2)*2:320,unsharp=lx=3:ly=3:la=1.0" -vcodec libx264 -crf 24 -preset medium -acodec aac -b:a 50k -f mpegts <output>

El tema es que este comando me da diferentes velocidades. Inicialmente comienza alto, por ejemplo, 5x y luego disminuye a 0,6x. Cuando lo reinicio después de un tiempo, comienza alto y luego disminuye, pero permanece por encima de 1x. Entonces, ¿cómo me aseguro de que la velocidad siempre esté por encima de 1x?

Si la velocidad es inferior a 1x, mi transmisión en vivo no funciona tan bien y los videojs que uso en el navegador siguen almacenándose en el búfer.

Editar: También debo decir que como estoy transmitiendo 3 canales diferentes, tengo 3 instancias de ffmpeg ejecutándose. El primero está bien, siempre por encima de 1x. Pero en estos últimos es donde tengo problemas con el comportamiento no determinista (a veces >1x, otras <1x en velocidad)

¿Algunas ideas?

información relacionada