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.