使用 webengine 视频和音频编解码器

Posted

技术标签:

【中文标题】使用 webengine 视频和音频编解码器【英文标题】:Use webengine video and audio codecs 【发布时间】:2019-12-03 17:28:42 【问题描述】:

对于我的 PyQt5 项目,我使用的是 QWebEngineView,但某些视频(例如 .mp4)无法播放。我可以用pip 安装编解码器,或者通过QApplication() 或类似的东西传递某个参数来解决这个问题吗?

我通过pip安装了PyQt5,所以我没有C:\Qt\...文件,只有Appdata\Local\Programs\Python\Python37\Lib\site-packages中的PyQt5pyqt5_tools文件夹。

我正在使用Python 3.7.2PyQt5.11

【问题讨论】:

pip 与此无关。蟒蛇也不行。这是 Qt 多媒体框架的问题。您应该研究它如何与编解码器集成。我认为它将委派给操作系统以获得编解码器支持,这就是您必须安装它们的地方。不过不确定。 【参考方案1】:

pypi提供的pyqtwebengine没有启用use_proprietary_codecs标志所以你不能播放.mp4。

如果你想获得一个播放 mp4 的 pyqtwebengine,你必须按照以下步骤操作:

    您必须使用WEBENGINE_CONFIG += use_proprietary_codecs 标志编译Qt 才能启用播放mp4 所需的编解码器(Qt WebEngine Features: Audio and Video Codecs)

    然后使用那个 Qt 你必须编译 pyqtwebengine。

【讨论】:

如何从 PyQt5 模块文件夹中编译 QT? @SamG101 你已经用指向你的标志编译了Qt5吗? 我所做的只是 pip 安装了 PyQt5 和 pyqt5_tools,然后我将它们导入 Python(使用 from PyQt5.QtGui import * 等...) @SamG101 正如我指出的那样,pyqt5 对您不起作用,因为它没有使用我在回答中指出的选项进行编译。如果您从未手动编译过 Qt/PyQt,那么您将不得不学习如何编译,这可能需要很长时间。 一旦我构建了新的 webengine,我可以简单地将它放在 PyQt5 文件夹中代替原来的 webengine exe 吗??

以上是关于使用 webengine 视频和音频编解码器的主要内容,如果未能解决你的问题,请参考以下文章

Android音频开发(三)——音频编解码

实时音频编解码之十一Opus编码

WEB浏览器视频流播放方案

h5在页面嵌入video时,只有声音没有画面

1.使用DShow获取本机的视音频设备和自带编解码器列表

h5 video 视频播放开发 和 问题集合