3
我正在使用cv2.VideoCapture来读取python脚本中的RTSP视频链接的帧。 .read()函数处于每秒运行一次的while循环中,但是,我没有从流中获取最新的帧。我得到更老的框架,并在这种方式我的滞后积累。无论如何,我可以获取最新的帧,而不是已经传输到VideoCapture对象的旧帧。在Python中使用OpenCV VideoCapture获取当前帧
我正在使用cv2.VideoCapture来读取python脚本中的RTSP视频链接的帧。 .read()函数处于每秒运行一次的while循环中,但是,我没有从流中获取最新的帧。我得到更老的框架,并在这种方式我的滞后积累。无论如何,我可以获取最新的帧,而不是已经传输到VideoCapture对象的旧帧。在Python中使用OpenCV VideoCapture获取当前帧
我正在与黑客中的朋友一起工作。我们不想使用所有的框架。到目前为止,我们发现同样的东西:grab()
(或读)试图让你所有的框架,我猜rtp:如果你没有足够的响应,它会保持一个缓冲区和下降。
代替阅读,你也可以使用grab()和receive()。第一个要求框架。接收将其读入内存。所以如果你多次打电话,它会有效地跳过这些。
我们逃脱了这样:
#show some initial image
while True:
cv2.grab()
if cv2.waitKey(10):
im = cv2.receive()
# process
cv2.imshow...
不是生产代码,但...
看那抢方法。这应该让你跳过帧,然后在你想要处理和返回的帧上使用retrieve命令。 – ditkin
@ditkin我做了,它似乎并没有帮助它仍然让我更老的帧。不过谢谢你的帮忙。 – user3916798
@ user3916798你有没有解决过这个问题?有类似的问题... – Aerophilic