QMediaPlayer 打包解码器注意事项

news2024/11/28 14:18:55

程序打包注意事项
如果需要把我们的程序进行打包,给客户安装使用,那么还需要引导客户额外安装LAVFilters,显得比较麻烦。接下来,介绍,如何将解码器打包进安装包。

1、QMediaPlayer找到解码器的原理
先来看看解码器,安装后的目录,如下:

 

可以看到,一堆dll、manifest和3个ax文件,我们只需要注册这3个ax文件,QMediaPlayer运行时,就可以根据注册信息找到解码器,并加载这些dll,那么就能解码视频,实现播放了。

注册ax文件:

regsvr32 /s LAVAudio.ax   
regsvr32 /s LAVVideo.ax 
regsvr32 /s LAVSplitter.ax


卸载ax文件:

regsvr32 /s /u LAVAudio.ax   
regsvr32 /s /u LAVVideo.ax 
regsvr32 /s /u LAVSplitter.ax


注意:

必须将ax和dll放在一起,否则即使注册后,也无法播放视频。另外注意,ax文件名称不要写错了,因为如果你输入任意的ax文件名,即便文件不存在,也不会提示注册错误。

明白了基本原理,就可以部署打包目录了。

 

2、部署打包目录
打包目录如下,其中包含程序、视频文件、解码器目录

解码器相关文件,放入LAVFilters文件夹中,如下:

其中新增的3个注册、3个卸载脚本文件,内容如下:

 

install_audio.bat

regsvr32 /s LAVAudio.ax   
regsvr32 /s LAVVideo.ax 
regsvr32 /s LAVSplitter.ax


install_splitter.bat

cd /d "%~dp0"
regsvr32.exe LAVSplitter.ax
 


install_video.bat

cd /d "%~dp0"
regsvr32.exe LAVVideo.ax


 
uninstall_audio.bat

cd /d "%~dp0"
regsvr32.exe /u LAVAudio.ax


uninstall_splitter.bat

cd /d "%~dp0"
regsvr32.exe /u LAVSplitter.ax


uninstall_video.bat

cd /d "%~dp0"
regsvr32.exe /u LAVVideo.ax


这6个脚本文件,是从绿色版LAVFilters压缩包中获得,可直接下载:https://github.com/Nevcairiel/LAVFilters/releases/download/0.74.1/LAVFilters-0.74.1-x64.zip

打包的思路:

当安装结束后,自动执行install_audio.bat、install_splitter.bat、install_video.bat对ax文件进行注册,而后,程序运行起来,就可以正常解码;
当卸载程序前,自动执行uninstall_audio.bat、uninstall_splitter.bat、uninstall_video.bat对ax进行卸载。
如此,我们就将解码器一起打包了,一次安装,就可以正常使用程序。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 各版本特性

一:介绍 我们可以看到Android版本对应的Api版本 二:Android 6.0 (API 23) Google I/O 2015大会如约已于2015年5月28日举行。在发布会上代号为“Marshmallow(棉花糖)”的安卓6.0系统正式推出。 Android …

LVS简介及LVS-NAT负载均衡群集的搭建(要像记得回家的路一样记得理想和远方)

文章目录 一、LVS群集的简介1.群集的含义和应用场景2.性能扩展方式群集的分类负载均衡(LB)高可用(HA)高性能运算(HPC) 二、LVS负载均衡群集简介及搭建1.负载均衡群集架构第一层,负载调度器&…

Linux - sudo:/etc/sudoers 可被任何人写

错误如下: sudo: /etc/sudoers 可被任何人写 sudo: 没有找到有效的 sudoers 资源,退出 sudo: 无法初始化策略插件 需求就是除了root账号,别的账号也能执行mkdir等命令 1. 先用root把 chmod 777 /etc/sudoers 设置可修改 2. 添加一条 xxx…

JIRA维护记——使用原实例位置恢复数据

一、出现问题 昨天下班了,同事反馈Jira又不能使用了。想都不用想,肯定是磁盘空间不足了,因为已经出现过几次了。之前都是清理一下磁盘空间即可,都不用重启Jira。 今天一上班就开始清理磁盘空间,把一些日志啊&#xf…

数据在内存中的存储(打入“内部”深度剖析哦)

前面的文章介绍中,只对整数在内存中的存储进行了简单介绍,可是只了解这么一点点是远远不够的呢,这篇文章呢就对数据在内存中的存储的几个重难点进行了详细的介绍哦,希望对爱学习的小伙伴们有所帮助~ 目录 一.数据类型…

【Protobuf速成指南】Message中如何定义“数组”?

文章目录 2.0一、字段规则1.1 规则1.2 改进1.3 消息类型作为字段类型 二、repeated字段使用方式三、Contact2.01.write.cc2.read.cc3. 查看二进制信息①hexdump② --decode选项 2.0 本系列文章将通过对通讯录项目的不断完善,带大家由浅入深的学习Protobuf的使用。这…

win10的另一种美化字体的方式,使用noMeiryoUI

