🎬 FFmpeg個人リファレンス

一括処理

同じ変換を大量のファイルにかけるなら、シェルのループや find でまとめて処理します。 元ファイルを残す・出力先を分ける、といった事故防止も大切です。

同じフォルダ内をまとめて変換

# カレントの全wavをmp3へ変換
for f in *.wav; do
  ffmpeg -i "$f" -b:a 192k "${f%.wav}.mp3"
done

サブフォルダまで再帰的に処理

# サブフォルダも含めて全movをmp4へ(findで再帰)
find . -name '*.mov' -exec sh -c 'ffmpeg -i "$1" -c:v libx264 -crf 20 -c:a aac "${1%.*}.mp4"' _ {} \;
注意
一括処理は元ファイルを壊すと取り返しがつきません。まず数件で試し、出力先を別フォルダにするのが安全です。

出力先フォルダを分ける

# outフォルダを作ってそこに出力(元を上書きしない)
mkdir -p out
for f in *.mp4; do
  ffmpeg -i "$f" -vf "scale=-2:720" "out/$f"
done

並列処理で高速化(GNU parallel)

CPUコアを活かして同時実行できます(parallel の別途インストールが必要)。

# GNU parallel で並列処理(高速化)
ls *.wav | parallel ffmpeg -i {} -b:a 192k {.}.mp3

処理内容をスクリプト化するならBashスクリプトを参照。