Premiere에서 MP4 누락 프레임을 수정하는 ffmpeg 플래그는 무엇입니까? with colour correction 그러나 Adobe Premiere

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

그러나 Adobe Premiere Pro에서이 MP4를 열면 처음 두 프레임이 누락 된 것으로 나타납니다 (처음 두 프레임에 액세스 할 수없고 세 번째 프레임에 액세스 할 수 있으며 총 프레임 수는 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

(우리는 다른 요구 사항에 맞게 작동하는 것을 조정하고 있습니다.)



답변

몇 가지 시나리오를 테스트 한 결과 책임이있는 여러 B- 프레임이 존재합니다. 스토리지의 프리젠 테이션 순서와 Adobe H264 비트 스트림 파서의 새로운 버그로 인해이 문제가 발생합니다.

따라서 -x264opts bframes=1(또는 0)를 추가하면 해결됩니다. Vegas와 같은 NLE를 포함한 다른 앱은이 옵션없이 MP4를 읽을 수 있기 때문에 FFmpeg, AFAICT에서는 문제가되지 않습니다. 링크에 따라 이전 버전의 Adobe CC도 마찬가지입니다.

편집 : -x264opts b_pyramid=0직접적인 해결책 인 것 같습니다.