我想使用 lame 编码器 (lame.exe) 将 wav 文件转换为 mp3。wav 文件按照以下规格录制:
比特率:64kbps
音频样本大小:8 位
频道:1(单声道)
音频采样率:8 千赫
音频格式:CCITT A 法律
如果我尝试使用 lame 转换这样的 wav 文件,我会收到以下错误消息:
Unsupported data format: 0x0006
有人能给我提供一个使用 lame.exe 的命令行字符串,使我能够转换这些类型的 wav 文件吗?
答案1
您想使用 SoX 将 A-law 输入数据转换为更标准的 PCM 数据,以供 LAME 处理。
sox -A -c 1 -r 8000 input.8khz-mono-alaw.wav ouput.wav
现在 output.wav 应该包含标准 PCM WAV 数据。在此上运行 LAME 命令(添加您喜欢的任何选项):
lame output.wav output.mp3
或者,将 SoX 输出直接导入 LAME:
sox -A -c 1 -r 8000 input.8khz-mono-alaw.wav - | lame - output.mp3
答案2
下载并编译 libsndfile 我使用的是 1.0.17 版本,下载 lame 的源代码,然后使用此配置设置
./configure --with-fileio=sndfile
然后
make && make install
现在它可以工作了。
答案3
以下是对我有用的答案:
我使用以下命令转换了 WAV 文件:
sox 文件.wav 文件.cdr
sox -t cdr 文件.cdr -t wav - | lame -b 32 -m mono - 文件.mp3
这些命令使用我的 WAV 文件生成 32 kbit/s、22050 Hz 单声道格式的 MP3 文件。lame 命令的参数经过自定义,可生成与上一篇文章中提到的命令生成的文件类似的文件:
sox 文件.wav 文件.mp3
在我的计算机上执行命令:
sox 文件.wav 文件.mp3
在 23 分钟内转换 WAV 文件,生成 130 MB 的 MP3 文件。
和命令:
sox 文件.wav 文件.cdr sox -t cdr 文件.cdr -t wav - | lame -b 32 -m mono - 文件.mp3
在 39 分钟内转换 WAV 文件,生成 131 MB 的 MP3 文件。
第一种方法更快,但需要修补 sox。