编译QtWebEngine模块支持音视频播放

背景

  • 由于QT自带的QtWebEngine模块不支持音视频的播放,如果想播放MP3、MP4等格式的文件,必须自己编译QtWebEngine。
  • 本文编译的QT版本为5.12.4,VS版本为2017。QT安装路径为C:\Qt\Qt5.12.4\5.12.4\msvc2017_64
  • 本文默认编译的是64位版本QtWebEngine,32位版本暂不考虑
  • 参考文章:How to compile Qt webengine (5.11) on Windows with proprietary codecs

具体编译步骤

安装Python

  • 本地先安装Python(>=2.7.x)并确保添加到了环境变量中(网上说不支持3.0以后的版本,所以选择安装了2.7版本)

添加第三方工具路径到系统环境变量

  • 编译过程中需要用的一些第三方工具。由于QT已经自带了,所以这里直接把所在目录添加到了系统环境变量里。
    • C:\Qt\Qt5.12.4\5.12.4\Src\gnuwin32\bin
      在这里插入图片描述

设置VS 64位编译环境

  • 切换路径到:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build 并运行64位环境的批处理工具
    • cd C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\
    • vcvars64.bat

添加qt可执行程序目录到系统环境变量

  • 将qt的可执行程序目录(如C:\Qt\Qt5.12.4\5.12.4\msvc2017_64\bin)添加到环境变量方便接下来操作

打开vs命令行工具

  • 在开始菜单中找到VS2017的菜单目录,以管理员权限打开"适用于VS 2017的x64本机工具命令提示
    在这里插入图片描述

切换到qtwebengine的源码目录

  • vs命令行工具切换到qtwebengine的源码目录
    • cd C:\Qt\Qt5.12.4\5.12.4\Src\qtwebengine

修改qtwebengine的编译选项

  • 修改qtwebengine的编译选项以支持音视频的播放
    • 在命令行工具输入:qmake WEBENGINE_CONFIG+=use_proprietary_codecs
  • 若编译成功,则会提示"nmake"
    在这里插入图片描述
  • 这里我编译失败,提示如下
    在这里插入图片描述
    • 解决方法:如果本机安装有多个QT版本,则先将其它版本的QT重命名,否则会调用其它QT路径下的qmake,造成不确定的问题。
    • 我在这一步卡了好久,一直没有找到原因。后来无意中查看了编译过程中生成的缓存文件,发现命令行工具调用的是我其它QT版本下的qmake.exe,这肯定是不对的。估计是因为其它版本的路径在系统变量中的位置比较靠前,所以先调用其它版本下的QT。找到原因,立即就把其它版本的QT进行了重命名,保证调用模板版本下的qmake。待编译完成后再改回来就是。
      在这里插入图片描述

执行nmake

  • nmake release (仅编译release版本)。如果release和debug一起编译,则执行 nmake
  • 这里我第一次等待了5个小时后提示我编译失败,如图所示:
    在这里插入图片描述
  • 网上参考了同样编译失败的资料,怀疑是没有将语言设置为英语、区域设置为美国,具体设置如下
    在这里插入图片描述

执行nmake install

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
编译 QtWebEngine 需要以下几个步骤: 1. 安装必要的依赖项 在 Ubuntu 上,可以使用以下命令安装 QtWebEngine 的依赖项: ``` sudo apt-get install build-essential libssl-dev libglib2.0-dev libnss3-dev libasound2-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxrandr-dev libxtst-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxt-dev libpulse-dev libudev-dev libpci-dev libicu-dev libsqlite3-dev libxslt1-dev libbz2-dev libgcrypt-dev libpci-dev libdrm-dev libgudev-1.0-dev libegl1-mesa-dev libatk-bridge2.0-dev libatspi2.0-dev libepoxy-dev libwebp-dev libopus-dev libvpx-dev libevent-dev ``` 在 Fedora 上,可以使用以下命令安装 QtWebEngine 的依赖项: ``` sudo dnf install gcc-c++ openssl-devel glib2-devel nss-devel alsa-lib-devel libXcomposite-devel libXcursor-devel libXdamage-devel libXrandr-devel libXtst-devel dbus-devel fontconfig-devel libcap-devel libX11-devel libX11-xcb-devel libxcb-devel libXext-devel libXfixes-devel libgcrypt-devel libdrm-devel glib2-devel gobject-introspection-devel gudev-devel mesa-libEGL-devel mesa-libGL-devel mesa-libGLU-devel pulseaudio-libs-devel systemd-devel icu-devel sqlite-devel libxslt-devel bzip2-devel libpng-devel libjpeg-turbo-devel libwebp-devel opus-devel libvpx-devel libevent-devel ``` 2. 下载 Qt 源代码并配置 从 Qt 的官方网站上下载 Qt 的源代码。下载完成后,解压缩源代码文件并进入源代码目录。 接着,运行以下命令,对 Qt 进行配置: ``` ./configure -prefix /usr/local/Qt -opensource -confirm-license -nomake examples -nomake tests -no-pch -no-icu -webengine-proprietary-codecs ``` 其中,`-prefix` 选项指定 Qt 的安装路径,`-opensource` 选项表示使用开源版本的 Qt,`-confirm-license` 选项表示确认许可协议,`-nomake examples` 和 `-nomake tests` 选项表示不编译 Qt 的示例程序和测试程序,`-no-pch` 选项表示禁用预编译头文件,`-no-icu` 选项表示不使用 ICU 库,`-webengine-proprietary-codecs` 选项表示启用 QtWebEngine 的专有视频和音频编解码器。 3. 编译并安装 Qt 运行以下命令,编译 Qt 并安装到指定的路径: ``` make -j$(nproc) sudo make install ``` 其中,`-j` 选项表示使用多进程编译,可以加快编译速度。 4. 编译 QtWebEngine 进入 QtWebEngine 的源代码目录,运行以下命令,编译 QtWebEngine: ``` cd qtwebengine qmake make -j$(nproc) ``` 编译完成后,在 `qtwebengine/src/core/release` 目录下可以找到 `libQt5WebEngineCore.so` 等库文件和 `QtWebEngineProcess` 可执行文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值