Linux Qt5.15.2 编译QWebEngine源码支持音视频H264

这篇具有很好参考价值的文章主要介绍了Linux Qt5.15.2 编译QWebEngine源码支持音视频H264。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

默认自带的QWebEngine 因版权问题不支持音视频功能,需要自己编译源码以支持。

平台:Linux(UOS V20 1050)
Qt:5.15.2

准备工作

  1. 下载 Qt 5.15.2 对应版本源码,使用镜像网站或者Qt Maintenance Tool工具下载。
  2. 配置 Qt 环境变量
vim ~/.bashrc

将以下内容追加到bashrc文件后

#QT ENV
export PATH=/home/Leou/Qt/5.15.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/Leou/Qt/5.15.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/Leou/Qt/5.15.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_PATH=/home/Leou/Qt/5.15.2/gcc_64/qml:$QML2_PATH

刷新使其生效

source ~/.bashrc

这个阶段可以预先安装所需的库:

On all platforms, the following tools are required at build time:

  • Python 2.7.5 or later. Python 3 is not supported.
  • Bison, Flex
  • GPerf
  • Node.js version 8 or later (version 12 or later is recommended)

这些是最基本的要求,实际上还有很多库需要安装,可参考qtwebengine-platform-notes

编译

创建build目录,并使用qmake ../qtwebengine.pro -- -webengine-proprietary-codecs命令

Leou@Leou-PC:/media/Leou/qtwebengine$ mkdir build
Leou@Leou-PC:/media/Leou/qtwebengine$ cd build/
Leou@Leou-PC:/media/Leou/qtwebengine/build$ qmake ../qtwebengine.pro -- -webengine-proprietary-codecs

输出信息:

Info: creating stash file /media/Leou/qtwebengine/build/.qmake.stash
Info: creating cache file /media/Leou/qtwebengine/build/.qmake.cache

Running configuration tests...
Checking for architecture supported... yes
Checking for bison... no
Checking for submodule initialized... yes
Checking for build path without whitespace... yes
Checking for platform supported... 
Checking for gperf... yes
Checking for flex... no
Checking for host pkg-config... /usr/bin/pkg-config
Checking for jumbo build merge limit... 8
Checking for linker supports -z noexecstack... yes
Checking for x11... yes
Checking for libdrm... yes
Checking for xcomposite... yes
Checking for xcursor... yes
Checking for xi... yes
Checking for xtst... yes
Checking for python2... /usr/bin/python2
Checking for d-bus... yes
Checking for fontconfig... yes
Checking for freetype >= 2.4.2... yes
Checking for glib-2.0 >= 2.32.0... yes
Checking for glibc > 2.16... yes
Checking for jsoncpp... no
Checking for khr... yes
Checking for lcms2... no
Checking for libevent... no
Checking for libvpx... no
Checking for libwebp, libwebpmux and libwebpdemux... no
Checking for compatible libxml2 and libxslt... no
Checking for minizip... no
Checking for system ninja... no
Checking for nss >= 3.26... yes
Checking for opus... no
Checking for protobuf... no
Checking for re2... no
Checking for snappy... no
Checking for zlib... yes
Done running configuration tests.

Configure summary:

Qt WebEngine Build Tools:
  Use System Ninja ....................... no
  Use System Gn .......................... no
  Jumbo Build Merge Limit ................ 8
  Developer build ........................ no
  Sanitizer .............................. no
  QtWebEngine required system libraries:
    fontconfig ........................... yes
    dbus ................................. yes
    nss .................................. yes
    khr .................................. yes
    glibc ................................ yes
  QtWebEngine required system libraries for qpa-xcb:
    x11 .................................. yes
    libdrm ............................... yes
    xcomposite ........................... yes
    xcursor .............................. yes
    xi ................................... yes
    xtst ................................. yes
  Optional system libraries used:
    re2 .................................. no
    icu .................................. no
    libwebp, libwebpmux and libwebpdemux . no
    opus ................................. no
    ffmpeg ............................... no
    libvpx ............................... no
    snappy ............................... no
    glib ................................. yes
    zlib ................................. yes
    minizip .............................. no
    libevent ............................. no
    jsoncpp .............................. no
    protobuf ............................. no
    libxml2 and libxslt .................. no
    lcms2 ................................ no
    png .................................. no
    JPEG ................................. no
    harfbuzz ............................. no
    freetype ............................. yes

