我正在尝试打开一些 MP3 文件以查找它们的长度(作为更大项目的一部分)。我已经安装了 pydub 并且 ffmpeg 已经通过 brew 安装了。 ffmpeg 在我的路径中可用,并且在终端中键入 ffmpeg 会成功启动它 - 我正在引用的音频文件存在,我可以在其上运行 ffmpeg -i 以获取有关它的信息。该程序可以打开并播放音频文件(使用pygame),所以我确定这不是文件问题。
但是,尝试使用 AudioSegment 打开任何文件会导致显示“找不到 ffmpeg 或 avconv - 默认为 ffmpeg 但可能无法工作”,并且任何使用 AudioSegment 打开文件的尝试都会导致异常。
我尝试使用 AudioSegment.converter 显式设置 ffmpeg 的路径 - 既试图指向 '/usr/local/bin/ffmpeg' 也指向真实位置(前一个是符号链接(symbolic link))。
from pydub import AudioSegment
AudioSegment.converter = '/usr/local/bin/ffmpeg' # tried with and without
print(len(AudioSegment.from_mp3('mp3_audio.mp3')))
我得到 FileNotFoundError: [Errno 2] No such file or directory: 'ffprobe': 'ffprobe'
最佳答案
这很难弄清楚。但在这里。
在 Mac 上,运行 brew install ffmpeg
然后你需要找到它将二进制文件写入的位置。将葬于/usr/local/Cellar
目录,并将基于安装的版本号。就我而言,它是
/usr/local/Cellar/ffmpeg/4.2.1_2/bin/ffmpeg
然后,您需要将此路径添加到您的 Python 脚本中,如下所示
from pydub import AudioSegment
AudioSegment.converter = '/usr/local/Cellar/ffmpeg/4.2.1_2/bin/ffmpeg'
关于macos - Pydub 找不到 ffmpeg,尽管它已安装并在路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56739322/