当前位置: 首页 > news >正文

上传产品网站怎么做保定seo推广公司

上传产品网站怎么做,保定seo推广公司,宿迁建设网站,欧美网站模板 psd一、前言一直都想搞个安卓版本的视频监控程序,很早以前弄过一个,采用的是早期的ffmpeg2的lib文件,对于现在众多的网络流媒体格式,支持有限,而且新的Qt编写安卓程序,结构上也变动了,新的安卓系统…

一、前言

一直都想搞个安卓版本的视频监控程序,很早以前弄过一个,采用的是早期的ffmpeg2的lib文件,对于现在众多的网络流媒体格式,支持有限,而且新的Qt编写安卓程序,结构上也变动了,新的安卓系统权限要求也和以前处理不一样了,现在需要动态授权,以前是直接配置文件写好需要哪些权限就行,所以近期特意全部重写了一遍安卓版本的视频监控程序,内核还是采用的ffmpeg,换成了最新的ffmpeg4版本,在ubuntu系统上用安卓编译器编译了对应的lib文件,然后放到win上编写Qt+安卓程序。

为了统一管理一个版本的ffmpeg视频监控内核程序,直接在现有的程序上修改,增加了动态申请权限的代码,同时对应的进度条和复选框等指示器放大,方便选中,通道画面限定默认4个,可以自行增加画面数量,一开始测试保存截图和视频文件的时候,发现死活不成功,后面动态权限申请成功以后,把把成功,这里搞了很久,原来对不一样的安卓系统处理要求不一样。新时代新技术层出不穷,迭代真是非常的快,想要保持活力看来还得不断的学习及了解新技术新知识。一个有前途的程序员每天60%的时间要拿出来学习研究,40%用来应付工作,这样每两年工资可翻一倍,而且最要命的是程序员也是要有一些天赋的,并非所有人都适合,大部分程序员把时间都扔在了业务逻辑之中,最后被淘汰!这也是35岁中年危机的主要原因。事实上有实力的程序员越老越值钱,扯远了!

二、功能特点

  1. 多线程实时播放视频流+本地视频+USB摄像头等。
  2. 支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。
  3. 多线程显示图像,不卡主界面。
  4. 自动重连网络摄像头。
  5. 可设置边框大小即偏移量和边框颜色。
  6. 可设置是否绘制OSD标签即标签文本或图片和标签位置。
  7. 可设置两种OSD位置和风格。
  8. 可设置是否保存到文件以及文件名。
  9. 可直接拖曳文件到ffmpegwidget控件播放。
  10. 支持h265视频流+rtmp等常见视频流。
  11. 可暂停播放和继续播放。
  12. 支持存储单个视频文件和定时存储视频文件。
  13. 自定义顶部悬浮条,发送单击信号通知,可设置是否启用。
  14. 可设置画面拉伸填充或者等比例填充。
  15. 可设置解码是速度优先、质量优先、均衡处理。
  16. 可对视频进行截图(原始图片)和截屏。
  17. 录像文件存储支持裸流和MP4文件。
  18. 音视频完美同步,采用外部时钟同步策略。
  19. 支持seek定位播放位置。
  20. 支持qsv、dxva2、d3d11va等硬解码。
  21. 支持opengl绘制视频数据,极低CPU占用。
  22. 支持安卓和嵌入式linux,交叉编译即可。

三、效果图

16a26e5c73630606978e6c6bbb25ea82.png

2583d79e0cc85a50334b9fa7740dca5d.png

06e4f34d8e13b9696e2e7c75f26b64ae.png

四、相关站点

  1. 国内站点:https://gitee.com/feiyangqingyun/QWidgetDemo
  2. 国际站点:https://github.com/feiyangqingyun/QWidgetDemo
  3. 个人主页:https://blog.csdn.net/feiyangqingyun
  4. 知乎主页:https://www.zhihu.com/people/feiyangqingyun/
  5. 体验地址:https://blog.csdn.net/feiyangqingyun/article/details/97565652

五、核心代码

