【发布时间】:2015-07-08 00:10:21
【问题描述】:
我一直在尝试使用 Qt Webkit 在浏览器中呈现视频元素。我的所有帧都由 C++ 应用程序(通过网络接收的源视频数据包)解码,我可以使用 Qt 在元素中显示视频,如下所述:QtWebEngine rendering native Qt widgets in DOM? 但我受到 Qt 的 z-index 问题的限制网络套件:(
相反,我想知道以下任何一项是否可能,以及是否有人以前取得过任何成就。
我有一个启动 Chrome Embedded Framework 窗口(基本上是浏览器窗口)的 C++ 应用程序。有什么方法可以让我的 C++ 应用程序直接将视频渲染到该浏览器窗口中 - 使用 webGL 或类似的库?也许有某种方法可以在 C++ 应用程序中使用 openGL 写入显卡内存并让 webGL 读取显卡数据 - 如果存在这种技术,这将是很棒的,但我担心沙盒不会允许这样做。
例如
Browser webGL surface/object <--- C++ application <--- file/network data
一个(非常!)天真的方法是让浏览器窗口使用环回地址上的 websocket 连接到 C++ 核心应用程序,然后 websocket 将表面流式传输到浏览器。然后可以将这些表面绘制到 html5 画布上或由 webGL 使用 - 不过,这可能会导致延迟很糟糕。
例如
Browser <--- websocket <--- C++ decode <--- file/network data
非常感谢 - 对于我可以用于此/代码示例的替代库的任何其他建议将不胜感激:)
【问题讨论】:
-
Qt 5.10 引入了Qt Quick WebGL Streaming Plugin。它允许您将 QML 应用程序流式传输到浏览器。不知道这对你的情况是否有帮助,但我想让你知道,以防万一。
标签: c++ qt canvas opengl-es webgl