如何将海康威视IPC摄像头RTSP接入到系统中?

摘要:海康威视IPC摄像头rtsp接入 由于该设备辗转多人手中进行测试,不乏有人修改过密码等原因,导致默认的登录信息失效,因此需要使用海康威视官方渠道进行密码重置。 默认信息 # 海康威视摄像头信息 ip = '192.1
海康威视IPC摄像头rtsp接入 由于该设备辗转多人手中进行测试,不乏有人修改过密码等原因,导致默认的登录信息失效,因此需要使用海康威视官方渠道进行密码重置。 默认信息 # 海康威视摄像头信息 ip = '192.168.1.64' port = '8000' rtsp_port = '554' user = 'admin' password = '12345' 忘记密码及重置密码 PC端下载400密码重置助手 - 海康威视 Hikvision 打开400密码重置助手,选中所需重置的设备,右下角点击忘记密码,随后按弹出的对话框交互信息通过微信公众号获取密钥字符串或密钥文件,重置密码即可。 密码重置完成后,登录http://192.168.1.64即可使用新的密码登录,账户名依旧是admin 通过配置页开启ONVIF协议 1.通过局域网访问摄像机,点击配置-系统-安全管理-安全服务,将非法登录改为关闭。 2.点击配置-网络-高级配置-集成协议,启用ONVIF协议或启用开放型网络视频接口。 3.点击添加-用户名和密码等级要求和设备激活时设置的用户密码等级要求一致,建议设置成和海康监控摄像头激活密码一致。用户类型选择管理员。 使用ODM测试并获取rtsp地址 打开ONVIF Device Manager软件(我使用的版本是ONVIF Device Manager-v2.2.250) 使用刚刚设置的用户名和密码登录并打开Live video即可查看rtsp流地址 我的参考地址见下,默认端口依旧是554 rtsp://192.168.1.64:554/Streaming/Channels/101?transportmode=unicast&profile=Profile_1 但是上面这个地址是通过请求参数的方式得到的,仅供参考,因此以下会将其转换为明文地址。 rtsp://admin:password@192.168.1.64/Streaming/Channels/2 其中admin和password是步骤(开启ONVIF协议)中所设置的信息,请注意,以上内容均可自定义修改。 使用python获取打开视频流 以下是使用OpenCV打开海康威视IPC摄像头视频流的一个demo,具体的配置信息需要根据实际进行修改 ''' Author: Dapenson Date: 2023-09-19 13:03:40 LastEditors: Dapenson LastEditTime: 2023-09-19 14:31:24 FilePath: \camera\Hikvision-show.py ''' import cv2 # 海康威视摄像头信息 ip = '192.168.1.64' port = '8000' rtsp_port = '554' user = 'admin' password = '12345' #"rtsp://admin:password@192.168.1.64/Streaming/Channels/2" # 获取海康威视 IPC 摄像头的 rtsp地址 rtsp_url_1 = f"rtsp://{user}:{password}@{ip}:{rtsp_port}/Streaming/Channels/2" print(rtsp_url_1) # 创建 cv2 摄像头对象 cap = cv2.VideoCapture(rtsp_url_1) # 确定视频被保存后的编码格式 fourcc = cv2.VideoWriter_fourcc(*'XVID') fps = 25.0 # 输出视频帧率 output = cv2.VideoWriter('output.avi', fourcc, fps, (1366, 768)) while True: # 读取摄像头的当前帧 ret, frame = cap.read() # 如果帧读取成功 if ret: frame = cv2.resize(frame, (1366, 768)) # 在窗口中显示帧 cv2.imshow("TpLink IPC Camera", frame) # 写入视频帧 output.write(frame) # 按下 'ESC' 退出 if cv2.waitKey(1) & 0xFF == 27: break # 释放摄像头和视频写入对象,并关闭所有窗口 cap.release() output.release() print("Video saved successfully!") cv2.destroyAllWindows()