随笔分类 - Qt/C++视频监控
摘要:一、前言 视频监控系统中少不了用到视频轮询,按照设计的基本原则,先满足基本的用户需求,稳定跑起来,再去折腾更复杂的应用场景,于是本系统也做了个基本的视频轮询功能,可以设置轮询方案,给某个轮询方案设置轮询的地址列表,再多了个人性化的东西就是批量生成视频地址,大量的现场应用表明,某个区域安装的摄像机基本
阅读全文
摘要:一、前言 视频监控系统中,除了核心的显示实时视频以外,可能还需要配合串口网络通信之类的,用于通过指令数据收到和硬件交互,比如机器人监控系统中,除了实时显示机器人移动监控画面以外,还通过多个串口和下面的机器人在通信,发出指令让机器人做出相应的处理,接收机器人当前状态的数据解析显示,同时还接收机器人遥控
阅读全文
摘要:一、前言 在系统打印日志或者窗口信息栏中,各种临时打印信息都显示在这里,很多时候我们还需要对特定的类别的信息突出颜色显示,比如告警信息,甚至对不同的告警级别的信息还可以分别不同的颜色显示,这样看起来会显得更人性化,如果全部是一种颜色显示,没有区别对待不同的消息类型,用户会来不及及时发现警情等,造成遗
阅读全文
摘要:一、前言 随着视频监控系统本身功能的增多,以及用户定制功能的增多(比如视频监控系统摇身一变成了机器人监控、无人机监控、挖掘机监控等),除了提供工作模式这个切换开关,还需要对不同的工作模式启用禁用不同的功能,特意增加了功能激活的配置,比如1通道-64通道的切换,用户可以自行勾选需要启用哪些切换,这样在
阅读全文
摘要:一、前言 视频监控系统中集成了百度地图模块,支持在线和离线,离线的需要先把离线的瓦片地图下载到本地放到对应文件夹才可以正常使用,瓦片地图其实就是一张张图片,按照约定的规则,经纬度值+缩放比例进行排列,此模块全部封装成了地图组件,留出了对应的接口进行设置即可,其中包括地图秘钥、缩放级别等。 由于在视频
阅读全文
摘要:一、前言 数据库设置模块,因为很多项目都会用到,索性这期间也将这玩意重新架构了一遍,对应的数据库组件同样重写了一遍,关于数据库的参数无非就6个,数据库类型(sqlite、mysql等)、数据库名称、主机地址、通信端口、用户名称、用户密码。默认提供了视频监控系统的数据库脚本文件(拓展名sql结尾的文件
阅读全文
摘要:一、前言 视频参数之前在基本参数中,后面越来越多,直接独立了出来,甚至还拆分出来了视频参数1、视频参数2,参数越来越多分组也越来越多的时候,你会发现分组名称都不够用或者不方便命名,不能直观的表示该分组的含义,索性直接用1/2/3来定义,比如BaseConfig1、BaseConfig2、VideoC
阅读全文
摘要:一、前言 一个系统中肯定有不少的配置参数存储在配置文件中,配置文件可以是ini文件,也可以是json文件,还可以是自定义格式的文本文件,本人比较推荐ini文件,读写节点极其方便,支持中文内容,各种Qt内置的数据类型都能存储,甚至包括了QByteArray,比如布局文件可以直接存储到配置文件,是一堆看
阅读全文
摘要:一、前言 在整个视频监控系统的开发迭代升级过程中,遇到过各种奇奇怪怪的需求,都是客户提出来的,有些需求很合理,有些就不那么的自然了,牢记这客户是上帝的原则,能满足的尽量满足。相信各位同行的研发人员都会有同感,随着做的越深入,可能某一个功能要点,都能衍生好多种细分功能点需求,满足不同的用户场景需要。比
阅读全文
摘要:一、前言 图文报表对应以前的文字报表,以前的日志查询后,需要打印或者导出,都是一行行的文字记录,近期需要图文警情记录打印和导出,于是彻底趁机将之前的数据导入导出(xls/pdf)及打印组件彻底改造重写,这也是之前遗留了一个需要重新架构的组件,删除了60%的冗余代码,增加了结构体存储导出打印数据的参数
阅读全文
摘要:一、前言 视频上传用来将本地存储的视频文件上传到云端服务器,间接的实现了本地视频存储到云端的功能,其实本质上是先存储在本地,文件生成后再去上传到云端的,最终的效果一样就是,为了拓展兼容性,直接做了单独的视频上传模块,可以在界面上选择要上传的视频文件勾选,可以按照日期时间查询,通道查询等,可自定义云端
阅读全文
摘要:一、前言 之前就已经具备了本地回放、远程回放、设备播放3个模块,其中本地回放用来回放存储在软件本地电脑上的视频文件;远程回放需要通过调用厂家sdk或者GB28181(没实现,后期考虑增加)从NVR回放视频;设备播放通过通用的rtsp规则视频流的形式调用nvr存储录像或者实时录像回放;近期增加了个图片
阅读全文
摘要:一、前言 早些年开源过一个秘钥生成器,做的比较粗糙,离真正的商业应用还差点距离,这次在用户的强烈要求下,对秘钥认证这块做了重新的改版,对原有的类进行了重写,重写后一个类不到300行完成所有的事情,并提供了完整的生成秘钥示例和使用示例。在很多商业软件中,需要提供一些可以试运行的版本,这样就需要配套密钥
阅读全文
摘要:一、前言 整个onvif模块大部分的功能都有了以后,除了在demo上点点按钮可以执行获取结果显示外,最终还是要应用到视频监控中,在按钮上点点和系统中后台自动运行是两码事,比如onvif校时和事件订阅,不会说是傻到在监控系统界面上提供按钮给用户点击才去执行,最多做的应该是系统设置中提供两个开关比如自动
阅读全文
摘要:一、前言 通过onvif来调整图片的Brightness(亮度)、ColorSaturation(色彩饱和度)、Contrast(饱和度)这三个参数,可以实时观测到监控画面对应的变化,比如讲亮度Brightness拉到最低,可以看到这个画面一片漆黑。通过onvif来调节图片的颜色光线,就无须通过厂家
阅读全文
摘要:一、前言 在视频监控系统中,对摄像机进行时间设置也是很有必要的,这样就和服务器或者软件这边统一了时间,一般在摄像机的画面上可以设置OSD标识当前时间,这样存储到视频文件中回放的时候,也能和本地的时间一致,一般的视频监控系统默认都会开启ONVIF校时,通过标准的公开的onvif协议来对前端摄像机设备进
阅读全文
摘要:一、前言 预置位在视频监控系统中是不可或缺的存在,响应预置位功能的前提是要带预置位的云台球机,有些普通的云台球机其实不带预置位的,这个要检查清楚,硬件上不支持该功能的,你再怎么点也没反应。在这个视频监控系统的使用过程中,就有不少的用户会问这个问题,为啥他点了云台没法应之类的,前提是要硬件支持才行啊。
阅读全文
摘要:一、前言 时隔一年多,重新对视频监控系统的onvif内核重写,一方面为了兼容Qt6,一方面按功能分类提高效率。整体逻辑思路是一样的,主要的改动是由于Qt6不再支持QtXmlPatterns模块(其实这个模块在Qt5的后面的版本也逐渐提示为废弃模块),onvif协议通信中的数据都是带有命名空间的xml
阅读全文
摘要:一、前言 以前不知道onvif也可以做抓拍功能,直到近期重新用Onvif Device Test Tool工具测试的时候,发现还有抓图的接口,于是抓跑分析出要收发的数据,然后加入到自己封装的onvif操作类中,这个抓图有个应用场景就是报警以后,直接通过onvif抓图,而不需要打开实时视频流,基本上不
阅读全文
摘要:一、前言 事件订阅是近期增加的功能,主要是因为遇到越来越多的一个应用场景,能够接收摄像机的报警事件,比如几乎所有的摄像机后面会增加报警输入输出接口,如果用户外接了报警输入,则当触发报警以后,对应的事件也会通过onvif传出去,这样就相当于兼容了所有onvif摄像机厂家的报警事件接收,在一些应用系统中
阅读全文