首页| 论坛| 消息

标题:Qt/C++开发监控GB28181系统/实时监测设备在线离线/视频预览自动重连/重新点播取流/低延迟
作者:liudianwu
日期:2025-08-09 07:48
内容:

## 一、前言说明
一个好的视频监控系统,设备掉线后能够自动重连,也是一个重要的功能指标,如果监控系统只是个rtsp流地址,那非常好办,只需要重新打开流地址即可,而gb28181中就变得复杂了很多,需要多个方便配合,主要涉及到sip交互指令,rtp解包,ffmpeg解码,三个方面缺一不可,其中sip这边负责让设备发流数据,而且有多个交互指令,rtp这边也需要先绑定地址监听端口成功后,再把端口号一起sdp应答给设备,sip和rtp都完成后再打开ffmpeg准备收数据解码,三个方面都要配合,只要有一个方面配合的不好就会失败,关键是取流还支持三种方式,udp,tcp被动,tcp主动,三种方式都要能支持自动重连。网上很多国标的工具,几乎都没有这种重连的功能。
在做这个重连功能中,有几个要点需要注意,一个是当用户主动关闭了流,是不需要加入重连检测的,不然永远都关不掉,这个可以加个标志位来解决,当用户打开流的时候标志位真,用户关闭流的时候标志位假,重连定时器判断标志位,为真才需要去检测。还一个是资源的释放,重连过程中必须先把之前的rtp解包线程的资源释放,还有ffmpeg解码这边的资源全部释放,不然一直累加会导致内存泄漏。
## 二、效果图


## 三、相关地址
1. 国内站点:[https://gitee.com/feiyangqingyun](https://gitee.com/feiyangqingyun)
2. 国际站点:[https://github.com/feiyangqingyun](https://github.com/feiyangqingyun)
3. 个人作品:[https://blog.csdn.net/feiyangqingyun/article/details/97565652](https://blog.csdn.net/feiyangqingyun/article/details/97565652)
4. 文件地址:[https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g](https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g) 提取码:01jf 文件名:bin_video_gb28181。
## 四、功能特点
1. 支持设备注册、注销、心跳、校时、注册认证、注销认证等。
2. 设备上线后可以手动获取设备状态、设备信息、配置信息、预置位信息等。
3. 设备上线后自动获取设备通道信息,包括中文通道名称。识别到通道上线离线变化,会重新获取该设备的所有通道信息。
4. 支持视频点播,可以分别点播主码流和子码流,内置rtp解包线程,解包后发给视频播放组件解码播放。
5. 每个设备每个通道支持点播多个视频,通过ssrc区分,支持共用端口和不同端口收流。
6. 支持对某个设备下面所有通道、某 ..

回复 发表
主题 版块