【问题标题】:Pydub can't find ffmpeg although it's installed and in pathPydub 找不到 ffmpeg,尽管它已安装并在路径中
【发布时间】:2019-11-06 10:09:10
【问题描述】:

我正在尝试打开一些 MP3 文件以查找它们的长度(作为更大项目的一部分)。我已经安装了 pydub 并且 ffmpeg 已经通过 brew 安装了。 ffmpeg 在我的路径中可用,并且在终端中键入 ffmpeg 会成功启动它 - 我正在引用的音频文件存在,我可以在其上运行 ffmpeg -i 以获取有关它的信息。该程序可以打开并播放音频文件(使用pygame),所以我确定这不是文件问题。

但是,尝试使用 AudioSegment 打开任何文件会导致显示“找不到 ffmpeg 或 avconv - 默认为 ffmpeg 但可能无法工作”,并且任何尝试使用 AudioSegment 打开文件都会导致异常。

我尝试使用 AudioSegment.converter 显式设置 ffmpeg 的路径 - 既试图指向 '/usr/local/bin/ffmpeg' 也指向真实位置(前一个是符号链接)。

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 上安装任何东西来获取 mp3 文件的持续时间,内置的 mdls 命令会为你做到这一点 mdls -name kMDItemDurationSeconds song.mp3
  • 感谢@Mark Setchell,但我需要在 Python 中完成,因为它是项目的一部分,也需要在 Windows 上运行。

标签: macos ffmpeg pydub


【解决方案1】:

这很难弄清楚。但它就在这里。

在 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'

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-08-23
  • 2019-04-28
  • 1970-01-01
  • 2018-06-10
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多