[FFmpeg-user] Unresolved concatenation and subtitle problems

Nicolas Gaullier nicolas.gaullier at cji.paris
Thu Dec 28 14:47:53 EET 2023


> When ffmpeg's '-vf showinfo' and ffprobe's '-show_streams' disagree, which should I trust?

You should usually trust both, but their meanings are different.
showinfo is a filter, so apply to a running filter graph, I don't think this information could be very helpful for your use case.
show_streams will give you some start_time/duration using the same core components (avformat_find_stream_info) as the concat demuxer, which actually can help.
Another option is to use a kind of "plain raw dump" and guess start_time/duration by yourself. This can be achieved with an ffmpeg -copyts -c copy -f framecrc -
Note that in some cases, it might happen that the real "first pts" comes before the ff reported start_time. And in that case, you will see mpv (based on ff) play your file at a point that is earlier than the start_time reported by ff.
So, be careful, these start_time/duration things are often much trickier than they look like.

It seems you want to join segments without reencoding.
First, you have to take care of the available features of your output muxer : an mp4 is more powerful to handle stream discontinuities than an mpegts format.
And there are two things to consider:
- "timestamp joining" : care about start/end points; but also, if your input audio/video is not aligned/locked (any usual compressed audio codec), you will have to reencode audio at least if you want to avoid a hole (or overlap) in the timeline.
- keyframes : open-gop is not editable with a straight stream copy if you don't allow some overlap; and you would certainly experience some difficulties to handle this overlap in a muxer

So many things, very dependent on your exact files and workflow.
At the end, if you encounter an issue, try to reproduce it on short segments to document a case in trac, with a very exhaustive report and corresponding media samples.

Nicolas


More information about the ffmpeg-user mailing list