Hori Blog

フリーランスでバックエンドエンジニアとして活動している Ryota Hori のブログです。
最近はテック系記事より雑記ブログ気味。

FFmpegでMP4を結合(concat)するワンライナー

FFmpeg で MP4 を結合(concat)するワンライナー。

少ない元ファイルの FFmpeg concat

ffmpeg -i "concat:1.mp4|2.mp4|3.mp4" -c copy dst.mp4

大量の元ファイルの FFmpeg concat

ffmpeg -f concat -safe 0 -i <(for f in src/*.mp4; do echo "file '$PWD/$f'"; done) -codec copy dst.mp4

src/ 以下に結合したい MP4 ファイルを置いて、 dst.mp4 として出力。

-codec copy の指定でトランスコードせずにそのまま出力しているので、出力を MP4 以外にする時や、コーデックを変更するときは外して別オプションを指定。

この書き方だと src/**/*.mp4 みたいに入れ子をまとめられないので、必要なら ls src/**/*.mp4 | xargs -I{} mv {} src/ でまとめると楽。