目录
RTSP简介
RTSP(Real Time Streaming Protocol)实时流传输协议,是TCP/IP协议体系中的一个应用层协议。该协议定义了一对多的应用程序如何有效地通过IP网络传送多媒体数据,用于C/S模式,使用RTSP时客户端和服务端都可以发出请求,故RTSP可以是双向的。RTSP默认使用UDP建立连接,端口是554。
大华rtsp格式
格式
rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0
port: 端口号默认为554(rtsp协议默认端口),若为默认可不填写
channel: 通道号,起始为1。nvr根据设备所在通道填写不同通道号
subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)
rtsp_url = "rtsp://admin:sqlw12345@10.20.218.208:554/cam/realmonitor?channel=1&subtype=1"
海康摄像头
格式:
"rtsp://admin:yidongjt8888@10.20.218.135:554/h264/ch8/main/av_stream" #老版本
"rtsp://摄像头用户名:摄像头密码@摄像头IP地址:摄像头端口号/Streaming/Channels/通道号" # 新版本
rtsp://NVR用户名:NVR头密码@NVRIP地址:NVR端口号/Streaming/Channels/摄像头在NVR中的通道号
rtsp://admin:yidongjt8888@10.20.218.135:554/Streaming/Channels/801" # 801通道号8的主码流(01代表主码)
测试
1、ping 摄像头ip、NVR的ip,确保摄像头或者NVR和测试主机在同一个局域网中
2、通过RTSP可拉取视频流,测试代码如下:
def test_rtsp():
rtsp_url = "rtsp://admin:yidongjt8888@10.20.218.135:554/Streaming/Channels/801" # 新版本
print(rtsp_url)
# 创建RTSP视频捕获对象
cap = cv2.VideoCapture(rtsp_url)
while True:
ret, frame = cap.read()
if ret:
cv2.namedWindow('show', 0)
cv2.resizeWindow('show', 1000, 600)
cv2.imshow('show', frame)
cv2.waitKey(1)
else:
print("拉流失败")
break
# 释放视频捕获对象和关闭窗口
cap.release()
cv2.destroyAllWindows()