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

QMPlay 编译

编译环境介绍

win11,msys2,vscode, cmake
首先下载相关依赖;
本文使用的ffmpeg5.1,qt6,libass。

安装libass

pacman -S mingw-w64-x86_64-libass # 64位系统

安装Ninja

pacman -S mingw-w64-x86_64-ninja  # 64位系统

qt安装

在windows下安装Qt,具体可以参考安装qt
需要选择Qt版本6以上的,本文位6.5.3,选择build Tools位MinGW * 64bit

ffmpeg编译安装

编译libx264

首先clone仓库
git clone https://gitee.com/mirrors_addons/x264.git

git clone https://gitee.com/mirrors_addons/x264.git
cd x264
./configure \--prefix=/home/xxfc/ffmpeg/build/libx264 \--host=x86_64-w64-mingw32 \--enable-static \--enable-shared \--extra-ldflags="-Wl,--output-def=libx264.def"
make 
make install  

下载并编译libfdk-aac

git clone --depth 1 https://gitee.com/mirrors/fdk-aac.git 2 
cd fdk-aac
./configure \--prefix=/home/xxfc/ffmpeg/build/libfdk-aac\--enable-static \--enable-shared make
make install

下载并编译libmp3lame

git clone --depth 1 https://gitee.com/hqiu/lame.git
./configure \--prefix=/home/xxfc/ffmpeg/build/libmp3lame\--disable-frontend \--enable-static \--enable-shared 
make & make install

下载编译libmpvpx

git clone --depth 1 https://github.com/webmproject/libvpx.git
cd libvpx
./configure \--prefix=/home/xxfc/ffmpeg/build/libmpvpx\--disable-examples --disable-unit tests --enable-vp9-highbitdepth --as=yasm
make & make install

编译ffmpeg

git clone https://gitee.com/mirrors/ffmpeg.git
cd ffmpeg
git branch -r
git checkout -b ffmpeg5.1 remotes/origin/release/5.1
./configure \--prefix=/home/xxfc/ffmpeg/build/ffmpeg-5.1 \--arch=x86_64 \--enable-shared \--enable-static \--enable-gpl \--enable-nonfree \--enable-libfdk-aac \--enable-libvpx \--enable-libx264 \--enable-libmp3lame \--extra-cflags="-I/home/xxfc/ffmpeg/build/libfdk-aac/include \-I/home/xxfc/ffmpeg/build/libvpx/include \-I/home/xxfc/ffmpeg/build/libx264/include \-I/home/xxfc/ffmpeg/build/libmp3lame/include" \--extra-ldflags="-L/home/xxfc/ffmpeg/build/libfdk-aac/lib \-L/home/xxfc/ffmpeg/build/libvpx/lib \-L/home/xxfc/ffmpeg/build/libx264/lib \-L/home/xxfc/ffmpeg/build/libmp3lame/lib"
make -j8 and make install

这里的--enable-shared是构建动态库,--enable-static是构建静态库。
--extra-cflags, --extra-ldflags 是用于指定编译 FFmpeg 时所需的头文件路径和库文件路径。相当于cmake中


# 包含头文件路径
include_directories(/home/xxfc/ffmpeg/build/libfdk-aac/include/home/xxfc/ffmpeg/build/libvpx/include/home/xxfc/ffmpeg/build/libx264/include/home/xxfc/ffmpeg/build/libmp3lame/include
)# 添加库文件搜索路径
link_directories(/home/xxfc/ffmpeg/build/libfdk-aac/lib/home/xxfc/ffmpeg/build/libvpx/lib/home/xxfc/ffmpeg/build/libx264/lib/home/xxfc/ffmpeg/build/libmp3lame/lib
)

编译QMPlayer2

clone项目,地址https://github.com/zaps166/QMPlay2.git
使用VSCode打开项目,VSCode安装好CMake插件。
使用编译工具位GCC Mingw32

在VSCode新建文件夹.vscode,创建settings.json,内容如下,具体路径需自己调整。

{"cmake.generator": "Ninja","cmake.configureSettings": {"CMAKE_PREFIX_PATH": "D:\\Qt\\6.5.3\\mingw_64\\lib\\cmake","BUILD_WITH_QT6": "ON","CMAKE_LIBRARY_PATH": "D:\\Dev\\ffmpeg-5.1\\lib;","CMAKE_INCLUDE_PATH": "D:\\Dev\\ffmpeg-5.1\\include;",}
}

在VSCode下ctrl+shift+p,调用命令行,执行CMake:Configure,之后直接build

之后运行会缺少动态库,需要使用Dependencies工具查找可执行文件所需的依赖。工具连接

此时直接运行会出现qt plugin 的依赖缺少。如下

将qt下的plugin platform文件夹复制到可执行文件中。

再次运行

到此编译结束。

http://www.rkmt.cn/news/28223.html

相关文章:

  • Linux 命令 - 教程
  • 详细介绍:如何实现多人协同文档编辑器
  • 高级语言设计第二次作业
  • prometheus服务的客户端
  • 2025 年北京品牌设计公司最新推荐榜,聚焦企业专业能力与服务价值深度剖析
  • 连续与间断
  • 记一次 .NET 某光放测试系统 崩溃分析
  • 基于DSP的伺服电机驱动器程序设计
  • cookie和缓存的区别
  • 【内网渗透】第168天:基石框架篇单域架构域内应用控制成员组成用户策略信息收集环境搭建
  • http明文容易暴露信息
  • AI Agent的未来之争:任务规划,该由人主导还是AI自主?——阿里云RDS AI助手的最佳实践
  • K8s配置的“双重人格”:一次hostPort神秘复现的排查之旅
  • 2025年10月又红又痒用什么产品推荐榜:权威对比五款修护精华
  • 反汇编
  • 2025年10月酵母品牌推荐榜:老面风味对比全评测
  • 测试效率卡点如何破?QA 双角色协作模式帮你提升效率和覆盖率
  • 嵌入式系统学习笔记
  • 限时优惠 | 性能测试进阶训练营重磅来袭
  • 2025年CNC机械加工厂家权威推荐榜:涵盖铣床/车床/磨削/多轴/复合加工,铝/不锈钢/钛合金/铜/模具钢/塑料件定制,专业承接汽车/医疗/航空航天/机器人/通讯设备零件及模具制造
  • 基于EEMD(集合经验模态分解)对故障信号进行分解
  • C# Web开发教程(八)中间件
  • 自我成长 - 木易
  • DeepSeek OCR:10倍文档压缩,97%准确率,让你的 LLM 读得更快、更省
  • 如果时间不够,无法进行充分的测试怎么办?
  • 批量跑脚本后自定义消息内容发送至钉钉--批量跑脚本
  • 有了 MCP,为啥 Claude 还要推出 Skills?一文带你搞懂它到底强在哪? MCP 有啥区别、该怎么用!
  • 香港高防服务器本地清洗与国际清洗的区别 - 实践
  • 2063. 所有子字符串中的元音
  • 已经设置过 settings.json,但是运行 claude 时,依旧提示 Missing API key Run /login