コマンドラインまたはバッチスクリプトを使用してffmpegでディレクトリ/フォルダー全体を変換するにはどうすればよいですか?
31 に答える
LinuxおよびmacOSの場合、これは 1 行で実行できます。パラメーター展開を使用して、出力ファイルのファイル名拡張子を変更します。
for i in *.avi; do ffmpeg -i "$i" "${i%.*}.mp4"; done
前の回答では、out.movという出力ファイルが1つだけ作成されます。古いムービーごとに個別の出力ファイルを作成するには、これを試してください。
for i in *.avi;
do name=`echo "$i" | cut -d'.' -f1`
echo "$name"
ffmpeg -i "$i" "${name}.mov"
done
Windows の場合:
FOR /F "tokens=*" %G IN ('dir /b *.flac') DO ffmpeg -i "%G" -acodec mp3 "%~nG.mp3"
1行のbashスクリプトは簡単に実行できます-*.avi
ファイルタイプに置き換えてください:
for i in *.avi; do ffmpeg -i "$i" -qscale 0 "$(basename "$i" .avi)".mov ; done
ffmpeg を使用して何かをバッチ変換したいが、便利な Windows インターフェイスが必要な人のために、次のフロントエンドを開発しました。
https://sourceforge.net/projects/ffmpeg-batch
ウィンドウ ファッション インターフェイス、プログレス バー、残り時間情報、ffmpeg を使用するときに私がいつも見逃していた機能を ffmpeg に追加します。
Bash は私にはひどいので、Linux/Mac では Ruby スクリプトを好みます。
(フォルダ内のすべてのファイルを見つけて、フォーマットからrmvb/rm
フォーマットに変換しmp4
ます)
# filename: run.rb
Dir['*'].each{ |rm_file|
next if rm_file.split('.').last == 'rb'
command = "ffmpeg -i '#{rm_file}' -c:v h264 -c:a aac '#{rm_file.split('.')[0]}.mp4'"
puts "== command: #{command}"
`#{command}`
}
そして、あなたはそれを実行することができます: ruby run.rb
ffmpegX でバッチ処理するグラフィカル インターフェイスが必要な場合は、 Quick Batcherを試してください。無料で、最後の ffmpegX 設定を使用して、ドロップしたファイルを変換します。
フォルダーを Quick Batcher にドラッグ アンド ドロップすることはできないことに注意してください。ファイルを選択して、Quick Batcher に入れます。
fd
コマンド ( repository )を使用した代替アプローチ:
cd directory
fd -d 1 mp3 -x ffmpeg -i {} {.}.wav
-d
深さを意味します
-x
実行することを意味します
{.}
ファイル拡張子なしのパス