集成 Gstreamer Camera Output 窗口和 Qml 窗口
Posted
技术标签:
【中文标题】集成 Gstreamer Camera Output 窗口和 Qml 窗口【英文标题】:Integrating Gstreamer Camera Output window and Qml window 【发布时间】:2015-09-24 14:00:59 【问题描述】:我正在尝试在 Qt 5.5 中创建一个 qml 应用程序,以使用 Gstreamer 1.0 库(不是现有的 Qml 相机)流式传输相机输出。现在我将 gstreamer 输出和应用程序窗口作为单独的窗口。 如何将 gstreamer 相机输出窗口集成到 Qml 窗口?
【问题讨论】:
To connect Gstreamer with Qt in order to play a gstreamer video in the Qt Widget 的可能重复项 另见gstreamer.freedesktop.org/modules/qt-gstreamer.html @g-v 这不是 To connect Gstreamer with Qt in order to play a gstreamer video in the Qt Widget 的副本。我已经这样做了。但这里的问题是该小部件的 Qml 集成。意味着我需要 Qml 窗口中的 gstreamer 输出。 @g-v 我之前在 Desktop 中尝试过 QtGstreamer。我在 IMX 中也需要这个应用程序。我认为将 QtGstreamer 交叉编译为目标非常困难。 【参考方案1】:这更像是一些想法,而不是实际答案,但也许它会让你进入(希望是好的,或者至少是一些)方向。
我认为只交叉编译 gstreamer(如果你还没有的话)就足够了。
您可以在 Qt 应用程序中轻松使用 gstreamer。接下来要做的是使用 appsink 而不是 ximagesink 或您现在使用的任何东西来实现您在 Qt 应用程序中已经拥有的管道(为此创建一个类等)。
然后,您只需从应用程序接收器中获取框架并将它们推送到一些 QML 小部件中。 我不知道那会是哪个元素..
但是here 和here 我找到了一些例子(第二个使用QtGstreamer,但它有一些有用的见解)。
我认为(但只是推测,从未这样做过)您可以将 QDeclarativeItem 的视口设置为 QGLWidget。然后就是用 QPainter 绘制框架了。
我认为还有一些方法可以直接传递 OpenGL 上下文并直接绘制..
HTH
【讨论】:
感谢您的详细回复。我会检查它并复出 @VishnuLALK 我刚刚读到现在发布的gstreamer 1.6 有一些新的 QML 元素接收器,这对你来说可能很有趣..以上是关于集成 Gstreamer Camera Output 窗口和 Qml 窗口的主要内容,如果未能解决你的问题,请参考以下文章