我第一次使用这个库,所以我不确定这是一个错误还是我没有正确地做某事。
我想将文件导出为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所以我不知道还能做什么:\
答案 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版本开始,它是“转换器”)