目录 1. 前提2. 字体选择3. 查看已经安装的字体并查看效果4. 安装软件修改系统字体5. 修改浏览器字体 1. 前提 21年的时候写了一篇文章,《Windows10下美化字体,达到类似mac的效果》,当时还很迷恋macType这个软件的使用,觉得好牛逼…

Linux——安装VMwaretools实现文件共享功能

作为一个Linux初学者,应该熟悉相关的文件下载和安装以及简单的配置命令,下面通过安装一个VMwaretools来实现window环境和Linux环境下文件的共享功能的实现。 一、安装VMwaretools 点击重新安装后,会在桌面上看到有一个光盘,则代表…

单片机的基础知识和原理

单片机是一种集成了中央处理器(CPU)、内存、输入/输出(I/O)端口和其他外设的小型计算机系统。它通常用于嵌入式系统,如家电、汽车电子、工业控制等领域。 下面是单片机的基础知识和原理的概述: 架构&…

Linux系统安装——VMware15.5安装centos7.6 (附资料下载+联网配置+踩坑总结)

一、安装虚拟机VMware15.5 VMware虚拟机安装Win10,安装包秘钥/系统镜像/激活工具如下:(主要这个地址不限速,方便!) https://www.123pan.com/s/g520Vv-Dg2id (遇到会拦截下载任务的浏览器,直接换浏览器下载即可&#xf…

【LVS负载均衡群集】

目录 一、企业群集应用概述1、群集的含义2、企业群集分类3、负载均衡群集架构1、负载均衡的结构2、负载均衡群集工作模式分析 二、LVS的三种工作模式1、NAT 模式地址转换 2、TUN模式IP隧道 3、DR模式直接路由 三、实战NAT模式 LVS负载均衡群集部署1.部署共享存储(NF…

将安全性置于首位:考试系统源码的安全漏洞和防护措施

在当今数字化时代,考试系统源码的安全性已经成为了一个至关重要的问题。随着更多人开始远程学习和在线考试,考试系统的安全漏洞也越来越容易被利用。因此,在开发和使用考试系统源码应用程序时,保护用户数据和系统资源免受攻击是至…

思维导图整理,100个好看实用的模板分享

思维导图是一款有效提升工作和生活效率的生产力工具,受到全球千万用户的喜爱。 它帮助我们将所需的信息以图形的形式呈现,更加便于我们的记忆。头脑风暴帮助我们捕捉灵感,激发 我们更多的想象力。 它可以应用在我们生活以及工作的方方面面。项…

卡尔曼滤波与组合导航原理(七)平方根Kalman滤波:Potter平方根滤波、SVD分解滤波、UD分解滤波、平方根信息滤波SRIKF

文章目录 一、平方根滤波基本形式二、Potter平方根滤波1、方差阵的量测更新2、方差阵的时间更新3、Potter平方根滤波流程4、向量量测情况下的方差阵量测更新 三、奇异值(SVD)分解滤波1、时间更新方差方程的SVD分解2、量测更新方差方程的SVD分解3、SVD分解…

西电网课雨课堂《书法鉴赏》全部课后答案

声明:本文CSDN作者原创投稿文章,未经许可禁止任何形式的转载,原文链接 如果图片挂了,可以移步至我的博客西电网课雨课堂《书法鉴赏》答案 - 小木槌 文章目录 绪论--解惑初学书法者(上)绪论--解惑初学书法者…

Es elasticsearch 十八 Logstash 数据抽取工具

目录 基础 启动命令 简单配置文件 控制台输入输出打印 input从log文件获取数据-如分布式日志收集 监听端口 filter过滤器 Grok 正则捕获 Output 输出到es 文件输入 es输出 获取日志中字段 level 基础 从原数据 获取数据 发送到 某地方 Input{} filter{} output{} …

JMeter 常用的几种断言方法,你会几种呢?

在使用Jmeter进行性能测试或者接口自动化测试工作中,经常会用到的一个功能,就是断言。断言是在请求的返回层面增加一层判断机制。因为请求成功了,并不代表结果一定正确,因此需要判断机制提高测试准确性。本文 主要介绍3种常用的断…

【LSTM】读取时间序列数据 | 时间序列数据的小批量划分方法

由于序列数据本质上是连续的,因此我们在处理数据时需要解决这个问题。当序列过长而不能被模型一次性全部处理时,我们希望能拆分这样的序列以便模型方便读取。 Q:怎样随机生成一个具有n个时间步的mini batch的特征和标签? A&…

4.2 Spark SQL数据源 - 基本操作

一、默认数据源 案例演示读取Parquet文件 查看Spark的样例数据文件users.parquet 1、在Spark Shell中演示 启动Spark Shell 查看数据帧内容 查看数据帧模式 对数据帧指定列进行查询,查询结果依然是数据帧,然后通过write成员的save()方法写入HDF…

还在为开发难度发愁?这个低代码平台能让你轻松搞定!

随着数字技术的不断发展,数字化也越来越深入人们的日常生活中,在这样的时代背景下,企业是需要通过不断创新来满足用户日益增长的业务需求。 使用背景 对企业而言,随着组织规模的扩大,各种业务流程系统需要持续而快速地…