【问题标题】:python3.6 ffmpeg call MacOSX (closed)python3.6 ffmpeg调用MacOSX(关闭)
【发布时间】:2017-04-08 16:10:40
【问题描述】:

我在 MacOSX 上使用 Python 3.6。我想使用 FFmpeg 作为 Python 子进程。使用 OSX 嵌入式 Python 2.7 时一切正常,但使用 3.6 时,这不起作用。

我收到一条错误消息,因为它没有找到 FFmepg:

raise FFExecutableNotFoundError("Executable '{0}' not found".format(self.executable))
ffmpy.FFExecutableNotFoundError: Executable 'ffmpeg' not found

我尝试使用 ffmpy,但直接调用 FFmpeg 也得到了相同的结果:

>>> from subprocess import call
>>> call(["ffmpeg"])
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    call(["ffmpeg"])
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 267, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1326, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'

我安装了 FFmpeg 库。通过终端使用 Brew。它安装得很好,但只有 Python 2.7 可见,3.6 不可见。

从终端调用它是有效的:

$ ffmpeg

ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.2.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda

我(还不是)Linux 专家,但我认为 3.6 缺少找到 FFmpeg 的路径。

有解决这个烦人问题的线索吗?

【问题讨论】:

  • 也许可以尝试使用您想要的ffmpeg 二进制文件的绝对路径。
  • 感谢您的回答。现在可以了。没错,我只是在调用时添加了真正的FFmpeg位置。
  • 我不认为它是重复的,但这是一个密切相关的问题,除了 Linux:stackoverflow.com/questions/50798198/…

标签: macos python-2.7 python-3.x ffmpeg


【解决方案1】:

您的特定问题已解决,但让我分享一下我是如何解决相同错误的:

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

任何人的第一反应都会是检查ffmpeg是否在相关环境中正确安装。在我的例子中,我运行了conda install -c conda-forge ffmpeg 没有错误消息。当我运行find / -name ffmpeg 时,我发现ffmpeg 目录位于我预期的位置,即/Users/PatrickT/miniconda3/envs/sp/bin/ffmpeg。版本是ffmpeg-4.2.2。我跑了conda search ffmpeg --channel conda-forge,发现有一个更新可用,所以我再次安装了它,但这次使用的语法略有不同,以防万一:

conda config --add channels conda-forge
conda install ffmpeg

这次成功了!

结论:无论出于何种原因,ffmpeg 没有正确安装在我的系统上,而 ffmpeg 目录已在正确的位置创建,调用应用程序失败。简而言之,问题正是如错误信息所述:No such file or directory: 'ffmpeg'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 2015-09-11
    相关资源
    最近更新 更多