FFmpeg version 2.7.2 (09.08.2015)
OS X 10.10.5 (14F27)
Mac Pro (Late 2013)

We have 6 videos from FCP, exported as ProRes files, that need to be 
concatenated.
Step one was to first encode each of the videos into H.264:

[code]/Users/robodean/Desktop/ffmpeg/ffmpeg -i ch01b_t-m-pack.mov -map 0:0 -map 
0:1 -c:a aac -cutoff 15000 -ab 320k -strict -2 -async 1 -c:v libx264 -crf 20 -r 
23.98 -s 960x540 -aspect 16:9 -pix_fmt yuv420p -profile:v high -partitions 
partb8x8+partp4x4+partp8x8+parti8x8 -b-pyramid 1 -weightb 1 -8x8dct 1 
-fast-pskip 1 -coder ac -trellis 1 -me_method hex -flags +loop -sws_flags 
fast_bilinear -direct-pred 1 -sc_threshold 40 -qmin 3 -qmax 51 -qdiff 4 
-threads 12 -sn -y ch01b_t-m-pack.mp4
[/code]

But when we concatenated the files using ffmpeg and compared it to a reference 
concatenation exported from FCP, we found that there were numerous "offsets" in 
the in points of the videos in the final output.

Curious, I decided to try re-encoding all the ProRes files using Apple 
Compressor.
And this time, when I used ffmpeg to concatenate these new videos from 
Compressor, the resulting concatenation was perfect. 

In other words, when concatenating a series of video encoded with ffmpeg the 
result has offsets and an incorrect overall duration. But when performing the 
same concatenation with videos encoded by Apple Compressor the results were 
perfect. 

The dilemma is that we find the visual results of ffmpeg h.264 encoding vastly 
superior and have no desire to use Apple Compressor. 

I decided then to see how the encoded files were different; clearly the error 
is being caused by the videos as they are being fed into the concatenation and 
not the concatenation itself. 

So I probed the resulting H.264 videos from Compressor and ffmpeg and 
discovered this:

From the original ProRes video:
[code] Duration: 00:00:41.00, start: 0.000000, bitrate: 130238 kb/s
    Stream #0:0(und), 1, 1/24000: Video: prores (ap4h / 0x68347061), 
yuva444p10le(bt709), 1280x720, 127850 kb/s, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 
tbr, 24k tbn, 24k tbc (default)
[/code]

From the Apple Compressor encoded video:
[code]  timecode        : 00:00:00:00
  Duration: 00:00:41.00, start: 0.000000, bitrate: 1100 kb/s
    Stream #0:0(eng), 1, 1/24000: Video: h264 (Main) (avc1 / 0x31637661), 
yuv420p(tv, bt709), 960x540, 967 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 48k tbc 
(default)
[/code]

From the ffmpeg encoded video
[code]Duration: 00:00:41.02, start: 0.021333, bitrate: 953 kb/s
    Stream #0:0(und), 2, 1/11988: Video: h264 (High) (avc1 / 0x31637661), 
yuv420p, 960x540 [SAR 1:1 DAR 16:9], 627 kb/s, 23.98 fps, 23.98 tbr, 11988 tbn, 
47.95 tbc (default)
[/code]

From this it would appear that each of the videos encoded by ffmpeg had the 
wrong duration and start values, which resulted in the offsets in the final 
concatenated video. All the videos encoded by Apple Compressor resulted in same 
duration and start times as the original ProRes files and therefore 
concatenated correctly. 

Looking for any help on how to correctly encode with ffmpeg so that the 
resulting files match perfectly to the originals in terms of duration, start 
and framerate. 

Thanks
_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

Reply via email to