FileNotFoundError: [Errno 2] 没有这样的文件或目录: 'ffprobe': 'ffprobe'

Kim*_*hoo 8 python pydub

运行代码片段时,出现标题中的错误。

我已经重新安装了该软件包pydub,并且pip3 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)
Run Code Online (Sandbox Code Playgroud)

代码的输出应该是目录中的一个新的 mp3 文件,其音量级别略有提高(test.mp3--> _test.mp3),而是出现错误:

FileNotFoundError: [Errno 2] No such file or directory: 'ffprobe': 'ffprobe'
Run Code Online (Sandbox Code Playgroud)

Hu *_*ixi 16

我尝试了以下方法,并且有效:

$ sudo apt update
$ sudo apt install ffmpeg
Run Code Online (Sandbox Code Playgroud)


小智 8

(我在 Mac 上,使用 Anaconda3。)

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

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

无论如何,这就是最终为我所做的。希望能帮助其他人解决同样的问题。


Sar*_*tus 7

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

https://ffmpeg.org/download.html

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

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

import sys
sys.path.append('/path/to/ffmpeg')
Run Code Online (Sandbox Code Playgroud)

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

最后确保已ffprobe安装(例如pip install ffprobe在终端内部,请参阅https://pypi.org/project/ffprobe),以便import ffprobe在 python 环境中工作。