【问题标题】:Using FFProbe within a Python script在 Python 脚本中使用 FFProbe
【发布时间】:2017-06-03 08:27:58
【问题描述】:

我对 python 还很陌生,这是我的第一个真正的项目,我遇到了一个障碍。我这里有一个 .wmv 文件,我正在使用 FFprobe 从 .wmv 文件中提取持续时间(以秒为单位)。当我在 CMD 中运行以下命令时:

ffprobe -i Video2.wmv -show_entries format=duration -v quiet -of csv="p=0"

我得到了成功的输出。

但是,当我使用 os.system 时,像这样:

os.system('ffprobe -i Video2.wmv -show_entries format=duration -v quiet -of csv="p=0"')

我得到以下输出:

'ffprobe' is not recognized as an internal or external command, operable program or batch file.

这非常令人困惑,我无法在网上找到解决这个确切问题的方法,非常感谢任何输入。

【问题讨论】:

  • 看看我的一些问题,我一直在做类似的事情。特别是this one.
  • ffprobe 存储在您计算机的什么位置?
  • @Gloin 位于C:\ffmpeg
  • 你是怎么安装的?
  • @Gloin 我刚刚去了 ffmpeg 网站并使用了他们的安装程序。我把我的 ffmpeg 文件放到了 C 盘

标签: python ffmpeg ffprobe


【解决方案1】:

Python 找不到 ffprobe,因为它不在您的环境变量中。 This youtube video 展示了如何正确安装它,this wikihow page(方法 2)也是如此,我将从这里引用:

在命令行中启用 FFmpeg

单击开始按钮,然后右键单击计算机。选择属性 从右键菜单中。在系统窗口中,单击 左侧框架中的“高级系统设置”链接。

单击系统属性中的环境变量按钮 窗户。它将位于窗口的底部。

在“用户变量”部分中选择 PATH 条目。这位于 在“环境变量”窗口的第一帧中。点击 编辑按钮。在“变量值”字段中,输入 ;c:\ffmpeg\bin 后 任何已经写在那里的东西。如果你把它复制到另一个 驱动器,更改驱动器号。单击确定以保存您的更改。如果 在此屏幕中输入的任何内容均不正确,这可能会导致 Windows 无法正常启动。如果“用户”中没有 PATH 条目 变量”设置,单击新建按钮并创建一个。输入路径 为变量名。此方法将为当前启用 FFmpeg 用户。其他 Windows 用户将无法从该命令运行它 线。要为所有人启用它,请在 PATH 中输入 ;c:\ffmpeg\bin 进入“系统变量”。非常小心不要删除任何东西 已经在这个变量中了。

打开命令提示符。输入命令“ffmpeg –version”。如果 命令提示符返回 FFmpeg 的版本信息,然后 安装成功,可以从任意位置访问FFmpeg 命令提示符中的文件夹。

如果您收到“libstdc++ -6 是 缺少”错误,您可能需要安装 Microsoft Visual C++ 可再发行包,可从 Microsoft 免费获得。

希望对你有帮助。

顺便说一句,我认为os.system 不再是调用命令行的推荐方式了。

我建议使用 subprocess 来代替类似的东西(改编自代码 here):

import subprocess
import shlex
import json
def get_duration(file_path_with_file_name):

    cmd = 'ffprobe -show_entries format=duration -v quiet -of csv="p=0"'
    args = shlex.split(cmd)
    args.append(file_path_with_file_name)
    # run the ffprobe process, decode stdout into utf-8 & convert to JSON
    ffprobe_output = subprocess.check_output(args).decode('utf-8')

    ffprobe_output = json.loads(ffprobe_output)

    return ffprobe_output

【讨论】:

  • @mattp341 欢迎您。最后,我刚刚修复了我建议的脚本中的一个错误,以防你想使用它
猜你喜欢
  • 2018-06-24
  • 2018-11-21
  • 2016-03-10
  • 2022-10-18
  • 1970-01-01
  • 2012-04-11
  • 2017-03-26
  • 1970-01-01
  • 2010-10-30
相关资源
最近更新 更多