程序聚合 软件案例 基于Qt+FFmpeg的视频监控与告警接收上位机系统

基于Qt+FFmpeg的视频监控与告警接收上位机系统

2026-01-20 10:59:04
行业:音视频、工业互联网
载体:Windows应用
技术:C++、Qt、FFmpeg

业务和功能介绍

在工业安防场景中,原有监控系统仅支持实时查看,无本地存储和告警联动能力,设备异常时无法追溯视频录像,运维响应延迟超 30 分钟。本项目旨在开发一款基于 Qt 的视频监控上位机,实现视频实时播放、多协议数据接收、告警联动存储,目标将运维响应时间缩短至 5 分钟内,支持 30 天以上视频本地归档。
软件功能、核心功能模块的介绍
核心功能包括 4 个模块:
视频播放模块:基于 FFmpeg 封装实现网络 / 本地视频流解码与实时渲染,支持暂停、重启等控制;
多协议数据接收模块:通过 WebSocket 接收设备状态数据,通过 ZeroMQ 接收告警事件(如设备离线、画面异动);
视频存储模块:支持手动 / 告警触发的视频本地存储,按设备 ID + 时间戳自动命名文件;
告警联动模块:接收到 ZeroMQ 告警后自动弹出弹窗、闪烁状态栏,并触发对应时段视频存储。
业务流程、功能路径描述
设备端推送视频流→上位机通过 FFmpeg 解码后渲染到 UI 界面;
服务端通过 WebSocket 推送设备在线状态→上位机解析后更新状态栏;
服务端通过 ZeroMQ 推送告警信息→上位机弹窗提醒并自动启动视频存储;
用户可手动选择时段或触发条件,导出本地存储的视频文件。

项目实现

整体架构和设计思路
项目采用Qt MVC 架构,分为 UI 层、业务逻辑层、底层工具层:
UI 层:使用 Qt Widgets 构建界面,通过信号槽实现跨线程通信;
业务逻辑层:封装 FFmpegPlayer、WebSocketClient、ZmqReceiver 三个核心工具类,解耦业务与底层实现;
底层工具层:FFmpeg 负责音视频编解码,Qt WebSocket 负责常规数据通信,ZeroMQ 负责高并发告警接收,多线程处理耗时操作避免 UI 阻塞。
负责FFmpeg 封装与视频存储模块的开发:
封装 FFmpegPlayer 类,实现视频流解码、渲染,支持 1080P@30fps 视频流畅播放,CPU 占用率控制在 20% 以内;
实现视频存储功能,支持告警联动存储,单文件最大支持 2 小时连续录制,存储文件完整率达 99.5%;
优化解码缓存逻辑,将视频首帧加载时间从 2s 缩短至 0.8s。
难点 1:FFmpeg 解码线程与 UI 线程渲染不同步,导致画面卡顿。
解决方案:使用 Qt 的QThread将解码逻辑放到子线程,通过signal/slot传递解码后的QImage,在 UI 线程异步渲染,避免阻塞。
难点 2:ZeroMQ 告警接收时高并发消息导致 UI 假死。
解决方案:将 ZeroMQ 的消息循环放到独立线程,通过QMetaObject::invokeMethod()在 UI 线程更新告警提示,保证 UI 响应流畅。
难点 3:视频存储时中途断电导致文件损坏。
解决方案:在停止存储时调用 FFmpeg 的av_write_trailer()写入文件尾,同时定期检查磁盘剩余空间,不足时自动停止存储并提示用户。

示例图片视频


QtCoder
30天前活跃
方向: 桌面端-Qt、
交付率:100.00%
相似推荐
quick_server
1、背景和目标:对企业所有服务请求进行轻量级安全和速度优化,减轻服务器的并发压力。 2、quick_server系统,不依赖外部引用,即插即用,主要用来进行极速快捷安全的http请求。大大减轻服务器的并发压力。轻松实现高并发场景下极速快捷安全的http请求。
json解析转换器
1、背景和目标:一、超级快速、安全对json的解析与对象转换;二、支持分布式超高并发 2、json解析转换器,支持分布式高并发,支持百万级别访问。用于快速进行json的解析与对象转换。原有的开源工具,要么安全性不够,要么性能不够强悍,要么不支持定制,很难满足企业日益严苛的业务需求。开发的这个json解析转换器,可以同时满足以上三种需求。
消息中心
1、背景和目标:解决高并发,对外提供统一的消息处理业务 2、功能模块介绍:六大功能模块:http通讯模块、缓存模块、消息队列模块、消息重试中心模块、消息调度模块、公共模块;对外百万级别并发项目,TPS可达1000/s。作为中间件,对外提供统一的消息处理业务。所有系统,包括电子签章平台、一照通行平台、一网通办平台,消息的请求和处理都经过消息中心。轻松实现异步、解耦、削峰。 3、功能描述:支持企业所有的内部系统接入,包括电子签章平台、一照通行平台、一网通办平台。轻松实现异步、解耦、削峰。
CRM客户管理后台
立项背景:针对中小型企业客户信息分散、销售跟进过程不透明、合同管理混乱等痛点,旨在打造一个轻量级的客户全生命周期管理后台,提升销售团队协作与转化效率。 核心功能:涵盖管理员登录鉴权、客户主表管理、联系人维护、跟进记录追踪、合同管理等六大模块。支持客户信息分页查询、关键字搜索、新增编辑与逻辑删除;客户详情页以名片形式集中展示联系人、跟进记录及关联合同。 业务流程:从潜在客户录入,到日常跟进记录,再到最终合同签订与操作日志审计,覆盖完整的销售业务闭环。
个人记账与资产管理平台
本项目是一套从零搭建的全栈个人财务管理平台,目标是替代功能单一的记账工具,把日常记账、资金账户、借贷往来、预算控制、资产盘点收敛到一个数据自主的系统中。系统由 12 个业务模块、23 个控制器、170 个 REST 接口、36 张数据表构成:记账核心支持三级分类树、商家联想、多平台支付与 CSV 批量导入导出,每笔账单自动联动账户余额并留存流水日志;借贷模块实现未结清 / 已结清 / 已放弃三态模型,支持分期还款与坏账核销;预算模块提供月度 + 年度双层体系与阶梯式执行规则;资产模块通过快照与趋势图呈现净资产变化;报表模块支持从月度 / 年度报表下钻到分类明细。系统还包含完整 RBAC 权限体系、软删除回收站、8 套主题实时切换与中英双语国际化。核心业务流程为:记一笔 → 余额幂等联动 → 报表与预算同步更新;借据从创建、关联账单凭证、分期还款到三态判定的完整生命周期;以及登录后由后端菜单树动态生成侧边菜单、路由与区块双重门控的权限链路。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服