首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用pydub导出时出错-如何为pydub安装mp3编解码器?

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

Stack Overflow用户
提问于 2013-12-07 16:45:34
回答 1查看 3K关注 0票数 3

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

我想将一个文件导出到mp3中,加载工作非常完美:

代码语言:javascript
运行
复制
wav=AudioSegment.from_wav(Path)  #If I execute only this line, there are no errors.

但是,当我试图将文件导出到mp3时:

代码语言:javascript
运行
复制
wav.export(r"WavOut.mp3",format="mp3")

它引发以下错误:

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

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

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

代码语言:javascript
运行
复制
os.startfile(Path) #Will work

另外,我注册了ffmpeg,在windows path中注册为:

代码语言:javascript
运行
复制
;c:\ffmpeg\bin   #It is currently callable from any cmd prompt in windows.

什么能失败?谢谢!

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-07 19:43:21

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

在使用之前,尝试分配ffmpeg二进制文件的位置,如下所示:

代码语言:javascript
运行
复制
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版本开始,它是“转换器”)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20443850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档