测试页面 https://www.helloweba.net/demo/2018/hls
页面分析:该页面使用了 Html5 video 标签播放 hls m3u8 格式的文件
使用 QT 安装包自带的 QWebEngineView 是不支持在线解码的,即播放不了,会提示不支持该格式
解决方法:使用 – -webengine-proprietary-codecs 参数重新编译 QtWebEngine
【案例经历】
QT 版本:5.13.0
编译类型:msvc2017_64
详细步骤:
。启动 Native Tools Command Prompt for VS 2017,即加载 “C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvars64.bat” 编译环境
。进入源码目录 Qt\Qt5.13.0\5.13.0\Src\qtwebengine
。执行命令 >…\msvc2017_64\bin\qmake.exe – -webengine-proprietary-codecs
。执行命令 >>nmake
注:
。在编译时要花比较长时间,可能需要 8h+,并且需要很大的内存,内存不足容易编译失败,时刻关注,最好预留 16G+
。编译 32 位时可能会出现链接错误,因为 32 位的链接器能够使用的内存不够,需要切换到 64 位的链接器,按照提示修改环境变量 %PATH% 加入路径 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x86
。编译 32 位时可能会出现找不到 mspdbcore.dll 等链接库的错误,需要往上层目录 Hostx64 拷贝过来
。编译 32 位时可能会出现因 qtmain.lib 等找不到对应 .pdb 的警告视为错误,需要修改 D:\Qt\Qt5.14.1\5.14.1\Src\qtwebengine\src\process\Makefile.Release 文件,将其中的 /WX 链接选项删除掉,避免警告视为错误
。Open MaintenanceTool.exe present into the Qt folder, Be sure to check at least: MSVC 2015 32-bit, MSVC 2015 64-bit, MSVC 2017 64-bit, Sources, Qt WebEngine Install and wait until it finishes.
【使用方法】
直接把编译好的 Qt5WebEngineWidgets.dll 和 Qt5WebEngineCore.dll 文件替换掉即可,如果懒得编译,可以直接下载我编译好的二进制文件。
下载链接:
QT5.13.0 MSVC 64 位:https://download.csdn.net/download/XiaoStore/12310328
QT5.14.1 MSVC 32 位:https://download.csdn.net/download/XiaoStore/12546143
【参考】
https://stackoverflow.com/questions/50510457/how-to-compile-qt-webengine-5-11-on-windows-with-proprietary-codecs/