我有几百个 .wav 文件需要转换为 ogg 和 mp3 格式。有没有办法通过 Audacity 或其他命令行工具批量执行此操作?
答案1
从类 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
这会将目录中的每个 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
要递归转换目录中的每个 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}' '{}' \;
(非常感谢 Dennis 的回复这里帮我找到一个使用 ffmpeg 实现 find 的可行实现)
对于使用 find 进行不区分大小写的搜索,请使用-iname
而不是-name
。
注意事项-q:a
:对于 MP3,质量范围是 0-9,其中 0 为最佳质量,2 对于大多数人来说足以转换 CD 音频;对于 OGG,质量范围是 1-10,其中 10 为最佳质量,5 对于大多数人来说相当于 CD 质量。
答案2
你可以使用foobar2000带有 ogg 和 mp3 编码器。我相信你可以在稀有器皿。
答案3
答案4
我对在 SO 上找到的一个 bat 文件做了一些更改,现在它可以处理文件名中的空格,因为歌曲名称中经常会出现空格。这个 bat 文件使用 VLC 命令行工具将 .wav 转换为 .mp3。但您可以更改为 wma --> mp3 等格式...
@echo off
chcp 65001
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "delims=" %%f IN ('dir /b /s "YOUR_DISK:\Path\To\Your Music\That May contain Spaces\*.wav"') do (
set file1=%%~nf.mp3
echo "file :" !file1!
set fic1=%%f
echo "file : " !fic1!
CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" "!fic1!" --sout="#transcode{vcodec=none,acodec=mp3,ab=320,channels=2,samplerate=48000}:std{access=file{no-overwrite},mux=mp3,dst="""!file1!"""}" vlc://quit
)
echo .
echo conversion finished
pause
chcp 改变编码(处理重音字符)。ab 是这里的比特率 320