解决大华摄像头RTSP视频流VLC无法连接,然后用python解析视频流

您所在的位置:网站首页 大华摄像头用什么软件搜索的 解决大华摄像头RTSP视频流VLC无法连接,然后用python解析视频流

解决大华摄像头RTSP视频流VLC无法连接,然后用python解析视频流

2024-07-16 17:55| 来源: 网络整理| 查看: 265

解决大华摄像头RTSP视频流VLC无法连接,然后用python解析视频流 遇到的问题大华摄像头rtps视频流地址使用vlc播放器打开rtsp,验证视频流 解决问题合理的创建标题,有助于目录的生成 python读取rtsp视频流代码编写

遇到的问题

想通过python解析大华摄像头实时画面,先通过web访问摄像头,网络地址为192.168.1.222都正常,然后想通过vlc测试一下rtsp视频流是否正常,遇到无法连接的问题,554端口扫描也是正常打开的,连接字符串反复测试了好久都没有解决,百度了好久也没有找到答案,最终在摄像头配置管理里面找到了问题,解决了,分享出来,少走弯路。

大华摄像头rtps视频流地址

要大华摄像头摄像头rtsp视频流,必须通过连接地址访问,格式如下:

rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0 说明: username: 用户名。默认:admin。 password: 密码。例如admin。 ip: 为设备IP。例如 192.168.1.222。 port: 端口号默认为554,若为默认可不填写。 channel: 通道号,起始为1。例如通道2,则为channel=2。 subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1) 该摄像头的rtsp地址为: rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 使用vlc播放器打开rtsp,验证视频流 打开vlc播放器,vlc是开源的多媒体播放器,自行下载;从媒体菜单,点击打开网络串流;打开的对话框网络协议中,输入地址:rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0点击播放,出现错误,过程如图:在这里插入图片描述在这里插入图片描述 vlc无法预览视频流画面说明,连接过程出现了问题,先排查问题才能编程 解决问题 合理的创建标题,有助于目录的生成

一番百度无果后,翻看摄像头web端管理页面发现有一个配置选项,界面如下: 在这里插入图片描述 安全管理里面开启了RTSP over TLS RTSP 有几种变种,包括 RTSP over HTTP(RTSP 使用 HTTP 进行封装)、RTSP over TLS(RTSP 使用 TLS 加密)、RTSP over TCP 和 RTSP over UDP 等。 RTSP over TLS:

RTSP over TLS(Real Time Streaming Protocol over Transport Layer Security)是一种用于视频流传输的协议。它通过TLS(Transport Layer Security)来加密和保护实时流媒体数据的传输。RTSP over TLS通常用于保护视频监控、视频会议和其他实时流媒体应用中的数据传输。使用TLS可以确保数据的机密性和完整性,防止中间人攻击和窃听

VLC拉流默认是udp方式,连接识别会自动切换为tcp,应该是不支持TLS加密方式,所以关闭了该选项,确认后测试画面预览成功。

python读取rtsp视频流代码编写 import cv2 from datetime import datetime # RTSP URL rtsp_url = "rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0" # 打开视频流 cap = cv2.VideoCapture(rtsp_url) # 检查视频流是否成功打开 if not cap.isOpened(): print("Error: Failed to open RTSP stream.") exit() while True: # 读取一帧图像 ret, frame = cap.read() # 检查图像是否成功读取 if not ret: print("Error: Failed to read frame.") break # 获取当前时间 current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 在图像上写入当前时间字符串 cv2.putText(frame, current_time, (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2) # 显示处理后的图像 cv2.imshow("Video", frame) # 检查是否按下ESC键,如果是则退出循环 if cv2.waitKey(1) & 0xFF == 27: break # 释放资源 cap.release() cv2.destroyAllWindows()

运行成功,希望对视频流读取或者做分析的人有帮助。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3