Pydub installation and ffmpeg



我试图从.mp3文件中获取原始声音数据。因此,我使用了这里所说的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二进制文件,我能够在shell中运行ffmpeg,但不能使用pydub。。。我不知道发生了什么。我想我的错误很明显,我就是无法理解。即使没有子流程能够解决这个问题,尽管我能够在shell中使用ffmpeg。我甚至能够在shell中使用ffmpeg转换文件。。。

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

不管怎样,我想我已经快要自己解决这个问题了,但无论如何,谢谢你。

ffmpeg安装到您的系统,而不是python-lib:

在Ubuntu中:sudo apt install ffmpeg

在Windows中:只需下载ffmpeg-lib,提取并将***bin路径添加到环境路径

并通过pipsimpleaudiopydub安装到python-lib(我不知道为什么,但它对我有效(

这个错误也让我抓狂;路径显然是个问题。下面有几种解释,告诉您修改为C:\ffmpeg\bin(例如:https://windowsloop.com/install-ffmpeg-windows-10/)而其他解释同样道理的人并没有奏效。

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

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

别忘了最后一步。。。

不寻常的是,ffmpeg不能在没有用户修改注册表路径的情况下创建、使用路径(脏(?

最新更新