Note: The following modules are not being compiled in this configuration:
    webenginecore
    webengine
    webenginewidgets
    pdf
    pdfwidgets

WARNING: Tool bison is required to build QtWebEngine.

WARNING: Tool bison is required to build QtPdf.

WARNING: QtWebEngine will not be built.

WARNING: QtPdf will not be built.

Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into '/home/Leou/Qt/5.15.2/gcc_64'.

Prior to reconfiguration, make sure you remove any leftovers from
the previous build.

查看输出信息并安装缺失的库:

安装bison

sudo apt install bison

安装flex

sudo apt install flex

安装后,疑似有缓存,所以导致未更新,可删除build下的产物,再运行一次qmake ../qtwebengine.pro -- -webengine-proprietary-codecs

输出信息:

Leou@Leou-PC:/media/Leou/QtSrc/Src/qtwebengine/build$ qmake ../qtwebengine.pro -- -webengine-proprietary-codecs

Running configuration tests...
Done running configuration tests.

Configure summary:

Qt WebEngine Build Tools:
  Use System Ninja ....................... no
  Use System Gn .......................... no
  Jumbo Build Merge Limit ................ 8
  Developer build ........................ no
  Sanitizer .............................. no
  QtWebEngine required system libraries:
    fontconfig ........................... yes
    dbus ................................. yes
    nss .................................. yes
    khr .................................. yes
    glibc ................................ yes
  QtWebEngine required system libraries for qpa-xcb:
    x11 .................................. yes
    libdrm ............................... yes
    xcomposite ........................... yes
    xcursor .............................. yes
    xi ................................... yes
    xtst ................................. yes
  Optional system libraries used:
    re2 .................................. no
    icu .................................. no
    libwebp, libwebpmux and libwebpdemux . no
    opus ................................. no
    ffmpeg ............................... no
    libvpx ............................... no
    snappy ............................... no
    glib ................................. yes
    zlib ................................. yes
    minizip .............................. no
    libevent ............................. no
    jsoncpp .............................. no
    protobuf ............................. no
    libxml2 and libxslt .................. no
    lcms2 ................................ no
    png .................................. no
    JPEG ................................. no
    harfbuzz ............................. no
    freetype ............................. yes
Qt WebEngineCore:
  Embedded build ......................... no
  Full debug information ................. no
  Pepper Plugins ......................... yes
  Printing and PDF ....................... yes
  Proprietary Codecs ..................... yes
  Spellchecker ........................... yes
  Native Spellchecker .................... no
  WebRTC ................................. yes
  PipeWire over GIO ...................... no
  Geolocation ............................ yes
  WebChannel support ..................... yes
  Kerberos Authentication ................ no
  Extensions ............................. yes
  Node.js ................................ no
  Support qpa-xcb ........................ yes
  Use ALSA ............................... yes
  Use PulseAudio ......................... yes
Qt WebEngineQml:
  Support Qt WebEngine Qml ............... yes
  UI Delegates ........................... yes
  Test Support ........................... no
Qt WebEngineWidgets:
  Support Qt WebEngine Widgets ........... yes
Qt PDF:
  Support V8 ............................. no
  Support XFA ............................ no
  Support XFA-BMP ........................ no
  Support XFA-GIF ........................ no
  Support XFA-PNG ........................ no
  Support XFA-TIFF ....................... no
Qt PDF Widgets:
  Support Qt PDF Widgets ................. yes

WARNING: Building without node.js will disable some features of QtWebEngine DevTools.

Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into '/home/Leou/Qt/5.15.2/gcc_64'.

Prior to reconfiguration, make sure you remove any leftovers from
the previous build.

执行make

make -j14

如果出错,则多执行几次make命令
linux qtwebengine 编译,Qt研究,linux,qt,chromium,qwebengine

执行结束后:

