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

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

当 运行 代码片段时,我得到了标题中看到的错误。

我有 re-installed 包裹 pydubpip3 install ffprobe

    from pydub.playback import play
    from pydub import AudioSegment


    def change_volume(file_name, alteration):

        song = AudioSegment.from_mp3(file_name)

        new_song = song + alteration

        new_title = ("_%s") % (file_name)

        new_song.export(new_title, format='mp3')

    change_volume("test_sample.mp3", 3)

代码的输出应该是目录中的一个新的 mp3 文件,音量略有提高 (test.mp3 --> _test.mp3),但我得到错误:

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

首先确保你安装了ffprobe,它是FFmpeg的一部分,所以实际上你需要安装ffmpeg。您可以按照这两个站点之一的说明进行操作。

https://ffmpeg.org/download.html

https://github.com/adaptlearning/adapt_authoring/wiki/Installing-FFmpeg

之后,您需要将库添加到您的系统路径中,以便 python 能够找到并使用它。这可以通过将 FFmpeg 的安装路径实际添加到您的 OS 路径(如何执行取决于您的操作系统),或者将其添加到 [=29 内部使用的临时路径变量来完成=].

import sys
sys.path.append('/path/to/ffmpeg')

对于第二个选项,您必须确保在导入任何其他内容之前将路径附加到 FFmpeg。如果您没有更改根系统配置的选项,这是更好的选择,但在不同的 python 脚本使用时会变得非常不一致。

最后确保安装 ffprobe(例如在终端内安装 pip install ffprobe,参见 https://pypi.org/project/ffprobe)以便 import ffprobe 可以在 python 环境。

您可以尝试以下命令 apt-get install -y ffmeg

我试过下面的方法,效果不错:

$ sudo apt update
$ sudo apt install ffmpeg

在我的 Mac 上,ffmpeg 安装在 /usr/local/bin 而不是 /usr/bin。我添加了这个函数,它将我到 ffmpeg 的实际路径添加到系统路径,而 python 应用程序是 运行。这允许 pydub 找到它。

def add_usr_local_bin():
    ffmpeg_path = "/usr/local/bin"
    os.environ["PATH"] += os.pathsep + ffmpeg_path

(我在 Mac,使用 Anaconda3。)

每个人都在说将 ffmpeg 或 ffprobe 添加到您的路径,但需要明确的是,这意味着将 可执行文件 添加到您的路径(不是目录,不是 .py 文件,或其他任何东西)。出于某种原因,即使在通过自制软件 ffmpeg 和 ffprobe 进行 pip installing/updating 和 installing/updating 之后,我的系统上也没有可执行文件。这似乎很奇怪;我不知道为什么会这样,但这是我如何让它工作的:

  1. 转到 https://ffbinaries.com/downloads 并为您的系统下载 ffmpeg 和 ffprobe 的 zip。
  2. 解压文件得到可执行文件。
  3. 将可执行文件移动到正确的路径,对我来说是“usr/anaconda3/bin”(这个目录主要有可执行文件)。正如其他人所说,您可以使用 import os; 检查您的路径;打印(os.environ['PATH']).
  4. 从 Finder 中手动打开这两个 os 两个可执行文件中的每一个,这样您就可以授予打开来自未知开发人员(即来自 ffbinaries 站点)的文件的权限。

无论如何,这就是我最终做到的。希望对遇到同样问题的其他人有所帮助。

我在 docker 容器“pip3 install ffmpeg-python”中通过这个命令安装 ffmpeg,但我也遇到了这个错误, 然后我通过 apt-get 安装它 - > apt-get install ffmpeg 一切正常