evi*_*oup 26
在类 Unix(Linux、OSX 等)命令行中,可以像这样使用 ffmpeg:
for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}"; done
Run Code Online (Sandbox Code Playgroud)
这会将目录中的每个 WAV 转换为一个 MP3 和一个 OGG;请注意,它区分大小写(上述命令将转换每个以 .wav 结尾的文件,但不会转换为 .WAV)。如果你想要一个不区分大小写的版本:
for f in *.{wav,WAV}; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f%.*}.mp3" -c:a libvorbis -q:a 4 "${f%.*}.ogg"; done
Run Code Online (Sandbox Code Playgroud)
要递归转换目录中的每个 WAV(即:当前目录中的每个 WAV,以及当前目录中的所有目录),您可以使用find:
find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}' '{}' \;
Run Code Online (Sandbox Code Playgroud)
(对丹尼斯的回应表示最大的敬意,他在这里为我找到了使用 ffmpeg 的 find 的工作实现)
对于使用 find 进行不区分大小写的搜索,请使用-iname代替-name。
注意-q:a:对于 MP3,质量范围是 0-9,其中 0 是最好的质量,而 2 对于大多数人转换 CD 音频已经足够了;对于OGG,它是1-10,其中10是最好的,5对于大多数人来说相当于CD质量。