3

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

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

4

1 回答 1

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.ffmpegAudioSegment.converter因为我们现在同时支持 ffmpeg 和 avconv。

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

于 2013-12-07T19:43:21.700 回答