## 一、前言说明
最近搞嵌入式板子开发搞上瘾了,一连远程了十几个开发板上测试视频相关项目,比如视频综合应用和视频监控系统以及推流,试下来效果都不错,有RK3568/RK3576/RK3588等,厂家至少四五种,都大差不差,毕竟核心都是瑞星微的,可能涉及到一些版本问题,就是有些板子是老的mpp硬解,有些是新的,这样就需要用对应的硬解的ffmpeg库去做解码,不通用,因为ffmpeg编译的时候就链接了对应的库,版本不一样的话会导致编译通不过。在这几款板子中,3588是性能最强劲的,据说还有个3588s的要横空出世,又是一片血雨腥风。
现在好多都是用来做智能AI盒子,尤其是用来做行为分析,主要用yolo啥的,刚好我的视频监控系统集成了yolo运算后,对应的结果rect区域显示到对应视频上,多线程运行,也提供了从视频通道取一张图片数据传入yolo分析,搭配起来使用非常完美,**后期可能会定义一套私有协议,json格式数据,用于tcp/udp/http/mqtt等方式接收数据,用于插入日志记录、显示图文警情、显示人工智能结果(含物体区域比如人脸框和文字描述)等。这样第三方(比如只懂python的用户)只需要根据私有协议来就行。这样就不需要如何熟悉本软件源码,只需要会简单的使用即可。**
- 本软件目前本身没有AI人工智能算法加持,需要自行加上AI算法。
- 本软件内置的各种事件订阅是基于onvif协议,只要设备支持onvif协议,都可以正常接入。比如海康大华的摄像头和NVR等设备都支持前端做AI算法识别,将识别的结果通过onvif发给软件。
- 本软件内置了各种结果展示,包括报警文字记录,报警图像展示,报警视频录像、报警视频回放等,这些都是提供的通用的API函数接口调用使用,也就是直接Qt程序中调用全局静态API函数去处理。
- 本软件目前提供了相关类是DeviceThreadUI和DeviceVideoSmart。
- DeviceThreadUI专门演示如何在线程中插入警情记录和图文警情等信息、演示每隔一段时间插入消息、演示设备GPS移动、演示报警闪烁、演示指定通道编号设置视频和通道交换等功能。
- DeviceVideoSmart专门演示如何拿到一路视频数据,然后视频数据自己去做人工智能算法识别(比如用yolo),识别后的结果可以是一堆rect矩形区域,然后这些区域可以发回视频控件显示。这些计算后的区域信息也可以保存到视频文件或者重新推流出去(如果是推流需要额外购买推流组件)。
- **后期可能会定义一套私有协议,json格式数据,用于tcp/udp/http/mqtt等方式接收数据,用于插入日志记录、显示图文警情、显示人工智能结果(含物体区域比如人脸框和文字描述)等。这样第三方(比如只懂python的用户)只需要根据私有协议来就行。这样就不需要如何熟悉本软件源码,只需要会简单的使用即可。**
- 建议做二次开发的时候,单独起一个目录,新建个pri,后面所有的自己的处理都在这个目录中,隔离开来,方便后期拓展,这样如果监控系统源码有更新,也不需要大动干戈,只需要替换原有的监控系统源码即可。
- 如果想录像存储或者推流带上人工智能运算后的各种信息比如一堆rect或者文字水印,需要在系统设置中视频参数部分,编码下拉框选择自动,默认是不处理,不处理意味着保存的源头裸流264/265数据,自动的话就是编码保存,各种图形和文字水印都需要重新编码才能写入到文件。
- 如果开启了编码保存,则需要占用CPU资源,分辨率越大,占用越多,265比264占用更多。所以建议如果需要编码保存,运算那边尽量用子码流,也就是低分辨率的视频。
## 二、效果图
## 三、相关地址
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。
## 四、功能特点
1. 主界面采用停靠窗体模式,各种组件以小模块的形式加入,可自定义任意模块加入。
2. 停靠模块可拖动任意位置嵌入和悬浮,支持最大化全屏,支持多屏幕。
3. 双重布局文件存储机制,正常模式、全屏模式都对应不同的布局方案,自动切换和保存,比如全屏模式可以突出几个模块透明显示在指定位置,更具科幻感现代化。
4. 原创onvif协议机制,采用底层协议解析(udp广播搜索+http请求执行命令)更轻量易懂易学习拓展,不依赖任何第三方组件比如gsoap。
5. 原创数据导入、导出、打印机制,跨平台不依赖任何组件,瞬间导出数据。
6. 内置多个原创组件,宇宙超值超级牛逼,包括数据导入导出组件(导出到xls、pdf、打印)、数据库组件(数据库管理线程、自动清理数据线程