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

2024-01-07

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

我想将文件导出为 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 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 已安装,所以我不知道还能做什么:\


我认为它无法找到 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")

edit:我们已更改了该属性的名称AudioSegment.ffmpeg to AudioSegment.converter因为我们现在支持 ffmpeg 和 avconv。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pydub 导出时出错 - 如何为 pydub 安装 mp3 编解码器? 的相关文章

随机推荐