【发布时间】:2021-01-12 11:29:02
【问题描述】:
我正在尝试在带有 opencv 4.5 的 Ubuntu 20.04 上使用 opencv 的 VideoCapture 类从 ip 摄像头读取 rtsp 流。 ubuntu 上的视频有延迟,但当我在 Windows 10 机器上运行相同的代码时没有延迟。
cap.set(cv2.CAP_PROP_BUFFERSIZE, size) 返回 false 并且相机默认缓冲区大小不会改变。
cap = cv2.VideoCapture("rtsp://admin:@dmin123@192.168.1.64")
while (cap.isOpened()):
ret, frame = cap.read()
cv2.imshow("Live", frame)
if cv2.waitKey(1) & 0xFF == ord('q'): #press q to quit
break
cap.release()
当我使用带有以下参数的 ffplay 播放流时,流运行良好:
'''ffplay -fflags nobuffer -flags low_delay -tune zerolatency -framedrop -rtsp_transport tcp "rtsp://192.168.1.64"'''
在如何减少/处理我的代码中的滞后方面需要帮助。
【问题讨论】:
-
请参阅:(除了您找到的解决方法之外,还有一些解决方法) -- OpenCV-Python: How to get latest frame from the live video stream or skip old ones - Stack Overflow // c++ - OpenCV VideoCapture lag due to the capture buffer - Stack Overflow ;;但是它们都没有解释 Ubuntu/Windows 10 之间的区别。其他一些解决方法可以在 python - IP Camera Capture RTSP stream big latency OPENCV - Stack Overflow 中找到
标签: python opencv ubuntu ffmpeg