标题:Qt编写视频监控系统78-视频推流到流媒体服务器
作者:liudianwu
日期:2023-06-06 08:38
内容:
## 一、前言
视频推流作为独立的模块,目前并没有集成到视频监控系统中,目前是可以搭配监控系统一起使用,一般是将添加好的摄像头通道视频流地址打开后,读取视频流重新推到流媒体服务器,然后第三方可以从流媒体服务器拉取视频流地址,相当于订阅分发,可以多路,按照需要处理,谁需要谁就去订阅拉取,这样功能独立开来,而不是将分发功能做在视频监控系统上,大大减轻视频监控系统的压力,至于到底是谁到底拉取多少路,不需要监控系统操心,由流媒体服务器专心做这个事情就可以了,而且现在很多流媒体服务器都用go编写,有个巨大的优势好处就是go天生高并发,往往拉流也是高并发的,这样就不用自己去实现什么高并发的功能。
推拉流一般涉及到三个程序要素:推流程序比如ffmpeg,拉流程序比如ffplay或各种播放器,流媒体服务程序比如mediamtx(原rtsp-simple-server)、srs、EasyDarwin、LiveQing、ZLMediaKit,刚开始做推流开发都会有个疑问,以为只要有推流拉流就可以玩起来,其实都需要有个专门的流媒体服务程序做接收流并分发,其实ffmpeg全家桶以前还自带个ffserver就是流媒体服务程序,后面可能因为不是主业逐渐去掉了这个。个人推荐用mediamtx,go写的,单文件,支持windows、linux、mac三大操作系统,亲测全部好用。如果需要有管理的后台那就推荐LiveQing。
## 二、效果图
## 三、体验地址
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_system。
## 四、相关代码
```cpp
#include "ffmpegsavesimple.h"
//用法示例(保存文件/推流)
#if 0
FFmpegSaveSimple *f = new FFmpegSaveSimple(this);
f->setUrl("f:/mp4/1.mp4", "f:/1.mp4");
f->setUrl("f:/mp4/1.mp4", "rtmp://127.0.0.1:6908/stream");
f->start();
#endif
FFmpegSaveSimple::FFmpegSav ..
#1 [潘胜银 06-08 21:48]
刘哥您好,工作之余,您基本每天都会学习吗?