コマンドライン経由またはバッチスクリプトを使用してffmpegでディレクトリ/フォルダ全体をどのように変換しますか?
前の回答では、out.movという1つの出力ファイルのみが作成されます。古いムービーごとに個別の出力ファイルを作成するには、これを試してください。
for i in *.avi;
do name=`echo "$i" | cut -d'.' -f1`
echo "$name"
ffmpeg -i "$i" "${name}.mov"
done
LinuxおよびmacOSの場合、これは-を使用して1行で実行できます。 パラメータ拡張 出力ファイルのファイル名拡張子を変更するには:
for i in *.avi; do ffmpeg -i "$i" "${i%.*}.mp4"; 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
サブディレクトリで変換するには、例えば.
find . -exec ffmpeg -i {} {}.mp3 \;
Ffmpegで何かをバッチ変換したいが、便利なWindowsインターフェイスを持ちたい人のために、私はこのフロントエンドを開発しました:
https://sourceforge.net/projects/ffmpeg-batch
Ffmpegにウィンドウファッションインターフェイス、プログレスバー、残り時間情報、ffmpegを使用するときに常に見逃していた機能を追加します。
GNU parallel がある場合、vid_dir
以下のすべての.aviファイルをmp4に並列に変換できます。
find vid_dir -type f -name '*.avi' -not -empty -print0 |
parallel -0 -j -1 ffmpeg -loglevel fatal -i {} {.}.mp4
さまざまな形式から/に変換するには、必要に応じて'*.avi'
または.mp4
を変更します。 GNU parallelは、通常parallel
と呼ばれるパッケージのほとんどのLinuxディストリビューションのリポジトリにリストされています。
これは冗長かもしれませんが、このスクリプトを使用してファイルをバッチ変換します。
old_extension=$1
new_extension=$2
for i in *."$old_extension";
do ffmpeg -i "$i" "${i%.*}.$new_extension";
done
より柔軟にするために2つの引数が必要です。
エイリアスを作成しますが、次のように手動で使用することもできます。
sh batch_convert.sh mkv mp4
これにより、すべてのmkv
ファイルがmp4
ファイルに変換されます。
ご覧のとおり、わずかに多用途です。 ffmpeg
が変換できる限り、2つの拡張子を指定できます。
ここでコードゴルフに少し似ていますが、これまでのほとんどすべての答えはbash(1つの孤独なcmdを除く)なので、ここにあります 窓 クロスプラットフォーム powershellを使用するコマンド(素晴らしいため):
ls *.avi|%{ ffmpeg -i $_ <ffmpeg options here> $_.name.replace($_.extension, ".mp4")}
* .aviをソース映像に一致するものに変更できます。
Windowsの場合:
ここでは、すべての(.mp4)ファイルを(.mp3)ファイルに変換しています。
cmdを開き、目的のフォルダーに移動してコマンドを入力します。
ショートカット:(オプション)
1。 (.mp4)ファイルが存在するフォルダーに移動します
2。 Shiftキーを押しながら左クリックして、「ここでPowerShellウィンドウを開く」を選択します
または「ここでコマンドプロンプトウィンドウを開く」
3。 「cmd」と入力します[注:PowerShellではなくcmdを直接開く場合は、この手順をスキップしてください]
4。コマンドを実行する
for %i in (*.mp4) do ffmpeg -i "%i" "%~ni.mp3"
グラフィカルインターフェイスでffmpegXを使用してバッチ処理する場合は、 Quick Batcherを試してください。無料で、最後のffmpegX設定を使用して、ドロップしたファイルを変換します。
フォルダーをQuick Batcherにドラッグアンドドロップできないことに注意してください。そのため、ファイルを選択し、Quick Batcherを介して配置します。
窓:
@echo off
for /r %%d in (*.wav) do (
ffmpeg -i "%%~nd%%~xd" -codec:a libmp3lame -c:v copy -qscale:a 2 "%
%~nd.2.mp3"
)
これは品質2の可変ビットレートです。必要に応じて0に設定できますが、本当に優れたスピーカーシステムがない限り、それは価値がありません。
この1つだけが私のために働いた、plsは、ffmpeg.exeファイルが置かれている場所に手動で「newfiles」フォルダーを作成する必要があることに気付きます。
。ファイルを.wavオーディオコードに変換:
for %%a in ("*.*") do ffmpeg.exe -i "%%a" "newfiles\%%~na.wav"
pause
つまり、すべての.mp3ファイルを.wavに変換する場合は、("*.*")
を("*.mp3")
に変更します。
このスクリプトの作成者は次のとおりです。
https://forum.videohelp.com/threads/356314-How-to-batch-convert-multiplex-any-files-with-ffmpeg
それが助けたことを願っていますか????。
まだ提案されていない別の簡単な解決策は、xargs
を使用することです。
ls *.avi | xargs -i -n1 ffmpeg -i {} "{}.mp4"
1つの小さな落とし穴は、出力ファイルの扱いにくい命名です(例:input.avi.mp4
)。これの可能な回避策は次のとおりです。
ls *.avi | xargs -i -n1 bash -c "i={}; ffmpeg -i {} "\${i%.*}.mp4"
"