一連の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
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/s
は320000
と等しくなります) 。
https://stackoverflow.com/a/33766147 に感謝 parameter-expansion
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
これはすべてのコアを使用します。