Como garantir transcodificações ffmpeg com velocidade acima de 1x

Como garantir transcodificações ffmpeg com velocidade acima de 1x

Estou tentando transmitir TV usando hls. Minha configuração é ffmpeg e nginx (com módulo nginx-tx para streaming hls). Estou usando o comando abaixo para dimensionar o vídeo para uma altura de 320 e aprimorá-lo usando valores padrão. Estou usando o comando abaixo.

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>

A questão é que este comando me dá velocidades diferentes. Inicialmente, ele começa alto, por exemplo, 5x e depois desacelera para 0,6x. Quando eu reinicio depois de algum tempo, ele começava alto e depois desacelerava, mas permanecia acima de 1x. Então, como posso garantir que a velocidade estará sempre acima de 1x?

Se a velocidade ficar abaixo de 1x, minha transmissão ao vivo não funciona muito bem, os videojs que uso no navegador continuam em buffer.

Editar: devo dizer também que, como estou transmitindo 3 canais diferentes, tenho 3 instâncias do ffmpeg em execução. O primeiro está ok, sempre acima de 1x. Mas é nestes últimos que tenho problemas com comportamento não determinístico (às vezes> 1x, outros <1x em velocidade)

Alguma ideia?

informação relacionada