プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2021/10/28

ffmpeg で mp4 ファイルを結合する

event_note2021/10/28 4:46

たくさんの 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