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

中立建设集团有限公司网站家在深圳光明

中立建设集团有限公司网站,家在深圳光明,企业组网配置实例,外贸网站建设开发一、前言说明 音视频开发除了应用在安防监控、视频网站、各种流媒体app开发之外#xff0c;还有一个小众的市场#xff0c;那就是多媒体展厅场景#xff0c;这个场景目前处于垄断地位的软件是HirenderS3#xff0c;做的非常早而且非常全面#xff0c;都是通用的需求…一、前言说明 音视频开发除了应用在安防监控、视频网站、各种流媒体app开发之外还有一个小众的市场那就是多媒体展厅场景这个场景目前处于垄断地位的软件是HirenderS3做的非常早而且非常全面都是通用的需求这个场景需求在播放这块有几个明显的需求是播放的视频文件分辨率特别大一般是4K/8K甚至到16K展厅的屏幕很大分辨率小了的话不够清晰所以至少会上4K分辨率一般超过2K的分辨率一定要上硬解码不然CPU很可能撑不住这里问题就来了在底层不清楚是操作系统层面还是硬件层面264只能支持4K硬解265支持到8K硬解再往上的分辨率都不支持的而现在不少的多媒体文件是8K的264格式12K/16K的265那怎么办不开启硬解的话资源极其紧张几乎是快占满的节奏所以要从逻辑层面去优化一个办法是外接多个显卡对应显示器文件切割成多个4K或者8K每个文件指定一个显卡去硬解显示在指定的显示器上。一个办法是用多个显示窗体拼接每个播放窗体都可以硬解。 还有个重要需求点是同步问题如果是本地多个画面拼接则需要帧同步不然开起来多画面是不够衔接的大于1帧的误差能够肉眼可见多个电脑之间不同播放器也需要帧同步所以就产生了两种帧同步需求一个是本地帧同步一个是网络帧同步本地帧同步主要是控制同时解码同一帧后同时刷新显示网络帧同步比较麻烦因为必须通过网络数据通知当前都是播放第一帧这个网络通信都是有延迟的所以还需要考虑延迟的时间。 二、效果图 三、相关代码 #include synclocal.h #include qthelper.h #include frmplay.hSINGLETON_IMPL(SyncLocal) QDateTime SyncLocal::SyncTime QDateTime::currentDateTime().addDays(-1); SyncLocal::SyncLocal(QObject *parent) : QThread(parent) {isStop false;this-reset();syncInterval 5;syncOffset 15;syncSleep 500;updateInterval 10; }SyncLocal::~SyncLocal() {this-stop(); }void SyncLocal::run() {while (!isStop) {this-checkPosition();this-checkSync();this-checkPause();this-updateWidget();count;msleep(updateInterval);//qDebug() TIMEMS 111 updateInterval count;}isStop false;this-reset(); }void SyncLocal::checkPosition() {//同步间隔0表示不启用/至少要2个窗体才需要同步int size frmPlay::widgets.size();if (size 2 || isSync || isPasue) {count 0;return;}//永远同步到到第一个窗体/处于非播放状态/或者暂停状态不用继续frmPlay *widget frmPlay::widgets.first();if (!widget-isPlaying() || widget-isPaused()) {return;}//优先执行手动同步指令/-1则同步到第一个窗体/0则同步到对应位置if (syncPosition -1) {position (syncPosition -1 ? widget-position() : syncPosition);count 0;isSync true;qDebug() TIMEMS hand position;return;}//同步间隔0表示不启用if (syncInterval 0) {count 0;return;}//计算同步间隔需要循环多少次int maxCount syncInterval * 1000 / updateInterval;//到了需要同步的时候执行同步if (count maxCount) {return;}count 0; //刚开始或者快结束先不同步position widget-position();if (position 2000 || qAbs(widget-duration() - position) 2000) {return;}for (int i 1; i size; i) {offset position - frmPlay::widgets.at(i)-position();qDebug() TIMEMS posi position \t offset;if (qAbs(offset) syncOffset) {isSync true;break;}} }void SyncLocal::checkSync() {//同步标志位为真则先同步if (isSync) {count 0;isSync false;isPasue true;SyncTime QDateTime::currentDateTime();qDebug() TIMEMS seek position;//先暂停再执行设置进度foreach (frmPlay *widget, frmPlay::widgets) {widget-pause();widget-seek(position);}} }void SyncLocal::checkPause() {//暂停阶段说明刚才执行过同步/等待一段时间重新播放if (isPasue) {qint64 time SyncTime.msecsTo(QDateTime::currentDateTime());if (time syncSleep) {foreach (frmPlay *widget, frmPlay::widgets) {widget-next();}count 0;isPasue false;syncPosition -2;emit receiveSync(offset);qDebug() TIMEMS play position;}} }void SyncLocal::updateWidget() {//刷新界面用来触发绘制foreach (frmPlay *widget, frmPlay::widgets) {widget-updateVideo();} }void SyncLocal::setSyncInterval(int syncInterval) {this-reset();this-syncInterval syncInterval; }void SyncLocal::setSyncOffset(int syncOffset) {this-syncOffset syncOffset; }void SyncLocal::setSyncSleep(int syncSleep) {this-syncSleep syncSleep; }void SyncLocal::setUpdateInterval(int updateInterval) {this-updateInterval updateInterval; }void SyncLocal::stop() {if (this-isRunning()) {this-isStop true;this-wait();} }void SyncLocal::reset() {this-count 0;this-isSync false;this-isPasue false;this-syncPosition -2; }//-1则同步到第一个窗体/0则同步到对应位置 void SyncLocal::sync(qint64 position) {//至少要两个窗体才能同步/处于暂停阶段说明上一个同步还没执行完成if (frmPlay::widgets.size() 2 !isPasue syncPosition -2) {this-syncPosition position;} }四、相关地址 国内站点https://gitee.com/feiyangqingyun国际站点https://github.com/feiyangqingyun个人作品https://blog.csdn.net/feiyangqingyun/article/details/97565652文件地址https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码01jf 文件名bin_video_sync。 五、功能特点 实时帧同步本地无缝拼接多个视频。支持网络同步可选主控端和被控端主控端将本地播放的进度实时同步到被控端。网络同步支持组播、广播、单播三种模式默认组播既可以跨网段也可以避免广播数据风暴。默认开启自动同步也可以手动同步和复位同步手动同步是立即执行一次同步将第一个视频的进度同步到其他视频文件复位同步是将所有视频播放进度切换到最开始0的位置。支持各种视音频文件包括但不限于mp4/mov/mkv/rmvb/avi等格式。硬解码和GPU绘制最大化利用硬件资源支持qsv/cuda/dxva2/d3d11va/vaapi等硬解码。极低的CPU占用8K30fps只占不到1%的CPU解码和绘制全部交给GPU。提供示例按照行列生成多个视频播放窗口每个窗口可以选择不同的视频文件在手动同步模式下可以切换任意一个视频播放进度会将所有的视频按照这个进度同步。自动循环播放视频文件无缝切换循环播放看起来非常丝滑。支持Qt4/Qt5/Qt6所有版本支持各种操作系统包括国产OS和嵌入式OS。
http://www.dnsts.com.cn/news/58270.html

