首页| 论坛| 消息

标题:Qt编写28181推流分发服务/统计访问数量/无人观看超时关闭/等待重新点播/复用点播
作者:liudianwu
日期:2025-11-16 14:05
内容:

## 一、前言说明
本以为之前写的国标GB28181服务端程序已经够完善了,不料又来个新的需求,需要配合流媒体服务程序进行处理,本着给钱就干的原则,把mediamtx和zlm的http请求接口研究了下,需求主要两个,一个是需要统计拉流的客户端有哪些,比如rtsp地址取流有几个,hls取流有几个。另一个需求是无人观看多久,自动断开推流,从源头这边卡死,为了节约流量,不然一直无人观看,从摄像头这边点播的视频流还一直在占用网络带宽,极其不合理,所以这两个需求也是非常合理,而且是刚需的。
之前用zlm的时候,就看到过对应文档有http请求接口,可以获取当前有哪些推拉流信息,当时没有这个需求,所以也没太关注,平时主要用的mediamtx作为流媒体服务使用,为何选他?因为绿色版小技巧单文件,其他平台的可执行文件在github官网也都有提供,非常方便使用,而zlm等其他程序,很难找到,尤其是最新版,或者说要支持webrtc的版本非常繁琐,而平时网页端拉流主要用webrtc居多,毕竟这个速度最快延迟最低。还一直以为mediamtx没有http的接口,去wiki看了下,居然也有,而且非常精简,就两个接口,v3/paths/get,默认不开启,需要在配置文件开启下api分组即可,默认端口是9997。使用下来非常棒,有个疑问就是,不知道为何都是做成的get而不是post。
既然能够统计到哪些流正在被拉取,以及拉取的人数,那开个定时器判断下,一个都没有被拉流就说明无人观看,一旦有人观看,就更新最后的观看时间,当超过最大时间还是无人观看,则认定需要主动关闭推流,也就是先停止视频点播。同时还有个注意点是复用点播,比如用户A点播了摄像头1的画面,用户B又来点播摄像头1,此时不用再去点播,直接返回该通道已经点播好的流地址即可。只有当没有点播过的时候才需要重新点播。
## 二、效果图


## 三、相关地址
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 文件名: ..

回复 发表
主题 版块