我有一个目录,其中包含一堆 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
设置 和 解码的比特率mp3
,ogg
并且可以调整(比特率以位/秒为单位测量,因此320kbit/s
等于320000
)。
答案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
这将使用您的所有核心。