【发布时间】:2021-04-05 17:07:13
【问题描述】:
这个问题与未回答的“通过 Gstreamer qmlglsink 插件在 Qml 中显示视频”问题有关,因为我有同样的问题。
问题是 Qt Creator 找不到解析导入“org.freedesktop.gstreamer.GLVideoItem 1.0”语句所需的任何文件。
当我创建一个新的 QML 项目并添加导入“org.freedesktop.gstreamer.GLVideoItem 1.0”行时。我得到这个错误。该项目编译并运行良好。
我有另一个项目来自我下载的示例。它在其 qml 文件中使用 GstGLVideoItem。它也给出了同样的错误,它也编译和运行良好。它可以毫无问题地从文件中播放 Big Buck Bunny 视频。
我已经完全重建了我的计算机,试图解决这个问题。按照 GStreamer 网站上的说明,使用在线安装程序和 GStreamer 1.18.0 将 Qt 5.15.2 重新安装到 Ubuntu 20.10 PC 中。 Qt 和 GStreamer 都按预期工作。我已经能够毫无问题地构建和运行任何所需的 Qt 示例。我还能够使用 C 和 gst-launch-1.0 编译和运行任何 GStreamer 教程以及我自己的自定义管道。
当我将两者放在一起并尝试在 QML 中显示 GStreamer 视频时,Qt Creator 中会出现此问题。
我是 Linux、Qt、GStreamer、qmake、cmake 的新手……我该如何调试?导入语句要查找什么样的文件?它是 .qml 文件还是其他类型的文件?如何找到文件的确切名称以查看它是否存在?
这是显示视频的项目的 .pro 文件的内容。我已经尝试了我能在网上找到的大部分方法来解决这个问题,但没有任何乐趣。
TEMPLATE = app
QT += qml quick widgets
CONFIG += qml_debug
QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig debug
PKGCONFIG += \
gstreamer-1.0 \
gstreamer-sdp-1.0 \
gstreamer-gl-prototypes-1.0 \
gstreamer-gl-1.0 \
gstreamer-gl-egl-1.0 \
gstreamer-app-1.0 \
gstreamer-net-1.0 \
gstreamer-video-1.0 \
gstreamer-controller-1.0 \
gstreamer-rtsp-1.0 \
gstreamer-plugins-base-1.0 \
gstreamer-pbutils-1.0 \
gstreamer-check-1.0 \
gstreamer-allocators-1.0 \
gstreamer-rtp-1.0 \
gstreamer-riff-1.0 \
gstreamer-tag-1.0 \
gstreamer-audio-1.0 \
gstreamer-gl-x11-1.0 \
gstreamer-fft-1.0 \
gstreamer-base-1.0
CONFIG += c++17
INCLUDEPATH += /usr/include/gstreamer-1.0/
INCLUDEPATH += /usr/include/glib-2.0/
INCLUDEPATH += /usr/lib/x86_64-linux-gnu/glib-2.0/include/
DEFINES += GST_USE_UNSTABLE_API
INCLUDEPATH += ../lib
SOURCES += main.cpp \
qmlplayer.cpp \
setplaying.cpp
RESOURCES += qmlsink.qrc
QML_IMPORT_PATH += /usr/lib/x86_64-linux-gnu/gstreamer-1.0
QML_IMPORT_PATH += /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0
QML_IMPORT_PATH += /lib/x86_64-linux-gnu/gstreamer-1.0
HEADERS += \
qmlplayer.h \
setplaying.h
【问题讨论】:
-
QtCreator 是什么版本?