【发布时间】:2015-04-14 03:53:14
【问题描述】:
我正在尝试计算我的视频文件 ('foo.h264') 中的总帧数。
>>> import numpy as nm
>>> import cv2
>>> cap = cv2.VideoCapture('foo.h264')
>>> cap.get(CV_CAP_PROP_FRAME_COUNT)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'CV_CAP_PROP_FRAME_COUNT' is not defined
>>> cap.get(5)
25.0
>>> cap.get(7)
-192153584101141.0
所以我认为get(5) 给出了帧速率,get(7) 给出了总帧数。显然get(7) 在上述情况下是不正确的。因此,为了验证我试图在 .avi 文件中找到这些值。
>>> cap = cv2.VideoCapture('foo.avi')
>>> cap.get(5)
29.97002997002997
>>> cap.get(7)
256379.0
我可以通过将FPS 乘以视频的持续时间来计算总帧数,但我不确定为.h264 给出的 FPS 是否正确。为什么它给出的总帧数为负数?这是一个错误吗?
P.S:我使用树莓派相机录制了这个视频文件(.h264)。
【问题讨论】:
-
相关:stackoverflow.com/q/25359288/1643946(用于 avi 容器)