如何在 Raspberry Pi3 上的 Qt5 上使用 qt-gstreamer 和 qtquick2videosink
Posted
技术标签:
【中文标题】如何在 Raspberry Pi3 上的 Qt5 上使用 qt-gstreamer 和 qtquick2videosink【英文标题】:How to use qt-gstreamer with qtquick2videosink on Qt5 on Raspberry Pi3 【发布时间】:2020-02-20 02:12:31 【问题描述】:我从 GitHub(版本 1.2.0)上的源代码构建了 qt-gstreamer。然后我尝试在 Raspberry Pi3 上的 qt5 上运行 qmlplayer2 应用程序(由 qt-gstreamer 构建并使用 qtquick2videosink),但在运行时出现以下错误:
(gst-plugin-scanner:3749): GStreamer-WARNING **: 加载插件失败 '/usr/lib/gstreamer-0.10/libgstqt5videosink.so': /usr/lib/gstreamer-0.10/libgstqt5videosink.so:未定义符号: _Z33gst_qt_quick2_video_sink_get_typev 未能创建 qtquick2videosink。确保安装正确
(qmlplayer2:8517): GStreamer-CRITICAL **: gst_bin_add: 断言 “GST_IS_ELEMENT(元素)”失败
(qmlplayer2:8517): GStreamer-CRITICAL **: gst_element_link_pads_filtered:断言“GST_IS_ELEMENT(dest)” 失败
【问题讨论】:
【参考方案1】:查看qt-gstreamer的源码,我发现gst_qt_quick2_video_sink_get_type()函数是在gstqtquick2videosink.cpp中实现的,但是由于cmake中缺少与OpenGL相关的配置,这个文件没有被编译。
我将 cmake 配置如下:
然后重建并将新文件 libgstqt5videosink.so 部署到目标设备上的 /usr/lib/gstreamer-0.10/libgstqt5videosink.so。之后 qmlplayer2 应用程序工作正常。
【讨论】:
"配置如下"... 抱歉,但是如何配置?你忘了写你的配置吗 感谢您的快速回复,但我仍然遇到困难。我不知道如何在 cmake 中更新这些变量。我是一个 cmake 新手。我使用 buildroot,在配置阶段后我可以在 CMakeCache.txt 中看到上述变量,但我不认为这是更新它们的正确方法。请建议最好的文件来更新路径。谢谢 @DMcAttach 你应该使用 Cmake GUI 而不是命令行来轻松配置这些变量 感谢更新和修复。我修补了 CMakeLists.txt 以添加我的路径。以上是关于如何在 Raspberry Pi3 上的 Qt5 上使用 qt-gstreamer 和 qtquick2videosink的主要内容,如果未能解决你的问题,请参考以下文章
基于树莓派(Raspberry Pi3)平台通过微信(WeChat模块)进行交互的智能家居实现
如何将运行时框架“Microsoft.WindowsDesktop.App”,版本 6.0.0 下载到 Raspberry PI 3b+