ffmpeg Дублирующие фреймы

Очень досадная ситуация...
У меня есть видео MPG2 с частотой кадров 29,97, но при конвертации в MP4 кадры дублируются.

Эта команда (прямое преобразование, без параметров):
ffmpeg -i ~/Desktop/file.mpg ~/Desktop/file.mp4
вызывает дублированные кадры...

При настройке частоты кадров с помощью:
ffmpeg -i ~/Desktop/file.mpg -framerate 29.97 ~/Desktop/file.mp4
Тоже не работает!

Приводит меня попробовать:
ffmpeg -i ~/Desktop/file.mpg -r 29.97 ~/Desktop/file.mp4
Все еще с дублированными кадрами!

Наконец я попробовал третий вариант ffmpeg:
ffmpeg -i ~/Desktop/file.mpg -vf fps=fps=29.97 ~/Desktop/file.mp4

За исключением того, что при выводе аудио / видео было не синхронизировано!

Какой вариант FPS я должен использовать?

2 ответа

Использование

ffmpeg -i ~/Desktop/file.mpg -vsync 0 ~/Desktop/file.mp4

Это пропускает дублирование.

-vsyncсейчас устарел, поэтому вам следует использовать-fps_modeвместо.

По умолчаниюfps_modeявляетсяauto, поэтому он может автоматически изменить ваш fps. Например, исходный источник имеет переменную частоту кадров, но ffmpeg может решить автоматически изменить его на постоянную частоту кадров, что может привести к дублированию и пропуску кадров.

Чтобы предотвратить изменение частоты кадров, установите-fps_mode passthrough. (Это то же самое, что-vsync 0или-vsync passthrough).

Дополнительную информацию см. в документации ffmpeg .

      ffmpeg -i ~/Desktop/file.mpg -fps_mode passthrough ~/Desktop/file.mp4
Другие вопросы по тегам