mv -f libqwebengineview.so ../../../plugins/designer/libqwebengineview.so
objcopy --only-keep-debug ../../../plugins/designer/libqwebengineview.so ../../../plugins/designer/libqwebengineview.so.debug && objcopy --strip-debug ../../../plugins/designer/libqwebengineview.so && objcopy --add-gnu-debuglink=../../../plugins/designer/libqwebengineview.so.debug ../../../plugins/designer/libqwebengineview.so && chmod -x ../../../plugins/designer/libqwebengineview.so.debug
make[3]: 离开目录“/media/Leou/QtSrc/Src/qtwebengine/build/src/plugins/qwebengineview”
make[2]: 离开目录“/media/Leou/QtSrc/Src/qtwebengine/build/src/plugins”
rm -f libQt5PdfWidgets.so.5.15.2 libQt5PdfWidgets.so libQt5PdfWidgets.so.5 libQt5PdfWidgets.so.5.15
g++ -Wl,--no-undefined -Wl,--version-script,QtPdfWidgets.version -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN -Wl,-rpath,\$ORIGIN -Wl,-rpath-link,/home/Leou/Qt/5.15.2/gcc_64/lib -shared -Wl,-Bsymbolic-functions -Wl,-soname,libQt5PdfWidgets.so.5 -o libQt5PdfWidgets.so.5.15.2 .obj/qpdfview.o  -L/home/qt/openssl-1.1.1g/lib /media/Leou/QtSrc/Src/qtwebengine/build/lib/libQt5Pdf.so /home/Leou/Qt/5.15.2/gcc_64/lib/libQt5Widgets.so /home/Leou/Qt/5.15.2/gcc_64/lib/libQt5Gui.so /home/Leou/Qt/5.15.2/gcc_64/lib/libQt5Core.so -lpthread -lGL   
ln -s libQt5PdfWidgets.so.5.15.2 libQt5PdfWidgets.so
ln -s libQt5PdfWidgets.so.5.15.2 libQt5PdfWidgets.so.5
ln -s libQt5PdfWidgets.so.5.15.2 libQt5PdfWidgets.so.5.15
rm -f ../../lib/libQt5PdfWidgets.so.5.15.2
mv -f libQt5PdfWidgets.so.5.15.2 ../../lib/libQt5PdfWidgets.so.5.15.2
rm -f ../../lib/libQt5PdfWidgets.so
rm -f ../../lib/libQt5PdfWidgets.so.5
rm -f ../../lib/libQt5PdfWidgets.so.5.15
mv -f libQt5PdfWidgets.so ../../lib/libQt5PdfWidgets.so
mv -f libQt5PdfWidgets.so.5 ../../lib/libQt5PdfWidgets.so.5
mv -f libQt5PdfWidgets.so.5.15 ../../lib/libQt5PdfWidgets.so.5.15
objcopy --only-keep-debug ../../lib/libQt5PdfWidgets.so.5.15.2 ../../lib/libQt5PdfWidgets.so.5.15.2.debug && objcopy --strip-debug ../../lib/libQt5PdfWidgets.so.5.15.2 && objcopy --add-gnu-debuglink=../../lib/libQt5PdfWidgets.so.5.15.2.debug ../../lib/libQt5PdfWidgets.so.5.15.2 && chmod -x ../../lib/libQt5PdfWidgets.so.5.15.2.debug
make[2]: 离开目录“/media/Leou/QtSrc/Src/qtwebengine/build/src/pdfwidgets”
make[1]: 离开目录“/media/Leou/QtSrc/Src/qtwebengine/build/src”

可以看到lib下的产物
linux qtwebengine 编译,Qt研究,linux,qt,chromium,qwebengine

安装

直接替换安装当前Qt 的 QWebEngine

make install

测试

使用Qt的simplebrowser demo程序打开 html5test 网站测试功能:
linux qtwebengine 编译,Qt研究,linux,qt,chromium,qwebengine
可见已经支持了h264、mp3等音视频功能。

总结

在Linux上编译QWebEngine总体上比较容易,没有编译chromium那么困难。

https://doc.qt.io/qt-5/qtwebengine-platform-notes.html文章来源地址https://www.toymoban.com/news/detail-754046.html

