使用pydub导出时出错 - 如何为pydub安装mp3编解码器?

时间:2013-12-07 16:45:34

标签: python ffmpeg export mp3 pydub

我第一次使用这个库,所以我不确定这是一个错误还是我没有正确地做某事。

我想将文件导出为mp3,加载效果很好:

wav=AudioSegment.from_wav(Path)  #If I execute only this line, there are no errors.

但是当我尝试将我的文件导出到mp3时:

wav.export(r"WavOut.mp3",format="mp3")

它会抛出以下错误:

WindowsError:[错误2]系统找不到指定的文件

完整错误报告:http://pastebin.com/3CpZBkEK

我相信我使用了正确的语法。 它创建了mp3输出文件,但绝对是空的,并且输入路径是正确的,因为:

os.startfile(Path) #Will work

另外,我在windows路径中注册了ffmpeg:

;c:\ffmpeg\bin   #It is currently callable from any cmd prompt in windows.

什么可能失败?谢谢!


经过更多测试,我发现了它的编码问题。如果我将输出设置为“wav”就可以了。但我真的不知道我应该如何安装一个mp3编码器才能使用pydub,所以我改变了问题,因为它是真正的问题。安装ffmpeg所以我不知道还能做什么:\

1 个答案:

答案 0 :(得分:5)

我认为它无法找到ffmpeg二进制文件。 Python内置了wave支持,因此pydub不需要ffmpeg来打开/关闭/修改wave文件。

尝试在使用之前指定ffmpeg二进制文件的位置:

from pydub import AudioSegment
AudioSegment.converter = "c:\ffmpeg\bin\ffmpeg.exe"

wav = AudioSegment.from_wav(Path)  #If I execute only this line, there are no errors.
wav.export(r"WavOut.mp3",format="mp3")

修改:我们已将更改属性的名称从AudioSegment.ffmpeg更改为AudioSegment.converter,因为我们现在同时支持ffmpeg和avconv。

请在分配到此属性之前检查您的版本使用的版本(从0.9.0版本开始,它是“转换器”)