たくさんの mp4 ファイルを結合したかったので、ffmpeg を使って結合しました。
やり方としては、まず以下のように結合ファイルの一覧を記述したテキストファイルを用意します。
ここでは filelist.txt
というファイル名で作成しました。
file '001.mp4'
file '002.mp4'
file '003.mp4'
そして、以下のようにコマンドを実行すれば結合できます。
ffmpeg -f concat -i filelist.txt -c copy sample.mp4
しかし、動画ファイルがたくさんある場合など、filelist.txt
を手動で作るのが大変なことがあったので、以下のようなスクリプトを作成しました。
ディレクトリ内を再帰的に探索し、ファイル名順で結合します。
#!/bin/bash
cd `dirname $0`
DIR=hoge
FILELIST=filelist.txt
OUTPUT=sample.mp4
for pathfile in `\find $DIR -name '*.mp4' | sort`; do
echo file \'$pathfile\' >> $FILELIST
done
ffmpeg -f concat -i $FILELIST -c copy $OUTPUT
rm $FILELIST