I have nearly 130 files that I want to burn onto a DVD as an end result. I've gone down a bit of a rabbit hole and ended up at ffmpeg trying to combine all the files into a single giant 2 and a half hour mp4 that I can then use avidemux to burn onto a DVD. Note that combined, the videos are 4.13GB.
If there already is an easier method to this, I would absolutely love to hear it.
I started off by trying
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4
But this gave a ton of Non-monotonous DTS in output stream
errors. I figured (after extensive googling in a topic I am not familiar with), the encodings are not the same causing some kind of desync. I resolved to re-encode them all into a standard format and then concat them.
ffmpeg -f concat -safe 0 -i mylist.txt -c:v libx264 -crf 18 -preset superfast -c:a copy output.mp4
The video still has video/audio sync errors. I reduced mylist.txt
to be about 10 or so videos just so I don't have to wait so long. The resulting log can be viewed in full here.
The main points I assume the errors are coming from are lines such as;
...
...
frame= 2340 fps= 69 q=21.0 size= 194048kB time=00:01:18.22 bitrate=20320.3kbits/s speed=2.29x
frame= 2375 fps= 69 q=19.0 size= 196864kB time=00:01:19.23 bitrate=20354.3kbits/s speed=2.29x
[mp4 @ 000000000060f760] Non-monotonous DTS in output stream 0:1; previous: 3831808, current: 3520405; changing to 3831809. This may result in incorrect timestamps in the output file.
[concat @ 00000000006084c0] DTS 1226511 < 7174903 out of order
[h264 @ 0000000000559960] Invalid NAL unit 1, skipping.
Last message repeated 1 times
[h264 @ 0000000000559960] no frame!
[mp4 @ 000000000060f760] Non-monotonous DTS in output stream 0:1; previous: 3831809, current: 3521429; changing to 3831810. This may result in incorrect timestamps in the output file.
[mp4 @ 000000000060f760] Non-monotonous DTS in output stream 0:1; previous: 3831810, current: 3522453; changing to 3831811. This may result in incorrect timestamps in the output file.
[h264 @ 0000000002820480] Invalid NAL unit 1, skipping.
[h264 @ 0000000002820480] no frame!
[mp4 @ 000000000060f760] Non-monotonous DTS in output stream 0:1; previous: 3831811, current: 3523477; changing to 3831812. This may result in incorrect timestamps in the output file.
[h264 @ 0000000002820960] Invalid NAL unit 1, skipping.
[h264 @ 0000000002820960] no frame!
[mp4 @ 000000000060f760] Non-monotonous DTS in output stream 0:1; previous: 3831812, current: 3524501; changing to 3831813. This may result in incorrect timestamps in the output file.
[mp4 @ 000000000060f760] Non-monotonous DTS in output stream 0:1; previous: 3831813, current: 3525525; changing to 3831814. This may result in incorrect timestamps in the output file.
[h264 @ 0000000002820e20] Invalid NAL unit 1, skipping.
[h264 @ 0000000002820e20] no frame!
...
...
There are also a bunch of Past duration 0.998665 too large
errors but I read that's not a big issue.
I'm thinking now to use Vegas Pro and just render all the videos together in the timeline but ffmpeg sounds like the cleanest (and fastest) way. What am I not understanding?