cv2库中包含直接从摄像机和硬盘录像机中取流的函数VideoCapture()

1. 链接NVR

cv2库通过rtsp可以与NVR建立通信,以海康威视的rtsp协议为例(不止这一种),i

rtsp = 'rtsp://admin:password@192.168.1.168:554/Streaming/Channels/{}01'.format(i)
camera = cv2.VideoCapture(rtsp)

2. 判断获取的视频流是否开启

通过isOpend()判断,如果视频流开启,返回True

camera.isOpened()

3. 从视频流保存照片

建议将每台摄像机的编码格式改为H.264,这在循环取图时不容易造成图片质量差(灰图)或者图片丢失。

ret, frame = camera.read()
cv2.imencode('.jpg', frame)[1].tofile('D:/capturePics')