Qt 视频流应用程序:未找到 qt.mediaplayer 的服务

Posted

技术标签:

【中文标题】Qt 视频流应用程序:未找到 qt.mediaplayer 的服务【英文标题】:Qt video streaming application: no service found for qt.mediaplayer 【发布时间】:2019-10-18 14:49:35 【问题描述】:

我正在尝试制作一个非常简单的 QT QML 应用程序来从以太网摄像机(Axis m3045v)流式传输视频: 在 windows 10 下一切正常,但是一旦我在 Debian 10 下移植代码,应用程序就无法显示视频流并返回此错误...

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway. defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"

我已经按照其他类似问题中的建议安装了 gstreaming(GStreamer 核心库版本 1.16.1)和 libqt5multimedia5-plugins,但没有得到任何结果

可能我仍然缺少一些非常基本的东西,但是作为 Linux 初学者,我在这里被阻止了

这里是 QML 代码:

import QtQuick 2.12
import QtQuick.Controls 2.5
import QtQuick.Window 2.12
import QtMultimedia 5.12

ApplicationWindow 
visible: true
title: qsTr("test")
width: 1920
height: 1080
Video 
    id: videostream
    source: "rtsp://user::password@my_ip_address/axis-media/media.amp"
    autoPlay: true
    autoLoad: true
    anchors.top: parent.top
    width: parent.width
    height: parent.height
  

提前感谢您的帮助

编辑:我在两个系统中都使用 QT Creator

【问题讨论】:

【参考方案1】:

好的 经过几次尝试,我猜想是这个问题: 在我的情况下,QT 是静态构建的,因此它需要显式导入使用的插件。 检查qt多媒体安装先决条件后

https://doc.qt.io/qt-5/linux-requirements.html#multimedia-dependencies

以及所有需要的 gstreaming 库

我在我的 .pro 文件中明确添加了多媒体插件(我以为 QTCreator 已经添加了所有需要的引用,但显然我错了......)

QT += multimedia multimediawidgets

现在看来终于可以正常工作了

【讨论】:

以上是关于Qt 视频流应用程序:未找到 qt.mediaplayer 的服务的主要内容,如果未能解决你的问题,请参考以下文章

Qt 错误,未找到 libtiff.so.4

QT5:未找到 QTQuick.Controls 2.12 版

Beaglebone Black 和 Qt 上的 ALSA 问题:-lasound 未找到

使用 OpenCV 3.0.0 的 Qt 5.6 未找到 DLL 入口点

错误:Qt5 视频渲染错误代码 80040218

Qt Designer 启动时出错:代码执行无法继续,因为未找到 MSVCP140_1.dll