在 Python 中使用 OpenCV VideoCapture 获取当前帧

use*_*798 6 python opencv video-capture

我正在使用 cv2.VideoCapture 在 python 脚本中读取 RTSP 视频链接的帧。.read() 函数处于 while 循环中,每秒运行一次,但是,我没有从流中获取最新的帧。我得到了较旧的帧,这样我的滞后就会增加。无论如何,我可以获得最新的帧而不是已通过管道传输到 VideoCapture 对象的旧帧吗?

hel*_*ios 0

我正在和一个朋友一起做同样的事情。我们不想使用所有框架。到目前为止,我们发现同样的事情:(grab()或读取)尝试获取所有帧,我猜对于 rtp:它会维护一个缓冲区,如果您响应不够,则会丢弃。

除了读取之外,您还可以使用grab() 和receive()。第一个要求框架。接收将其读入内存。因此,如果您多次调用grab,它将有效地跳过这些。

我们这样做了:

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

不是生产代码,而是...