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

线上教学网站怎么建设上海专业高端网站建

线上教学网站怎么建设,上海专业高端网站建,微信网站制作北京,贵阳百度推广电话一、前言说明 在做这个功能的时候#xff0c;着实费了点心思#xff0c;好在之前做ffmpeg加密解密的时候#xff0c;已经打通了极速加密保存文件#xff0c;主要就是之前的类中新增了进度提示信号#xff0c;比如当前已经处理到哪个position位置#xff0c;发个信号出来…一、前言说明 在做这个功能的时候着实费了点心思好在之前做ffmpeg加密解密的时候已经打通了极速加密保存文件主要就是之前的类中新增了进度提示信号比如当前已经处理到哪个position位置发个信号出来可以通知界面这块显示不能让用户傻傻等。一般来说如果不需要重新编码那直接收到的264/265裸流数据可以直接写入到MP4文件速度是极快的性能瓶颈在硬盘的写入速度如果流是网络的那就还涉及到网络带宽。如果是要打上水印的话那就需要重新编码写入这块比较费CPU据说ffmpeg滤镜目前只支持CPU运算而且必须是yuv数据不能是硬解码数据。 远程录像文件的下载播放的时候是按照正常速度播放的下载的时候肯定不能按照播放的正常速度来下载那60分钟要等60分钟才能下载完成这还得了。必须改成最快速度也就是榨干CPU的模式疯狂下载写入把瓶颈丢给硬解和网络带宽。测试下来基本上能做到10倍速也就是60分钟的文件最多1分钟全部下载保存完成同时的话还可以多路同时批量下载。 二、效果图 三、相关代码 #include zdownload.h #include ui_zdownload.h #include qthelper.h #include zmediahelper.h #include ffmpegthread.h #include ffmpegsave.hSINGLETON_IMPL(ZDownLoad) ZDownLoad::ZDownLoad(QWidget *parent) : QWidget(parent), ui(new Ui::ZDownLoad) {ui-setupUi(this);this-initTable(); }ZDownLoad::~ZDownLoad() {delete ui; }void ZDownLoad::closeEvent(QCloseEvent *e) {if (threads.count() 0) {if (QtHelper::showMessageBoxQuestion(文件还没下载完成, 确定要关闭吗?) QMessageBox::Yes) {this-stop();} else {e-ignore();}} }void ZDownLoad::initTable() {//列名称和宽度QStringList columnName;columnName 编号 视频流地址 保存文件 下载进度;QListint columnWidth;columnWidth 50 300 270 100;//设置列数和列宽int columnCount columnWidth.count();ui-tableWidget-setColumnCount(columnCount);for (int i 0; i columnCount; i) {ui-tableWidget-setColumnWidth(i, columnWidth.at(i));}ui-tableWidget-setHorizontalHeaderLabels(columnName);QtHelper::initTableView(ui-tableWidget, 25, false); }void ZDownLoad::receivePlayStart() {//找到对应线程所在线程队列中的索引FFmpegThread *thread (FFmpegThread *)sender();int index threads.indexOf(thread);//开启了编码则加入水印if (AppConfig::EncodeVideo 0) {ZMediaHelper::setOsd(thread, 10);}//获取总时长设置进度QProgressBar *bar (QProgressBar *)ui-tableWidget-cellWidget(index, 3);bar-setMaximum(thread-getDuration());//取出要保存的文件名称/启动保存文件QString file ui-tableWidget-item(index, 2)-text();thread-recordStart(file); }void ZDownLoad::receivePlayFinsh() {//停止阶段不要处理if (isStop) {return;}//找到对应线程所在线程队列中的索引FFmpegThread *thread (FFmpegThread *)sender();int index threads.indexOf(thread);//设置进度完成QProgressBar *bar (QProgressBar *)ui-tableWidget-cellWidget(index, 3);bar-setValue(bar-maximum());//判断是不是所有的都完成bool finsh true;foreach (FFmpegThread *thread, threads) {if (thread-isRunning()) {finsh false;break;}}if (finsh) {this-stop();QtHelper::showMessageBoxInfo(恭喜你, 所有文件下载完成!);} }void ZDownLoad::savePosition(bool video, qint64 time) {//以视频的保存进度为准if (!video) {return;}//停止阶段不要处理if (isStop) {return;}//找到对应线程所在线程队列中的索引FFmpegSave *save (FFmpegSave *)sender();FFmpegThread *thread (FFmpegThread *)save-parent();int index threads.indexOf(thread);//设置对应进度QProgressBar *bar (QProgressBar *)ui-tableWidget-cellWidget(index, 3);bar-setValue(time); }void ZDownLoad::open(FFmpegThread *thread, const QString url) {//关联信号槽connect(thread, SIGNAL(receivePlayStart(int)), this, SLOT(receivePlayStart()));connect(thread, SIGNAL(receivePlayFinsh()), this, SLOT(receivePlayFinsh()));connect(thread-getSaveFile(), SIGNAL(savePosition(bool, qint64)), this, SLOT(savePosition(bool, qint64)));//不需要预览/直接写入流数据thread-setPushPreview(false);//设置解码策略为最快速度解码thread-setDecodeType(DecodeType_Fastest);//何种编码方式thread-setEncodeVideo((EncodeVideo)AppConfig::EncodeVideo);//开启了编码如果是265只能2倍速/其他情况可以做到10倍速及以上if (AppConfig::EncodeVideo 1 || AppConfig::EncodeVideo 3) {thread-setSpeed(2.0);thread-setDecodeType(DecodeType_Fast);}//设置媒体地址thread-setMediaUrl(url);//开始播放thread-play(); }void ZDownLoad::stop() {//挨个停止线程/先停止录制线程/再停止解码线程isStop true;foreach (FFmpegThread *thread, threads) {if (thread-isRunning()) {thread-getSaveFile()-stop();thread-stop();}thread-deleteLater();}threads.clear();emit downFinsh(); }void ZDownLoad::setUrls(const QStringList urls, const QStringList files) {int count urls.count();ui-tableWidget-setRowCount(0);for (int i 0; i count; i) {//末尾插入一行int row ui-tableWidget-rowCount();ui-tableWidget-insertRow(row);QTableWidgetItem *itemId new QTableWidgetItem;itemId-setText(QString::number(row 1));itemId-setTextAlignment(Qt::AlignCenter);ui-tableWidget-setItem(row, 0, itemId);ui-tableWidget-setItem(row, 1, new QTableWidgetItem(urls.at(i)));ui-tableWidget-setItem(row, 2, new QTableWidgetItem(files.at(i)));QProgressBar *bar new QProgressBar;bar-setStyleSheet(QProgressBar{border-radius:0px;}QProgressBar:chunk{border-radius:0px;});bar-setAlignment(Qt::AlignCenter);bar-setTextVisible(true);ui-tableWidget-setCellWidget(row, 3, bar);} }void ZDownLoad::start() {int count ui-tableWidget-rowCount();if (count 0) {return;}if (AppConfig::EncodeVideo 0 count 1) {QtHelper::showMessageBoxInfo(编码方式写入文件, 会占用很大CPU, 写入文件个数建议控制在1个内!);}isStop false;for (int i 0; i count; i) {QString url ui-tableWidget-item(i, 1)-text();QProgressBar *bar (QProgressBar *) ui-tableWidget-cellWidget(0, 3);bar-setValue(0);FFmpegThread *thread new FFmpegThread;this-open(thread, url);threads thread;} }四、相关地址 国内站点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_system。 五、功能特点 5.1 软件模块 视频监控模块各种停靠小窗体子模块包括设备列表、图文警情、窗口信息、云台控制、预置巡航、视频轮询、设备控制、悬浮地图、网页浏览等。视频回放模块包括本地回放、网络回放、远程回放、图片回放、视频上传等。电子地图模块包括图片地图、设备地图、设备移动、轨迹回放等。日志查询模块包括本地日志、设备日志等。系统设置模块包括系统设置基本设置、视频参数、数据库设置、颜色配置、功能激活等、录像机管理、摄像机管理、轮询配置、录像计划、用户管理、其他设置等。 5.2 基础功能 支持各种音视频流rtsp、rtmp、http、srt、ws等、音视频文件mp4、rmvb、avi等、本地设备本地摄像头、麦克风、桌面。支持多画面切换包括1、4、6、8、9、13、16、25、36、64画面切换。支持全屏切换多种切换方式包括鼠标右键菜单、工具栏按钮、快捷键altenter全屏esc退出全屏。支持视频轮询包括1、4、9、16画面轮询可设置轮询分组轮询预案、轮询间隔、码流类型等。支持onvif协议包括设备搜索、云台控制、预置位管理、设备控制图片参数、校对时间、系统重启、抓拍图片、OSD配置、网络配置等。支持权限管理不同的用户可以对应不同的模块权限比如删除日志、关闭系统等。数据库支持多种包括sqlite、mysql、sqlserver、postgresql、oracle、人大金仓等。支持本地设备采集比如本地桌面和摄像头支持设置分辨率、帧率等参数支持多屏幕。所有停靠模块都自动生成对应的菜单用来控制显示和隐藏在标题栏右键可以弹出。支持显示所有模块、隐藏所有模块、复位普通布局、复位全屏布局。支持图片地图和网页地图上双击设备图标弹出实时预览。摄像机节点拖曳到对应窗体播放视频同时支持拖曳本地文件直接播放。设备树双击分组打开对应分组下的所有视频双击设备子节点直接打开对应设备视频流。自动加载最后展开的节点。设备树支持自定义配置可以添加分组、删除分组、修改分组任意层级设置。设备树可以开启是否放大字体显示、是否显示主码流子码流节点、是否隐藏空组没有设备的分组自动隐藏。删除视频支持鼠标右键删除、悬浮条关闭删除、拖曳到视频监控面板外删除等多种方式。图片地图上设备按钮可自由拖动自动保存位置信息。地图上可以鼠标单击获取经纬度信息用来更新设备位置。视频监控面板窗体中任意通道支持拖曳交换瞬间响应。网页地图支持视图切换、运动轨迹显示、设备点位鼠标按下获取经纬度等。双击节点、拖曳节点、拖曳窗体交换位置等操作均自动更新保存最后的播放地址下次软件打开自动应用。右下角音量条控件失去焦点自动隐藏音量条带静音图标自动记忆最后的音量及静音状态。支持视频截图可指定单个或者对所有通道截图底部小工具栏也有截图按钮每个视频控件悬浮条也有抓拍按钮。支持辅屏预览可以打开多个在多个屏幕分别打开64通道按需显示视频。支持超时自动隐藏鼠标指针、自动全屏机制。支持onvif云台控制可上下左右移动云台摄像机包括复位和焦距调整等。支持onvif预置位可以添加、删除、修改预置位可以调用起始位。支持OSD增删改查可以通过onvif协议添加及修改OSD信息。支持onvif图像参数设置包括明亮度、对比度、饱和度、尖锐度等。支持onvif其他操作包括抓图、网络设置、校时、重启、事件订阅等。支持任意onvif摄像机包括但不限于海康、大华、宇视、天地伟业、华为等。可保存视频可通过录像计划存储也可在悬浮条手动切换开始录像和停止录像。可设置视频流通信方式tcp或udp可设置视频解码是速度优先、质量优先、均衡处理、最快速度等。可设置软件中文名称、英文名称、LOGO图标等。存储的视频文件支持导出到指定目录支持批量上传到服务器。完善的录像计划设置支持每个通道7 * 24小时每半小时设置是否存储录像。音视频同步显示以及音视频同步存储到MP4文件。 5.3 特色功能 主界面采用停靠窗体模式各种组件以小模块的形式加入可自定义任意模块加入。停靠模块可拖动任意位置嵌入和悬浮支持最大化全屏支持多屏幕。双重布局文件存储机制正常模式、全屏模式都对应不同的布局方案自动切换和保存比如全屏模式可以突出几个模块透明显示在指定位置更具科幻感现代化。原创onvif协议机制采用底层协议解析udp广播搜索http请求执行命令更轻量易懂易学习拓展不依赖任何第三方组件比如gsoap。原创数据导入、导出、打印机制跨平台不依赖任何组件瞬间导出数据。内置多个原创组件宇宙超值超级牛逼包括数据导入导出组件导出到xls、pdf、打印、数据库组件数据库管理线程、自动清理数据线程、万能分页、数据请求等、地图组件、视频监控组件、文件多线程收发组件、onvif通信组件、通用浏览器内核组件等。自定义信息框、错误框、询问框、右下角提示框包含多种格式等。精美换肤高达20套皮肤样式随意更换所有样式全部统一包括菜单等。选中通道对应设备树节点高亮选中通道节点对应视频控件高亮方便查看当前通道信息。视频控件悬浮条可以自行增加多个按钮监控界面底部小工具栏也可自行增加按钮。双击摄像机节点自动播放视频双击节点自动依次添加视频会自动跳到下一个双击父节点自动添加该节点下的所有视频。可选主码流、子码流。录像机管理、摄像机管理可添加删除修改导入导出打印信息立即应用新的设备信息生成树状列表不需重启。摄像机搜索支持一键搜索和批量添加支持onvif的NVR一键添加子设备可以手动设置开始地址和数量一键生成摄像机信息。可选多种内核自由切换ffmpeg、vlc、mpv等均可在pro中设置。推荐用ffmpeg跨平台最多默认提供好了linux和mac平台上编译好的库。支持windows、linux、macos等系统硬解码还支持嵌入式linux RKMPP硬解码可设置硬解码类型dxva2、d3d11va、vaapi、vdpau等。各种模块可以勾选是否激活方便根据实际需求搭配各种组合比如隐藏电子地图模块隐藏远程回放模块只保留本地回放等。尽最大化可能将常用的功能封装接口全局静态函数调用极其容易使用提供各种使用示例方便用户二开。默认采用opengl绘制视频超低的CPU资源占用支持yuyv和nv12两种格式绘制性能爆表。标签和图形信息支持三种绘制方式绘制到遮罩层、绘制到图片、源头绘制对应信息可以存储到文件。包括但不限于视频监控内核组件的所有功能可参阅说明书中功能介绍 [视频监控内核](###8.1 视频监控内核)。高度可定制化用户可以很方便的在此基础上衍生自己的功能比如增加自定义模块增加运行模式、机器人监控、无人机监控、挖掘机监控、广播监控等。支持xp、win7、win10、win11、linux、mac、各种国产系统UOS、中标麒麟、银河麒麟等、嵌入式linux等系统。注释完整项目结构清晰超级详细完整的使用开发手册精确到每个代码文件的功能说明不断持续迭代版本。
http://www.hkea.cn/news/14497333/

