ffmpeg - codifica o fluxo de entrada para arquivo com taxa de quadros superior

1

depois de muita pesquisa e testes, ainda não consigo alcançar a taxa de quadros de saída desejada ao pegar um fluxo de entrada e codificá-lo para um arquivo de saída mais rápido.

Meu fluxo de entrada (HTTP, MJPEG de uma câmera) está definido como 1 fps. O ffmpeg deve pegar as imagens em stream e codificá-las como x264 para um arquivo, armazenado / reproduzido a 25 ou mais fps, sem que quadros sejam descartados ou duplicados. Até agora, o melhor que consegui alcançar foi:

ffmpeg -re -i input_stream -codec libx264 -an -r 25 output_file

Isso me dá um arquivo de saída de 25 fps sem quadros derrubados ou duplicados. Surpreendentemente, a seguinte configuração -r acima não funciona como esperado:

ffmpeg -re -i input_stream -codec libx264 -an -r 50 output_file

O arquivo criado é de 50 fps, mas cada quadro é duplicado, então a velocidade de reprodução real é a mesma que a anterior. Por que esse é o caso?

Basicamente, qualquer outro valor -r que 25 dá resultados estranhos (quadros duplicados ou descartados). Suspeito que a entrada -re é a causa, mas não consigo substituí-la por -r 1 e manipulo o framerate de saída usando -r ou setpts com sucesso. Por isso, agradeço muito qualquer ajuda.

    
por EQWorry 15.10.2017 / 23:17

0 respostas