adbird(広告鳥) 備忘録

ffmpegで複数の動画をワンライナーで結合

ffmpegのバージョンが上がって、以前書いた方法だとできなくなっていたので、新しく修正。

任意のフォルダ内に結合したい動画(001.mp4、002.mp4というように必ず連番で)を入れて、そのフォルダ内で端末を開いて、以下を実行。

for f in *.mp4; do echo "file '$f'" >> mylist.txt; done && ffmpeg -f concat -i mylist.txt -c copy output.mp4 && rm mylist.txt

  • インデックスファイルを作る。
  • 動画結合。
  • インデックスファイルを削除。

のコマンドをつなげただけ。

参照 wiki:Concatenate

複数の動画を再エンコードせずに結合する方法をググると、インデックスファイルを作ってから…という情報が出てくるのだけど、いちいちインデックスファイルは作りたくないので、調べてみたら、以下の方法でできた。

$ ffmpeg -i "concat:imput001.mp4|input002.mp4|input003.mp4" -c copy output.mp4

参照 How to concatenate two .aac files with the ffmpeg?