使用RTSP协议读海康设备的视频记录

前言

作为一名搞CV的程序员,我们的输入通常就是视频流。我相信很多人都用的OpenCV提供的VideoCapture函数。就我现在的经验来说,该函数支持以下3种输入:

# 方式1:填入索引,表示读取设备上的摄像头
video = cv2.VideoCapture(0)

# 方式2:读取一个视频文件,直接给出视频的路径即可
video = cv2.VideoCapture('XXX.mp4')

# 方式3:读取RTSP视频流
video = cv2.VideoCapture('rtsp协议')

本人对网络协议这些不是很懂,在使用这些的时候遇到了很多问题,到现在还是有点懵,所以把一些经验记录在这里。

工程经验

从IPC、DVR、NVR以及视频服务器读取视频流是有区别的

目前我成功的从IPC(网络摄像头)和视频服务器读取了视频流,两者都是海康的设备。
总的来说,海康设备的RTSP协议格式如下图所示:
海康RTSP协议格式
在实际使用中,当我直接从IPC读取视频流的时候,可以直接这么写:rtsp://username:[email protected]。省略了很多东西。当我试图从视频服务器读取视频流时,应该必须提供通道号。因为视频服务器可以管理多个设备,不提供具体通道号,是无法读取视频流的。所以当我从视频服务器读取视频流时,需要这么写:rtsp://username:[email protected]:554/h264/ch1/main/av_stream

你可能感兴趣的:(工程类记录)