Какой флаг ffmpeg исправляет отсутствующие кадры MP4 в Premiere?

1974
d3vid

Мы преобразуем последовательность изображений DPX в видео MP4:

ffmpeg -start_number 101 -i dpx/example.%04d.dpx ./example.mp4 # minimal conversion 

ffmpeg -y -start_number 101 -i dpx/example.%04d.dpx -b12100k -minrate 12100k -maxrate 12100k -bufsize 12100k -vf colormatrix=bt601:bt709 -pix_fmt yuv420 ./example.mp4 # conversion with colour correction 

Однако при открытии этого MP4 в Adobe Premiere Pro, по-видимому, отсутствуют первые два кадра (первые два кадра недоступны, третий кадр доступен, общее количество кадров равно 2). Этот же файл не имеет пропущенных кадров при открытии в других приложениях (Quicktime Player и VLC). Другие видеофайлы не имеют пропущенных кадров при открытии в Premiere.

Следующие преобразования не решают проблему (ссылка 1) (ссылка 2) (ссылка 3 "-timecode") :

ffmpeg -start_number 101 -i dpx/example.%04d.dpx -filter_complex "[0] fps=fps=25" ./example.mp4 # force fps with filter_complex 

ffmpeg -start_number 101 -i dpx/example.%%04d.dpx -timecode 00:00:00:01 ./example.mp4 # force timecode (tried drop and non-drop format) 

Следующее преобразование (унаследованное оптом) работает. Зачем? Какой аргумент решает проблему?

ffmpeg -start_number 101 -i dpx/example.%%04d.dpx -crf 15.0 -y -vcodec libx264 -b:a 128k -b:v 4000 -intra -s 1280x720 -r 25 -ar 48000 -ab 192000 -coder 1 -flags +loop -me_method hex -subq 6 -me_range 16 -g 1 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -threads 0 ./example.mp4 # mystery meat 

(Очевидно, мы настраиваем рабочий, чтобы соответствовать другим нашим требованиям.)

2

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

3
Gyan

Протестировав несколько сценариев, ответственно за присутствие нескольких B-кадров. Эта проблема связана с их последовательностью хранения вне презентации и новой ошибкой в ​​анализаторе битового потока Adobe H264.

Таким образом, добавление -x264opts bframes=1(или 0) решает это. Это не проблема с FFmpeg, AFAICT, поскольку другие приложения, включая NLE, такие как Vegas, могут правильно читать MP4 без этой опции. Даже более старые версии Adobe CC делают, согласно вашим ссылкам.

Редактировать : -x264opts b_pyramid=0выглядит как прямое решение.

некоторые эксперименты показали, что `-g 1` также исправляет проблему, но ваш аргумент` bframes` приводит к загрузке меньшего файла - спасибо! d3vid 7 лет назад 0
`-g 1` означает отсутствие B-кадров и P-кадров, но P-кадры не вызывают проблемы. Gyan 7 лет назад 0

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