首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python脚本中使用FFProbe

在Python脚本中使用FFProbe
EN

Stack Overflow用户
提问于 2017-01-18 19:51:03
回答 1查看 5.2K关注 0票数 2

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

代码语言:javascript
复制
ffprobe -i Video2.wmv -show_entries format=duration -v quiet -of csv="p=0"

我得到了成功的输出。

但是,当我使用os.system时,如下所示:

代码语言:javascript
复制
os.system('ffprobe -i Video2.wmv -show_entries format=duration -v quiet -of csv="p=0"')

我得到以下输出:

代码语言:javascript
复制
'ffprobe' is not recognized as an internal or external command, operable program or batch file.

这是非常令人困惑的,我还没有找到一个解决这个确切的问题在线,任何输入都会非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-19 11:35:23

Python找不到ff探头,因为它不在您的环境变量中。这段youtube视频展示了如何正确安装它,这个维基网页 (方法2)也是如此,我将在这里引用如下:

在命令行中启用FFmpeg

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

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

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

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

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

我希望这能帮上忙。

顺便提一句,我不认为os.system是那种调用命令行的推荐方法。

我建议您更多地使用子进程(改编自代码这里):

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41728249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档