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

Ben*_*nyi 5 python mp3 file pydub

我在Windows和Linux上运行的Pydub模块有问题.当我尝试打开一个mp3文件时:

from pydub import AudioSegment
sound = AudioSegment.from_mp3("test.mp3")
Run Code Online (Sandbox Code Playgroud)

控制台显示下一条消息:

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

但是......我把文件(test.mp3)放在脚本相同的文件夹中,名称是正确的.

为什么我有这个问题?(在Linux中,有相同的错误)

小智 10

在较新版本的,您可以通过设置class属性来指定可执行文件的绝对路径converter,例如:

from pydub import AudioSegment
AudioSegment.converter = "/usr/local/bin/ffmpeg"
Run Code Online (Sandbox Code Playgroud)

在旧版本中,类属性曾经是ffmpeg,现在已弃用.


小智 10

在 jupyter notebook 中,此错误可能持续存在,因为该错误与 anaconda 环境有关。您可以通过安装解决这个问题ffmpeg,从conda-forge

进入 anaconda 提示符并输入:

conda install -c conda-forge ffmpeg
Run Code Online (Sandbox Code Playgroud)


小智 9

另一种方式是把ffmpeg.exe,ffplay.exe放在当前工作目录下

  • 太感谢了。我花了 3 天的时间来调试这个琐碎的错误/错误。我差点就放弃pydub了。感谢您的帮助。 (2认同)

ρss*_*ρss 7

确保安装了ffmpeg http://www.ffmpeg.org/.您可以从此官方页面获得帮助.

我能想到的其他事情ffmpeg是安装并且在您的路径中但不在使用过程的路径中pydub.

如果这是错误的原因,那么您可以将绝对路径设置为ffmpeg如下所示:

import pydub
pydub.AudioSegment.ffmpeg = "/absolute/path/to/ffmpeg"
sound = AudioSegment.from_mp3("test.mp3")
Run Code Online (Sandbox Code Playgroud)

试一试.

  • `AudioSegment.ffmpeg` 不适用于较新的版本,它似乎是 `AudioSegment.converter`,就像另一个答案一样。 (2认同)