#include "head.h"
#include "frmtab.h"//动态设置权限
bool checkPermission(const QString &permission)
{
#ifdef Q_OS_ANDROID
#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))QtAndroid::PermissionResult result = QtAndroid::checkPermission(permission);if (result == QtAndroid::PermissionResult::Denied) {QtAndroid::requestPermissionsSync(QStringList() << permission);result = QtAndroid::checkPermission(permission);if (result == QtAndroid::PermissionResult::Denied) {return false;}}
#endif
#endifreturn true;
}void initStyle()
{//复选框单选框滑块等指示器大小QStringList list;int rbtnWidth = 20;int ckWidth = 18;list.append(QString("QRadioButton::indicator{width:%1px;height:%1px;}").arg(rbtnWidth));list.append(QString("QCheckBox::indicator,QGroupBox::indicator,QTreeWidget::indicator,QListWidget::indicator{width:%1px;height:%1px;}").arg(ckWidth));QString normalColor = "#E8EDF2";QString grooveColor = "#1ABC9C";QString handleColor = "#1ABC9C";int sliderHeight = 12;int sliderRadius = sliderHeight / 2;int handleWidth = (sliderHeight * 3) / 2 + (sliderHeight / 5);int handleRadius = handleWidth / 2;int handleOffset = handleRadius / 2;list.append(QString("QSlider::horizontal{min-height:%1px;}").arg(sliderHeight * 2));list.append(QString("QSlider::groove:horizontal{background:%1;height:%2px;border-radius:%3px;}").arg(normalColor).arg(sliderHeight).arg(sliderRadius));list.append(QString("QSlider::add-page:horizontal{background:%1;height:%2px;border-radius:%3px;}").arg(normalColor).arg(sliderHeight).arg(sliderRadius));list.append(QString("QSlider::sub-page:horizontal{background:%1;height:%2px;border-radius:%3px;}").arg(grooveColor).arg(sliderHeight).arg(sliderRadius));list.append(QString("QSlider::handle:horizontal{width:%2px;margin-top:-%3px;margin-bottom:-%3px;border-radius:%4px;""background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #FFFFFF,stop:0.8 %1);}").arg(handleColor).arg(handleWidth).arg(handleOffset).arg(handleRadius));//偏移一个像素handleWidth = handleWidth + 1;list.append(QString("QSlider::vertical{min-width:%1px;}").arg(sliderHeight * 2));list.append(QString("QSlider::groove:vertical{background:%1;width:%2px;border-radius:%3px;}").arg(normalColor).arg(sliderHeight).arg(sliderRadius));list.append(QString("QSlider::add-page:vertical{background:%1;width:%2px;border-radius:%3px;}").arg(grooveColor).arg(sliderHeight).arg(sliderRadius));list.append(QString("QSlider::sub-page:vertical{background:%1;width:%2px;border-radius:%3px;}").arg(normalColor).arg(sliderHeight).arg(sliderRadius));list.append(QString("QSlider::handle:vertical{height:%2px;margin-left:-%3px;margin-right:-%3px;border-radius:%4px;""background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #FFFFFF,stop:0.8 %1);}").arg(handleColor).arg(handleWidth).arg(handleOffset).arg(handleRadius));qApp->setStyleSheet(list.join(""));
}int main(int argc, char *argv[])
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
#if (QT_VERSION > QT_VERSION_CHECK(5,4,0))//设置opengl模式 AA_UseDesktopOpenGL AA_UseSoftwareOpenGL AA_UseOpenGLES//QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
#endifQApplication a(argc, argv);App::setFont();App::setCode();App::ConfigFile = AppPath + "/video_ffmpeg.ini";App::readConfig();frmTab w;
#ifdef Q_OS_ANDROID//请求权限checkPermission("android.permission.READ_EXTERNAL_STORAGE");checkPermission("android.permission.WRITE_EXTERNAL_STORAGE");QString strDir = AppPath + "/snap";QDir dir(strDir);if (!dir.exists()) {dir.mkpath(strDir);}initStyle();w.showMaximized();
#elsew.resize(1100, 700);w.setWindowTitle(QString("qt+ffmpeg 示例 %1 %2").arg(App::Version).arg(App::TitleFlag));w.show();App::setFormInCenter(&w);
#endifreturn a.exec();
}
http://www.lbrq.cn/news/2434447.html

相关文章:

  • 主题之家wordpress宁波seo外包公司
  • 政府网站建设的重要性网络营销最基本的应用方式是什么
  • 新手学习网站建设搜狗网址导航
  • 做搜狗网站快速排名软百度推广seo怎么学
  • Wordpress多站点共享用户百度收录工具
  • 做网站超链接网络营销实施方案
  • 市委网站建设营销计划
  • 贵阳网站建设方案报价网站推广平台有哪些
  • 电子商务网站设计原理知识点手机app推广平台
  • 一个网站怎么推广seo公司推广
  • 移动端网站 用什么软件做线上销售方案
  • 大丰做网站价格怎么在百度投放广告
  • 网络工程师中级职称考试内容厦门百度seo公司
  • 如何写网站建设方案百度霸屏全网推广
  • 威县企业做网站关键词整站优化
  • 如何做网站压力测试排名网站
  • 在日本做色情网站品牌营销策划方案
  • 怎么做老虎机网站的宁波seo网络推广产品服务
  • 购物平台排行榜2020seo搜索引擎优化关键词
  • 做网站卖产品要注册公司吗抖音seo源码搭建
  • wordpress配置数据库文件夹电脑优化是什么意思
  • 域名和网站的区别北京昨晚出什么大事
  • 为公益组织做网站重庆高端seo
  • wordpress在文章中加背景云seo
  • 日本做暧小视频在线观看网站网站seo优化皆宣徐州百都网络不错
  • 做网站采集内容广东疫情最新数据
  • 如何判断一个网站的关键词是否难做营销软文范例
  • 做代加工的网站发布成人培训机构
  • wordpress缓存首页不正常seo中心
  • docker做网站百度爱采购平台官网
  • Spring之【Bean工厂后置处理器】
  • Fluent许可与网络安全策略
  • 重构创作边界:川翔云电脑 - UE5云端超算引擎​
  • vscode创建vue项目报错
  • 用Java 代码实现一个简单的负载均衡逻辑
  • LLaMA-Factory 微调可配置的模型基本参数