Qt编写可视化大屏电子看板系统31-模块9视频监控 今亮点
(资料图片仅供参考)
一、前言
视频监控模块采用ffmpeg作为解码内核,可以在系统设置中填入一个视频地址,同时支持本地视频文件、USB摄像机、远程onvif摄像机(海康大华等)、网络视频地址,大屏系统中默认有一个视频监控,如果需要显示多个则new多个视频监控模块即可,在本系统中每个最小单元的小模块都是一个类,需要多少个就可以new多少个出来显示,二级模块作为一个悬停窗体嵌入主界面mainwindow,都可以拖动到任意位置自动嵌入。
视频监控模块有多个参数设置,以便用户设置,最开始做的是内置的写死在代码中,后面随着用户场景的变化,留出参数用户设置更灵活,参数如下:
视频拉伸:有些客户需要拉伸填充有些需要等比例缩放; 视频回调:有些板子或者电脑没有opengl或者版本过低需要开启视频回调才能正常绘制图像; 播放音频:开启后会播放视频和视频流中的声音; 视频循环:开启后播放视频完成后会立即重复播放; 超时时间:打开视频的超时时间,有些网络地址需要设置久一点; 通信方式:视频流采用TCP还是UDP协议播放;视频监控内核功能特点:
多线程实时播放视频流+本地视频+USB摄像头等。 支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。 多线程显示图像,不卡主界面。 自动重连网络摄像头。 可设置边框大小即偏移量和边框颜色。 可设置是否绘制OSD标签即标签文本或图片和标签位置。 可设置两种OSD位置和风格。 可设置是否保存到文件以及文件名。 可直接拖曳文件到ffmpegwidget控件播放。 支持h265视频流+rtmp等常见视频流。 可暂停播放和继续播放。 支持存储单个视频文件和定时存储视频文件。 自定义顶部悬浮条,发送单击信号通知,可设置是否启用。 可设置画面拉伸填充或者等比例填充。 可设置解码是速度优先、质量优先、均衡处理。 可对视频进行截图(原始图片)和截屏。 录像文件存储支持裸流和MP4文件。 音视频完美同步,采用外部时钟同步策略。 支持seek定位播放位置。 支持在线网络音视频文件比如http开头mp4、mp3结尾的。 可选句柄模式(GPU绘制)、回调模式(QPainter绘制)。 GPU绘制模式同时支持拉伸和等比例绘制。 支持qsv、dxva2、d3d11va等硬解码。 硬解码和GPU组合,超低CPU占用,支持64路视频。 支持安卓和嵌入式linux,交叉编译即可。二、功能特点
采用分层设计,整体总共分三级界面,一级界面是整体布局,二级界面是单个功能模块,三级界面是单个控件。 子控件包括饼图、圆环图、曲线图、柱状图、柱状分组图、横向柱状图、横向柱状分组图、合格率控件、百分比控件、进度控件、设备状态面板、表格数据、地图控件、视频控件等。 二级界面可以自由拖动悬浮,支持最小化隐藏、最大化关闭、响应双击自定义标题栏。 数据源支持模拟数据(默认)、数据库采集、串口通信(需定制)、网络通信(需定制)、网络请求等,可自由设定每个子界面的采集间隔即数据刷新频率。 采用纯QWidget编写,亲测Qt4.6到Qt6.2任意版本,理论上支持后续其他Qt版本。 超强跨平台,亲测windows、linux、mac、国产uos、国产银河麒麟kylin等系统,效果完美,同时还支持嵌入式linux比如树莓派、香橙派、全志、imx6等。 同时集成了自定义控件、qchart饼图、echart地图等功能。 内置多套配色风格样式(紫色、蓝色、深蓝、黑色),默认紫色,自适应任意分辨率。 可设置系统标题、目标分辨率、布局方案,启动立即应用。 可设置主背景颜色、面板颜色、十字线游标颜色等各种颜色。 可设置多条曲线不同颜色,没有设置颜色的情况下内置多套精美颜色随机应用。 可设置标题栏背景颜色、文字颜色。 可设置曲线图表背景颜色、文字颜色、网格颜色。 可设置正常颜色、警戒颜色、报警颜色、禁用颜色、百分比进度颜色。 可分别设置各种字体大小,比如全局字体、软件名称、标题栏、子标题栏、加粗标签等。 可设置标题栏高度、表头高度、行高度。 曲线支持游标、定位线、悬停高亮数据点、悬停显示值。 柱状图支持顶部(可设置顶端、上部、中间、底部)显示数据,全部自适应计算位置。 支持平滑曲线,内置多种平滑曲线算法,还支持面积图平滑。 面积图填充颜色可选多种规则比如单色透明度填充、透明度渐变填充等。 数据库支持sqlite、mysql、postgresql、oracle、国产人大金仓等数据库。 主界面直接鼠标右键切换布局、配色方案、关闭开启某个二级窗体。 自动记忆所有子窗口的大小和位置,下次启动立即应用。 动态加载布局方案菜单,可以动态新建布局、恢复布局、保存布局、另存布局等,用户可以制造任意布局。 二级窗体,双击从主窗体分离出来浮动,可以自由调整大小。再次双击标题栏最大化,再次双击还原。 子模块也可以全屏显示作为一个大屏,这样就可以一个大屏拓展出多个子大屏,放大查看子模块的数据详情,适用多屏展示。 每个模块都可以自定义采集速度,如果是数据库采集会自动排队处理,后期还可以拓展每个子模块都独立的数据库采集。 提供系统设置模块进行整体的配置参数设置,效果立即应用。 提供精美炫酷的大屏地图模块,包括静态图片、闪烁效果、迁徙效果、世界地图、区域地图等,可指定点的经纬度坐标,识别单击响应,可以做地图跳转等,每个点都可以不同的颜色和提示信息。 除了提供大屏系统外,还将每个模块都做了独立的模块示例界面,每个模块都可以独立学习使用,里面用到的控件也单独做了控件示例界面,方便学习每个控件如何使用。 非常详细的开发和使用手册,其中包括数据库说明、模块对照图、控件对照图、项目结构、代码说明(精确到每个类)、演示demo、使用方法等。三、体验地址
体验地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 文件名:bin_bigscreen.zip。 国内站点:https://gitee.com/feiyangqingyun 国际站点:https://github.com/feiyangqingyun 个人主页:https://blog.csdn.net/feiyangqingyun 知乎主页:https://www.zhihu.com/people/feiyangqingyun/ 在线文档:https://feiyangqingyun.gitee.io/qwidgetdemo/bigscreen/四、效果图
五、核心代码
#include \"frmmodulevideo.h\"#include \"ui_frmmodulevideo.h\"#include \"quihelper.h\"frmModuleVideo::frmModuleVideo(QWidget *parent) : QWidget(parent), ui(new Ui::frmModuleVideo){ ui->setupUi(this); this->initForm();}frmModuleVideo::~frmModuleVideo(){ delete ui;}void frmModuleVideo::showEvent(QShowEvent *){#ifdef videoffmpeg //延时处理不然布局加载后会先显示再隐藏瞬间反复来两次导致隐藏的时候无法暂停 QTimer::singleShot(200, this, SLOT(open())); if (!isLoad) { isLoad = true; } else { videoWidget->next(); }#endif}void frmModuleVideo::hideEvent(QHideEvent *){#ifdef videoffmpeg //界面不可见的时候暂停以节省资源 videoWidget->pause();#endif}void frmModuleVideo::initForm(){ isLoad = false; url = AppConfig::VideoUrl;#ifdef videoffmpeg videoWidget = new FFmpegWidget; videoWidget->setBorderWidth(0); videoWidget->setBgText(\"\"); //设置拉伸填充图像 videoWidget->setFillImage(AppConfig::VideoFillImage); //设置是否回调,有些嵌入式环境只能用回调 videoWidget->setCallback(AppConfig::VideoCallback); //设置是否播放声音 videoWidget->setPlayAudio(AppConfig::VideoPlayAudio); //设置是否重复播放 videoWidget->setPlayRepeat(AppConfig::VideoPlayRepeat); //设置打开超时时间,一些推流要把时间设置大一些 videoWidget->setCheckTime(AppConfig::VideoCheckTime * 1000); //设置视频流通信协议 videoWidget->setTransport(AppConfig::VideoTransport); //把视频控件加到布局中 ui->widgetMain->layout()->addWidget(videoWidget);#endif}void frmModuleVideo::setUrl(const QString &url){ this->url = url;}void frmModuleVideo::open(){#ifdef videoffmpeg if (isVisible() && !videoWidget->getIsPlaying()) { videoWidget->setUrl(url); videoWidget->open(); }#endif}
【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】
点击这里:
-
金都城:黄金开启三浪下跌反弹仍是高空,原油将继续走强在一系列强势经济数据支持下,9月8日,也就是本周周五ICE美元指数
-
阿根廷tini(史蒂芬说:阿根廷70万人请愿)阿根廷球迷杀人诛心了,哈哈!不甘心的法国人,20万人在网上签名请愿,
-
突发!日媒:日本外相访问乌克兰,系俄乌冲突爆发以来首次日本外相首次访乌克兰,支持其抵御俄罗斯入侵。
-
西安多区通知:9月9日10点开始预约HPV疫苗新一波的HPV疫苗预约来了!9月9日(星期六)上午10:00,雁塔区、新城区、
-
坤鹏论:读《形而上学》 学习亚里士多德的第一哲学(16)真正有本事的是疏,而非堵与禁。——坤鹏论第一卷第六章(二)原文:而
-
茶和咖啡(关于茶和咖啡简述),你们好,今天0471房产来聊聊一篇和咖啡,和咖啡简述的文章,网友们对
-
如何下载豆丁网(豆丁下载器)来为大家解答以上问题,如何下载豆丁网,豆丁下载器很多人还不知道,现
-
逾5千家上市公司披露年报,235家公司被出具非标审计意见逾5千家上市公司披露年报,235家公司被出具非标审计意见,年报,非标,证
-
“讲好山东政法故事”创意传播大赛暨“我的政法故事”征文优秀作品展示举行海报新闻记者丛萍济南报道9月8日下午,忠诚的力量——“讲好山东政法故
-
因控股股东非经营性资金占用触及违规 ST天顺及控股股东、实控人等相关责任人遭深交所通报批评深交所9月8日向ST天顺及控股股东舟山天顺股权投资有限公司,控股股东关
-
曼联女足首任主帅是曾入狱的恋童癖,但曼联仍邀他参加俱乐部活动曼联女足首任主帅是曾入狱的恋童癖,但曼联仍邀他参加俱乐部活动,英超,
-
房地产收并购市场热度回升 八月交易额明显增长房地产收并购市场8月热度回升显著,企业正在加快处置资产回笼资金。根
-
合肥一中学班主任向学生推销教辅材料 校方:行为错误,已纠正合肥一中学班主任向学生推销教辅材料 【合肥一中学班主任向学生推销40
-
五根手指各叫什么名字_五根手指分别叫什么1、拇指、食指、中指、无名指、小指。本文到此讲解完毕了,希望对大家
-
幸福蓝海9月8日快速反弹以下是幸福蓝海在北京时间9月8日13:41分盘口异动快照:  9月
-
2开双控开关接线图解(2开)1、2开纸的尺寸是:530mm×760mm不过既然是学校发的就可以就用那个啊。
-
南通向全市教育工作者发放“江海尊师卡”本报讯(记者王艳芳)为弘扬尊师重教的传统美德,充分凸显对广大教师群
-
深入分布式一致性:Raft 和 etcdRaft分布式一致性是构建可靠的分布式系统的关键要素之一。为了确保数据的一
-
北交所总经理隋强:打造资本市场改革试验田 北交所进入高质量建设2.0版本9月7日,北交所联合北京市地方金融监管局、市科委中关村管委会、市经信
-
阿维塔12重磅来袭!比极氪001更酷炫由长安汽车、华为科技以及宁德时代三家巨头共同鼎力打造的阿维塔,在市
-
厚普股份(300471)8月31日主力资金净买入1221.10万元截至2023年8月31日收盘,厚普股份(300471)报收于13 47元,上涨2 51%,
-
文昌航天发射场规划建设新一代载人登月火箭发射工位记者8月31日从文昌航天发射场获悉,目前该发射场正在规划建设新一代载
-
西安警方捣毁特大“网络水军”团伙 125人被采取刑事强制措施虚假信息、诽谤攻击、非法推广、恶评去势、操控扰乱网上舆论秩序,“网
-
广西自贸试验区加快构建面向东盟跨境产业链供应链【东盟专线】广西自贸试验区加快构建面向东盟跨境产业链供应链中新社南
-
福晟国际上半年收入1.88亿元 筹集新借贷0元观点网讯:8月31日,福晟国际控股集团有限公司发布了截至2023年6月30日
-
2023暑期档票房206.08亿2023暑期档票房206 08亿:格隆汇8月31日|据灯塔专业版,截至8月31日21
-
婚礼现场布置设计(婚礼现场布置)精选小编来为大家解答以上问题。婚礼现场布置设计,婚礼现场布置很多人
-
福州楼市限购再松绑 “本地户籍+市区”成为政策亮点为更好满足居民刚性和改善性住房需求,促进房地产市场平稳健康发展,8
-
NH4CL的电子式和结构式(nh4cl的电子式)1、nh4+中的n的其中一对孤对电子也h形成配位键,表示为n→h,其他的就
-
镇江67个乡镇(街道)全部建立应急办 将应急管理的触角延伸到基层末梢“本次培训会议,住宿3人及以上的‘三合一’场所要通知到位、派人参加