ffmpeg - кодирует входной поток в файл с более высокой частотой кадров

368
EQWorry

после долгих исследований и испытаний я все еще не могу достичь желаемой выходной частоты кадров при захвате входного потока и кодировании его в ускоренный выходной файл.

Мой поток ввода (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 успешно . Поэтому я был бы очень признателен за любую помощь.

1
Поделитесь полным журналом. Gyan 6 лет назад 0

0 ответов на вопрос

Похожие вопросы