错误:Qt5 视频渲染错误代码 80040218
Posted
技术标签:
【中文标题】错误:Qt5 视频渲染错误代码 80040218【英文标题】:Error: Qt5 Video render error code 80040218 【发布时间】:2013-11-29 14:13:15 【问题描述】:在Qt5中运行使用QWebView制作的应用程序时,我访问了一个带有html5中视频播放器的页面,但是视频无法播放,qt/directshow 显示以下错误:
DirectShowPlayerService::doRender: 未解决的错误代码 80040218 DirectShowPlayerService::doRender: 未解决的错误代码 80040218
详情:
Qt5.1.1 MingW4.8 32bit Windows 7 64 位我怀疑这就是为什么我的 Windows 是 64 位,但 *QT/MingW** 在 32 位 上运行,可能会错过一些 DLL/LIB.
我该如何解决这个问题?
谢谢。
【问题讨论】:
【参考方案1】:错误代码相当笼统:0x80040218
VFW_E_CANNOT_RENDER
“找不到过滤器组合来呈现流。”典型的原因是应用程序无法解码媒体源,因为它缺少解码组件,例如此视频源的编解码器未安装/可用。
【讨论】:
我想我明白你的意思是我需要使用编解码器? 是的,缺少解码器(编解码器)是典型原因。请注意,32 位应用程序需要 32 位编解码器,64 位应用程序需要 64 位编解码器。 +1 回答。题外话:对不起,想要个人意见,ffmpeg 还是 vlc? 这里无法确定,缺少哪个编解码器,所以没有好的建议。您更喜欢特定的编解码器而不是代码包,但您需要确切知道缺少什么编解码器(格式)。 Windows 7 已经有 H.264 视频解码器,所以我想另一种格式有问题,可能是 WebM?如果是 WebM,那么它是 code.google.com/p/webm/downloads/list,或者如果您不知所措,您可能需要安装 FFdshow。 是h264,我检查了支持的格式,DEBUG返回空列表。我想也许我的编解码器是 Windows64bit,但我使用 MingW-32bit,所以我正在考虑链接“ffmpeg lib”(或 VLC)【参考方案2】:您可以查看“LAV 过滤器”。它解决了我的渲染问题:'DirectShowPlayerService::doRender: Unresolved error code 80040266'。
下载安装程序:http://forum.doom9.org/showthread.php?t=156191以及源代码:https://github.com/Nevcairiel/LAVFilters
【讨论】:
【参考方案3】:在你的机器上安装 K-Lite_Codec_Pack_1540_Basic,这个错误与 pyqt5 和任何其他的无关
【讨论】:
Yours 是本问答中第一次提到 pyqt5。成功渲染似乎有很多途径:K-Lite_Codec_Pack_1540_Basic 值得考虑的因素是什么? 请告知您遇到了哪些错误以及您采取行动的动机是什么?【参考方案4】:如果您是开发人员,您可以下载并使用ffmpeg 将您的文件解码和编码为 avi(windows) 或 mov(mac)。
【讨论】:
我如何将它嵌入到 QtWebkit 中?由于 qtwebkit 是一个“浏览器”平台,也就是说,其目的是用 HTML5 视频播放器打开 HTML 页面。我如何让 QtWebkit 与用 ffmpeg 制作的解码器进行通信?请记住,网页可以接收不止一种视频格式。举个例子,谢谢。 @GuilhermeNascimento 那么我认为你应该先尝试一下,mp4 非常流行。但是如果你仍然想通过 ffmpeg 转换它,我手头没有那么多时间,但我确实检查了 QtWebEngine(QtWebkit) 支持“信号”和“插槽”,这就是你与 ffmpeg 通信的方式。 FFmpeg 是一个 CLI,这意味着您必须使用您的编程语言中可用的 shell 命令与它进行通信,我使用的是 python,所以不知道它是如何在一个几乎不知道的语言中正确完成的。 我应该使用什么信号和插槽?哪个 QtWebkit 类(它有多个接口)?以上是关于错误:Qt5 视频渲染错误代码 80040218的主要内容,如果未能解决你的问题,请参考以下文章
Qt5:错误:“WA_LockPortraitOrientation”不是“Qt”的成员
使用 Docker 使用 QOffscreenSurface 进行屏幕外渲染