
Я пытаюсь ввести начальный таймкод в видео, одновременно принудительно устанавливая частоту кадров 29,97, но какую бы частоту кадров я ни ввел (независимо от того, где в скрипте, через -r 29.97), ffmpeg принудительно устанавливает частоту кадров 25 кадров в секунду. Я также пробовал fps=29.97, но, как я понимаю, 'fps=' устарело. Вот команда, которую я запускаю:
ffmpeg -i /INPUT/FILE/SEQUENCE_%04d.jpg -vf -r 29.97 -vcodec prores -profile:v 0 -c:a mp2 -timecode 09:08:52:00 /OUTPUT/FILE.mov
Я перепробовал, кажется, каждую комбинацию этих тегов, и неважно что, я получаю 25 кадров в секунду. Кто-нибудь с этим сталкивался?
Заранее спасибо.
решение1
Ваша команда, даже если она отображается правильно, имеет неправильный синтаксис.
...-vf -r 29.97...
<-- это установка флага частоты кадров в качестве аргумента для параметра видеофильтра. 29.97
Затем он интерпретируется как имя выходного файла.
Другое дело, что последовательность изображений интерпретируется как 25 кадров в секунду (по умолчанию), поэтому даже если ваша команда сработает, на выходе будут дублированные кадры, и работа будет на 16% медленнее.
Вместо этого установите ввод как 29,97 или 30000/1001, если быть точным,
ffmpeg -framerate 30000/1001 -i /INPUT/FILE/SEQUENCE_%04d.jpg -c:v prores -profile:v 0 -c:a mp2 -timecode 09:08:52:00 /OUTPUT/FILE.mov