环境:Windows + VLC / Opencv-Python
先说结论,我用VLC或者Pyhton opencv直接拉取海康网络摄像头的rtsp流,会有1-2s延时,特别明显。后来搜到这边文章,解决了问题:
如何降低海康、大华等网络摄像头调用的高延迟问题(一):海康威视网络摄像头的python sdk使用(opencv读取sdk流)_python低延迟播放网络视频流-CSDN博客
在使用海康SDK优化之前,尝试过多种方法:
多线程:延时1s左右
ffplay 去掉缓存:延时1s左右
ffplay.exe -fflags nobuffer rtsp://xxxxxxxxx
海康SDK:与网页视频相比,几乎是同步的。
上面说的延时,也是与摄像头网页视频相比的。
如上面文章介绍,我使用的时候遇到一处错误,需要把代码中的
b'\libcrypto-1_1-x64.dll'
b'\libssl-1_1-x64.dll'
这两处地方改成左斜杠,才能运行。
b'/libcrypto-1_1-x64.dll'
b'/libssl-1_1-x64.dll'
补充:
opencv拉流使用的是
cv2.VideoCapture(rtsp_url)
# 设置缓存区的大小
cap.set(cv2.CAP_PROP_BUFFERSIZE, 0)