Pydub安装和ffmpeg

时间:2018-11-26 12:12:55

标签: python ffmpeg virtualenv pydub

我试图从.mp3文件中获取原始声音数据。因此,我使用了here中所述的pydub模块。我为此项目创建了venv,并安装了所有必需的模块。但是出于某种原因,pydub决定给我一个FileNotFoundError

(venv) Python-IT:LightsDev pythonit$ which python
/Users/pythonit/Documents/Programmieren/Python/LightsDev/venv/bin/python
(venv) Python-IT:LightsDev pythonit$ which pip3
/Users/pythonit/Documents/Programmieren/Python/LightsDev/venv/bin/pip3
(venv) Python-IT:LightsDev pythonit$ pip3 list 
------------- -------
ffmpeg        1.4
pip           18.1
pydub         0.23.0
pyee          5.0.0
python-ffmpeg 1.0.5
setuptools    39.0.1

我的确切代码如下:

from pydub import AudioSegment
sound = AudioSegment.from_mp3('test.mp3')
raw_data = sound._data
print(raw_data)

我得到这个错误:

FileNotFoundError: [Errno 2] No such file or directory: 'ffprobe': 'ffprobe'

此运行时警告旁边:

RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)

我不知道是否是我,但是一些类似的问题表明我应该安装ffmpeg或python-ffmpeg不会起作用。我什至可以导入ffmpeg模块,但是什么也没发生。我可以使用ffmpeg并加载文件,但不能与pydub一起使用。

编辑:今天我换到我的Windows机器上,并深入研究了该错误。但是,即使使用注释中提供的解决方案,我也无法使其正常运行(尽管谢谢您)。我按照说明安装了ffmpeg二进制文件,并且能够在外壳中运行ffmpeg,但是无法在pydub中运行...我不知道发生了什么。我想我的错误很明显,我无法理解。尽管事实上,我仍然能够在外壳中使用ffmpeg ,但子进程也无法解决此问题。我什至能够在外壳中使用ffmpeg转换文件...

 ffmpeg -i test.mp3 test.wav 
 > Output #0, wav, to 'test.wav':

我想无论如何我都快要解决问题了,但是还是谢谢你。

2 个答案:

答案 0 :(得分:2)

ffmpeg安装到系统中,而不是python lib:

在Ubuntu中: sudo apt install ffmpeg

在Windows中: 只需下载ffmpeg库,解压缩并将***\bin路径添加到环境路径

然后通过simpleaudio安装pydubpip到python lib (我不知道为什么,但是对我有用)

答案 1 :(得分:0)

这个错误也让我发疯;路径显然是问题所在。有几种解释,如下所示,告诉您修改为 C:\ffmpeg\bin(例如:https://windowsloop.com/install-ffmpeg-windows-10/),而其他解释相同的解释不起作用。

我的解决方法是修改anaconda3路径:C:\Users\YOURPATH\anaconda3\Lib\site-packages\ffmpeg\bin

然后我需要重新启动计算机才能使注册表更改生效!

不要忘记最后一步...

ffmpeg 无法创建、使用路径而无需用户修改注册表路径(脏)的异常情况?