相关文章:

  • 做网站那家好南昌网站建设大全
  • 怎么做企业网站推广网站弹出广告gif出处
  • 工业企业网站建设wp网站怎么用插件做html网页
  • 网站不备案访问宝安沙井邮政编码
  • 做视频包的网站做男性服装的网站
  • 遵义哪里有做网站的怎么用pf做网站
  • 珠海集团网站制作外包采集网站图片
  • 山西制作网站公司排名建设部建设厅报考网站
  • 营销方案策划谷歌seo文章
  • 东莞设计制作网站制作免费创建论坛网站
  • 莱芜网站建设做可以上传文件的网站
  • 购物网站开发毕业设计西安专业网站制作服务
  • 商务网站设计实训报告线在科技成都网站推广公司
  • 网页优化最为重要的内容是网站优化建设上海
  • 网站投放广告多少钱装潢设计主要学什么
  • 开发网站做什么长沙排名优化公司
  • 网站美工做图推荐网站建设考察报告
  • 物流网站开题报告书店手机网站模板
  • 免费开源门户网站系统怎么编辑网站内容
  • 工艺品做网站wordpress美化文章标题
  • 老年夫妻做爰视频网站婚恋网站的渠道网络建设
  • 企业网站建设实训报告规划营销型网站结构
  • 网站建设公司人员组成信息化网站建设有什么用
  • 学校网站建设实施方案文化建设的重要性和意义
  • 南宁网站建设升上去页面优化主要从哪些方面进行
  • 成都网站建设推广在线咨询wordpress分页导航菜单
  • 网站什么时候备案好手机版网站开发实例
  • 做公司网站需要什么资料华为公司网站建设方案模板下载
  • 长春网站推广网诚传媒如何为旅游网站店铺做推广营销
  • 专业微网站建设公司网站建设相关问题