после долгих исследований и испытаний я все еще не могу достичь желаемой выходной частоты кадров при захвате входного потока и кодировании его в ускоренный выходной файл.
Мой поток ввода (HTTP, MJPEG с камеры) установлен на 1 кадр / с. ffmpeg должен захватывать потоковые изображения и кодировать их как видео x264 в файл, сохраняемый / воспроизводимый со скоростью 25 или более кадров в секунду, без пропущенных или дублированных кадров. На данный момент лучшее, что я мог достичь, это:
ffmpeg -re -i input_stream -codec libx264 -an -r 25 output_file
Это дает мне выходной файл со скоростью 25 кадров в секунду без пропущенных или дублированных кадров. Удивительно, но следующая более высокая -r не работает должным образом:
ffmpeg -re -i input_stream -codec libx264 -an -r 50 output_file
Созданный файл составляет 50 кадров в секунду, но каждый кадр дублируется, поэтому фактическая скорость воспроизведения такая же, как указано выше. Почему это так?
По сути, любое другое значение -r, отличное от 25, дает странные результаты (дублированные или пропущенные кадры). Я подозреваю, что причиной является input -re , но я не могу заменить его на -r 1 и манипулировать частотой кадров на выходе, используя -r или setpts успешно . Поэтому я был бы очень признателен за любую помощь.