web-dev-qa-db-ja.com

ffmpegを使用してオーディオを複数の形式にバッチ変換(デコード)する

一連のCD品質(16ビット44100Hz)のWaveファイルを含むディレクトリがあります。

Ffmpegを使用してこれらをさまざまな形式(FLAC、OGG、MP3など)にバッチデコードするにはどうすればよいですか?


pdate: @StephenHarrisが提案するコマンドを1つずつ示します

ffmpeg -i input.wav output.ogg
ffmpeg -i input.wav output.mp3
ffmpeg -i input.wav output.flac
2
nath

ffmpegは複数の出力フォーマットを受け入れます。入力file.formatを-iに設定し、その後に出力file.formatを設定します:ffmpeg -i input.wav output.ogg output.mp3 output.flac


バッチ変換:

個別のフォルダーに各フォーマットを配置する単純な1ライナーとして:

mkdir mp3 ogg flac; for i in *.wav; do ffmpeg -i "$i" -b:a 320000 "./mp3/${i%.*}.mp3" -b:a 320000 "./ogg/${i%.*}.ogg" "./flac/${i%.*}.flac"; done

すべてを1つのフォルダにデコードします:

for i in *.wav; do ffmpeg -i "$i" -b:a 320000 "${i%.*}.mp3" -b:a 320000 "${i%.*}.ogg" "${i%.*}.flac"; done

-b:a 320000は、mp3およびoggのデコードのビットレートを設定し、調整できます(ビットレートはビット/秒で測定されるため、320kbit/s320000と等しくなります) 。


https://stackoverflow.com/a/33766147 に感謝 parameter-expansion

2
nath

GNU Parallelを使用して実行できます:

parallel ffmpeg -i {1} {1.}.{2} ::: *.wav ::: ogg mp3 flac

{1} = replacement string for first input source
{1.} = replacement string for first input source with extension removed
{2} = replacement string for second input source
::: *.wav = input source 1
::: ogg mp3 flac = input source 2

これはすべてのコアを使用します。

2
Ole Tange