将视频捕获中的帧位置设置在每次捕获之间导致h264错误“共同定位子不可用”和“mmco:未引用短失败”

2024-04-29 07:52:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读一个用OpenCV进行图像识别的视频文件,我只对每秒60帧中的1帧感兴趣,所以我不想在下一帧之前捕获60帧,而是通过在每次迭代之间设置帧位置来加快代码的速度

while (capture.isOpened()):

    capture.set(cv2.CAP_PROP_POS_FRAMES, frame_count)

    ret, frame = capture.read()
    frame_count += round(fps)

    if ret:
...

但是,当我这样做时,以下错误会在终端中不断地发送垃圾邮件:

^{pr2}$

它看起来像是在读两帧,然后在下一帧之前稍等或放慢速度,然后又一次快速地读取两帧:

如果我这样做的“正常”方式,我读取所有帧,但只运行图像识别每60。frame它的工作完全正常,但是如果我增加运行图像识别的间隔时间(例如每分钟1帧或更少),我会发现实际上要花相当长的时间才能捕捉到所有我不使用的帧。在

如果您对此有任何意见,我将不胜感激,我已经寻找了一个很长时间的解决方案,但没有找到任何东西:)


Tags: 代码countcv2frameopencv图像识别速度感兴趣