一括処理
同じ変換を大量のファイルにかけるなら、シェルのループや 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スクリプトを参照。