FFmpeg provides a routine to
concatenate media files.
Unfortunately, the UI for that routine is so bad that even ffmpeg
provides multiple, platform-specific techniques to generate the input.
jaraco.media.compat
, in contrast, takes a number of input files
and optionally an output file and input filter, creates the input file
in its required syntax and then runs ffmpeg against that file. Example:
$ python -m jaraco.media.concat /Volumes/drone/DCIM/100MEDIA/DJI_*.MP4 -i '(17|18|19)' -o /Volumes/Public/Flights/2022-02-20.mp4
Concatenate SRT files, updating the offsets based on the durations of their associated media files. Example:
$ python -m jaraco.media.srt-concat /Volumes/Drone/DCIM/100MEDIA/DJI_00*.SRT -i '(17|18|19)' -o /Volumes/Public/Flights/2022-02-20.srt
Extract timestamps from a video.
$ python -m jaraco.media.splice infile.mp4 outfile.mp4 00:00:00-01:32:46 01:47:20-01:49:17
If you see "libaacs not initialized!" or "aacs_open() failed", remember that you have to re-register with the latest beta key each month.
See this blog for details.