python - 使用 FFMPEG 提取帧?

标签 python opencv video ffmpeg frame

我正在尝试使用 ffmpeg(或 openCV - 接受建议)和 python 编写代码以从视频文件中提取 16 帧,但我在弄清楚如何开始时遇到了很多麻烦。
我可以直接在 python 中使用 ffmpeg 命令行吗?如果是这样,是否有获取剪辑长度和帧速率的命令?如何等间隔拉帧?

任何帮助将不胜感激!谢谢!

最佳答案

我可以使用 ffprobe 获取元数据信息,它包含在 ffmpeg 中。

模块子进程是一种在 python 外部使用工具并返回退出状态或检查输出的方法,如下面的示例所示。然后你可以将 python 变量分配给 ffprobe 的解析输出。 使用 shell=True 存在安全问题。这至少可以帮助您入门,并且您可以找到避免以后使用它的方法。

import subprocess

dur_check = subprocess.check_output('ffprobe -v error -show_format We\ Code\ Hard.mp4 | grep duration')
duration = dur_check.split('=')[1]

哪个会返回:

'192.631667'

然后,fps 有点不同。

fps_check = subprocess.check_output('ffprobe We\ Code\ Hard.mp4 2>&1 | grep fps',shell=True)
fps = fps_check.split(' ')[4].strip()

返回:

'29.97 fps'

关于python - 使用 FFMPEG 提取帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687984/

相关文章:

android - Android 项目中的 java.lang.ExceptionInInitializerError

video - FFmpeg concat 命令更改 start_time(ts block 连接)

python - 现有演示文稿中每张 pptx 幻灯片的形状编号/索引

python - SQL 数据库不接受 UTF -8 字符

c++ - OpenCV:如何进行 Delaunay 三角剖分并返回邻接矩阵?

iOS - 在应用程序内保存视频

video - 使用 youtube-dl 和 ffmpeg 同时下载视频和音频片段

下载 zip 文件时的 Python Flask 已损坏

原始模式下的Python stdin 打印添加空格

opencv - 使用来自 CAFFE 的 Opencv 3.1