到了这里,关于Linux Qt5.15.2 编译QWebEngine源码支持音视频H264的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jetson-nano编译qt5.15.2带opengl,xcb

    项目需求原因,需要编译高版本qt到jetson-nano板子,历经10天来回折腾,终于是成功了。期间历经交叉编译失败,然后转直接编译,然后尝试各种版本的坑,最后整理的方法异常简单,只需6小时左右即可流畅在板子上编译成功。文章最后有我编译好的qt-5.15.2版本链接。 友情提

    2023年04月09日
    浏览(33)
  • QT5.15.2搭建Android编译环境及使用模拟器调试(全)

    地址:下载 我电脑的windows的,所以选windows 由于官方安装过程非常非常慢,一定要跟着步骤来安装,不然慢到怀疑人生 1)打开\\\"命令提示符\\\"(开始 - Windows 系统 - 命令提示符) 或者 “win+R” -输入cmd 找到刚才的exe 命令行输入以下命令(exe位置根据自己实际的),然后回车

    2024年02月04日
    浏览(39)
  • Qt5.15.2安装

            比如 5.15.2 是完整的 Qt 版本号,第一个数字 5 是大版本号(major),第二个数字 15 是小版本号(minor),第三个数字 2 是补丁号(patch)。 只要前面两个数字相同,Qt 的特性就是一致的,最后的数字是对该版本的补丁更新。         Qt 5.15 之后已经不提供离线

    2024年02月08日
    浏览(48)
  • qt5.15.2配置android

    qt安装安卓编译器就直接跳过,我们开始将如何进行配置。 如果专门开发的app,则应该使用android进行开发,qt是熟悉qt语言,或者app需要进行跨平台的话则使用qt for android比较好。 首先安装jdk,最好安装 jdk11,因为他是与qt5.15.2这个能匹配上的 选择javase11 然后进行安装,记住

    2024年02月08日
    浏览(29)
  • Qt5.15.2中加入图片资源

    以前用的Qt5.15.2之前的版本,QtCreator默认的工程文件是*.pro,现在用5.15.2创建工程默认的工程文件是CMameList.txt,当然在创建项目时,仍然可以使用pro工程文件用QtCreator打开CMakeList.txt 以前用习惯了pro文件,现在改成CMakeList很不习惯,现在我们在CMakeList.txt中加入资源文件 1.首先,

    2024年01月22日
    浏览(40)
  • QT新版本安装(5.15以上)——Qt 镜像网站——Qt5.15.2镜像安装

    由于QT版本升级到6.以上版本,在线安装可能找会存在找不到到相关想要的版本。如5.15的版本。 解决办法:还采用在线安装的方法,添加版本的镜像路径(URL)的方法进行安装。 在线安装软件连接: 链接:https://pan.baidu.com/s/1sXqYhfHNNmKCzJf4Xdd0Zg?pwd=o2j2  提取码:o2j2 中国科学技

    2024年04月13日
    浏览(28)
  • Qt5.15.2安卓Android项目开发环境配置

    官方下载:https://download.qt.io/archive/qtcreator/4.11/4.11.2/ 镜像下载:https://mirrors.cloud.tencent.com/qt/archive/qtcreator/4.11/4.11.2/ 官方更新器内部下载 参考:https://blog.csdn.net/weixin_41013202/article/details/129957693 https://adoptium.net/zh-CN/temurin/releases/ (1) Android SDK Platform 最新版(现在是33) (2)

    2024年02月14日
    浏览(30)
  • VS2019+OpenCV+Qt5.15.2安装及工程配置

    目录 一、下载链接 1.1 VS2019下载安装 1.2 OpenCV下载安装 1.3 Qt5.15下载安装 二、工程环境配置 2.1 OpenCV环境配置 2.1.1  环境变量配置 2.1.2 工程属性表配置  2.1.3 重启vs测试  2.2 Qt环境配置 2.2.1 Qt Creator设置  2.2.2 VS2019配置  2.2.3 创建Qt项目 2.2.4 UI 设计配置 该文件仅 1.39 MB,是 VS

    2024年02月16日
    浏览(36)
  • QT5.15.2 在线安装下载速度慢的解决办法

    QT对5.15以及以上版本已经停止提供离线安装包,在线安装网速慢如蜗牛,而且一旦断了又得从头下载,不支持断点续传 由于Qt5.15及以上版本不提供离线安装包,则需要使用在线安装进行安装。首先下载在线安装器: 下载加速需要使用清华源 QT 地址 我宿舍网速是100兆,所以最

    2024年02月13日
    浏览(30)
  • 在线安装Qt(全网最详细图文版)--以Qt5.15.2 Windows版为例

    作者:靠普科技 时间:2023/8/18 版本:V1.0 说明:本文系作者原创,转载前请务必联系本文作者。 接触几年Qt有余,发现部分开发人员对Qt的认识远远不够,仅仅停留在表面。甚至有较少部分人认为Qt是一种开发编程语言或者将QTCreator当做Qt,这些理解都是错误的且过于片面。实

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包