相关文章:

  • 企业网站建设代理局域网视频网站开发
  • 网站建设建网站年轻的母亲班级响应式网站html格式
  • 佛山网络公司推荐百度seo排名优化费用
  • 做白酒的网站手机能搭建网站吗
  • 安卓游戏模板下载网站杭州网站的特点
  • 昆山网站建设电话值得关注的优秀设计作品
  • 九天智能建站软件微信小程序开发实例教程
  • 网站程序模板网站开发技术一般需要什么语言
  • 全球著名科技网站seo排名第一的企业
  • 国外做展台搭建的设计网站本地生活网站 源码
  • 用什么做淘宝客网站好系统搭建
  • c 网站开发 简单例子百度推广账户搭建
  • 成都企业网站设计服务商浙江网站建设
  • 企业网站深圳常州网站建设百科
  • 网站建设费包括网站上面的彩票快3怎么做
  • 基层建设期刊上什么网站查询文章icp备案添加网站
  • 外贸推广网站哪家中国东凤网站制作
  • 佛山网站制作咨询网站建设需求登记表 免费下载
  • 网站meta标签怎么做推广赚钱的app有哪些
  • 湘潭手机网站网站建设美工招聘
  • 白云鄂博矿区网站建设wordpress破解主题教程
  • 山西省建设注册中心网站首页智慧团建电脑版登录入口官网
  • 哪种源码做视频网站好用许昌城乡建设局网站
  • 网站开发设计书籍wordpress空页面模板
  • 贵州城乡建设部网站首页无锡网络公司无锡网站制作
  • 怎么做网站百度经验石家庄网站建设费用
  • 药理学网站建设方案山东省住房建设部网站首页
  • 福田做网站怎么样怎么利用网站上的图片
  • 网站的交互怎么做上海什么公司最有名
  • 做区位分析的网站建设类网站有哪些