技术标签: Qt/C++大屏电子看板 qt Qt学习 Qt数据库请求
视频监控模块采用ffmpeg作为解码内核,可以在系统设置中填入一个视频地址,同时支持本地视频文件、USB摄像机、远程onvif摄像机(海康大华等)、网络视频地址,大屏系统中默认有一个视频监控,如果需要显示多个则new多个视频监控模块即可,在本系统中每个最小单元的小模块都是一个类,需要多少个就可以new多少个出来显示,二级模块作为一个悬停窗体嵌入主界面mainwindow,都可以拖动到任意位置自动嵌入。
视频监控模块有多个参数设置,以便用户设置,最开始做的是内置的写死在代码中,后面随着用户场景的变化,留出参数用户设置更灵活,参数如下:
视频监控内核功能特点:
公众号:Qt实战,各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发。
公众号:Qt入门和进阶,专门介绍Qt/C++相关知识点学习,帮助Qt开发者更好的深入学习Qt。多位Qt元婴期大神,一步步带你从入门到进阶,走上财务自由之路。
#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
}
文章浏览阅读344次。nginx配置映射,js读取xml文件,整理成规整excel格式的字符传_js浏览器环境excel转xml
文章浏览阅读648次。jett是使用Excel电子表格模板快速创建Excel电子表格报告的工具。_spring boot 导出模板数据
文章浏览阅读231次。基础命令学习目录首页原文链接:https://www.cnblogs.com/wensiyang0916/p/6514820.htmlvmstat 1 1表示每秒采集一次vmstat 2 1 2表示2秒采集一次,1表示只采集一次r 表示运行队列(就是说多少个进程真的分配到CPU) 我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值..._vmstat 1 2
文章浏览阅读413次。1、无源波分前传方案简述无源波分采用WDM技术,将BBU/DU至不同RRU/AAU的电路采用不同的波长合路到一根光纤中传输。例如,一个4G宏站某个频段的S111站共3个RRU,BBU至RRU的收发端口数共6个,在BBU侧和RRU侧各采用1个6路的OTM(光终端复用器)就可以将BBU和RRU间的收发信号合路到一根光纤中传输,如图1所示。图1 无源WDM前传方案由于OTM是无源器件,故各业务端口光模块..._彩光模块 光纤 发射部分 bbu 波长较大
文章浏览阅读635次。## 建边(图论的中一般都会牵涉到建边的问题,下面的这三种建边的方法视情况选取) - **1.1—邻接矩阵** ==**用邻接矩阵建边的时候,注意题目中可能会有重边!重边!重边!!!**==(根据情况选短的或长的那条),后面两种方法应该不会受重边的影响(目前还没有遇到过有影响的)```cint main(){ int sx,ex,len; //n个点,m条边 while(scanf("%d%d",&n,&m)!=EOF) { _邻接矩阵4vector
文章浏览阅读1.7k次。之前写过一篇文章 《研发管理成熟度模型,找到起点再出发》,这里面描述了研发管理体系的发展方向,本篇文章要说的是,企业研发管理持续沿着这个模型演进,相关的必要条件,和大致里程碑。关于研发管理成熟图模型,可以参考关联文章,这里不重复了。必要条件对于技术型企业,产品和技术研发自然是公司战略的主题之一,因此,研发管理也应该成为战略主题的一部分,在公司战略和研发总体战略的指导下,形成研发管理自身的战略。演进路标..._施行研发管理,顶层设计是第一步——研发管理自身的战略
文章浏览阅读5.3w次,点赞39次,收藏399次。根据Google的报告,截止2017年5月为止,Android活跃用户已超过20亿,并还在持续增长中。Android系统在几个主要的市场上已超过了iOS系统,特别是在美国,欧洲和日本,然而苹果确实在中国市场找到了一席之地。未来的市场到底谁是“霸主”我们还无从得知,但Android现在的趋势已经超过iOS。这也是为什么越来越多的设计师投身于Android开发设计。本篇文章从不同角度给Android开..._android 项目学习
文章浏览阅读6.8k次。OA选型一直是企业信息化建设面临的难题,企业内部没有人懂OA系统,OA行业也没有什么权威机构和数据可以参考,OA系统厂商排名纯属自嗨,那么,到底该如何进行OA选型?看成功企业的选型标准!这些企业CIO在选型时积累的经验都具有极高参考价值,他们的OA选型标准就是你的OA选型指南。OA选型1、综合实力人员:完整的团队是OA项目实施落地的保障,对于企业OA选型来说至关重要,也是企业CIO主要考量标准之一..._fanweioa
文章浏览阅读22次。1. 编译环境# CentOS7# java git gcc环境yum install git wget yum java-1.8.0-openjdk* gcc -y# maven环境wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin...
文章浏览阅读1k次,点赞29次,收藏27次。Spring MVC所有的请求都经过Dispatcherservlet来统一分发。DispatcherServlet将请求分发给Controller之前,需要借助于Spring MVC提供的HandlerMapping定位到具体的Controller。HandlerMapping接口负责完成客户请求到Controller映射。Controllr接口将处理用户情求,这和Java Servlet扮演的角色是一致的。_springmvc处理器
文章浏览阅读31次。ES6 模块暴露。_es6暴露模块
文章浏览阅读8.9k次,点赞3次,收藏14次。Intellij IDEA远程debug教程_intell运行调试配置怎么设置