使用 ffmpeg 将音频批量转换(解码)为多种格式

使用 ffmpeg 将音频批量转换(解码)为多种格式

我有一个目录,其中包含一堆 CD 质量(16 位 44100Hz)波形文件。

如何使用 ffmpeg 将它们批量解码为不同的格式(比如 FLAC、OGG 和 MP3)?


更新:这是@StephenHarris 建议的一一命令

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

答案1

ffmpeg接受多种输出格式。设置输入 file.format,-i然后设置输出 file.format:ffmpeg -i input.wav output.ogg output.mp3 output.flac


批量转换:

作为一个简单的衬垫,将每种格式放入一个单独的文件夹:

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

将所有内容解码到一个文件夹中:

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

-b:a 320000设置 和 解码的比特率mp3ogg并且可以调整(比特率以位/秒为单位测量,因此320kbit/s等于320000)。


谢谢https://stackoverflow.com/a/33766147为了参数扩展

答案2

使用 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

这将使用您的所有核心。

相关内容