2015-10-19 46 views
3

我正在使用cv2.VideoCapture来读取python脚本中的RTSP视频链接的帧。 .read()函数处于每秒运行一次的while循环中,但是,我没有从流中获取最新的帧。我得到更老的框架,并在这种方式我的滞后积累。无论如何,我可以获取最新的帧,而不是已经传输到VideoCapture对象的旧帧。在Python中使用OpenCV VideoCapture获取当前帧

+0

看那抢方法。这应该让你跳过帧,然后在你想要处理和返回的帧上使用retrieve命令。 – ditkin

+0

@ditkin我做了,它似乎并没有帮助它仍然让我更老的帧。不过谢谢你的帮忙。 – user3916798

+0

@ user3916798你有没有解决过这个问题?有类似的问题... – Aerophilic

回答

0

我正在与黑客中的朋友一起工作。我们不想使用所有的框架。到目前为止,我们发现同样的东西:grab()(或读)试图让你所有的框架,我猜rtp:如果你没有足够的响应,它会保持一个缓冲区和下降。

代替阅读,你也可以使用grab()和receive()。第一个要求框架。接收将其读入内存。所以如果你多次打电话,它会有效地跳过这些。

我们逃脱了这样:

#show some initial image 
while True: 
    cv2.grab() 
    if cv2.waitKey(10): 
     im = cv2.receive() 
     # process 
     cv2.imshow... 

不是生产代码,但...