我正在尝试使用 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/