ffmpeg で動画を連結 三連弾2021年11月19日 09時32分28秒

ffmep で動画を連結しようとしたが、あれこれエラーが出て戸惑った。 How to concatenate two MP4 files using FFmpeg? が良くまとまっていた。

concat video filter

これは、動画の大きさやフォーマットなどが異なっている時に使う。これはエンコードをやり直すので若干重め。
% ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv \
-filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a] \
concat=n=3:v=1:a=1 [v] [a]" \
-map "[v]" -map "[a]" output.mkv

concat demuxer

大きさとフォーマットが同じ場合はこちらの方が高速。。
% cat mylist.txt
file /path/to/file1
file /path/to/file2
file /path/to/file3
    
% ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4

concat protocol

こちらは、ファイルごと連結できるフォーマットに限る。MPEG-1、MPEG-2 PS、DV 等があるが、MP4 等のほとんどのフォーマットでは使えない。
% ffmpeg -i "concat:input1|input2" -codec copy output.mkv