【发布时间】: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 上运行。