Three concat methods, three different tradeoffs
Joining clips in FFmpeg has three documented methods. They are not interchangeable.
- concat demuxer (file-list) — fastest. Requires identical codecs/parameters across all inputs. Stream-copy compatible.
- concat protocol (
concat:) — works only with MPEG-TS or other 'cat-able' streams. Use for joining segments from-f segment. - concat filter — slowest, most flexible. Re-encodes everything. Handles different resolutions/codecs/frame rates by normalizing them in a filtergraph.
The 80% case: concat demuxer
If your clips came from the same camera/encoder, the concat demuxer is the right tool. Make a text file listing the inputs, point FFmpeg at it.