如何在 Qt5.5 中使用 gstreamer1.0 而不是 0.10?
Posted
技术标签:
【中文标题】如何在 Qt5.5 中使用 gstreamer1.0 而不是 0.10?【英文标题】:How to use gstreamer1.0 instead of 0.10 with Qt5.5? 【发布时间】:2018-03-18 13:45:46 【问题描述】:我有一台笔记本电脑和一台电脑,我想测试 Qt 的Media Player example。 在我的笔记本电脑上,一切正常,但在我的电脑上,我收到以下消息:
找不到服务 - “org.qt-project.qt.mediaplayer”
我已经安装了Multimedia Dependencies,但没有任何改变。 所以我尝试使用突触找到丢失的数据包,在两台计算机上,通过搜索 Gstreamer 得到相同的结果: 我还创建了两个文件来与这个命令进行比较:
apt list | grep inst > apt_list.txt
# and
apt list | grep inst > apt_list_laptop.txt
tkdiff apt_list.txt apt_list_laptop.txt
我找不到丢失的东西,我请你帮忙找到它。
编辑:
我使用QT_DEBUG_PLUGINS=1
运行程序,在我拥有的计算机上:"QLibraryPrivate::loadPlugin failed on "/home/.../libgstmediaplayer.so"
也有人说它无法打开libgstaudio-0.10.so.0
,但在笔记本电脑上它使用1.0 version
。
有效地,当我写的时候:
ldd libgstmediaplayer.so
它与我电脑上的 gstreamer0.10 和我笔记本电脑上的 1.0 相关联
【问题讨论】:
这可能会提供线索QT.no service found for - “org.qt-project.qt.mediaplayer” on building static @MohammadKanan 在两台计算机上,我以动态方式构建,Qt 版本和套件是相同的。 都有Linux? @MohammadKanan 都有 ubuntu 16.04 【参考方案1】:我找到了原因,是因为QtCreator使用了位于/home/user/Qt/5.5/gcc_64/plugins/mediaservice/
的库,但是这些库使用的是0.10版本的gstreamer:
Qt Multimedia Module: 添加了 GStreamer 1.0 支持。请注意,默认值仍然是 0.10。
libqt5multimedia5-plugins
包中的库使用 1.0 版本。因此,要在没有 "no service" 消息的情况下启动媒体播放器,我已经使用命令行编译:
qmake player.pro && make
通过这种方式,qmake 使用系统库,而不是 Qt 文件夹中的库。
【讨论】:
以上是关于如何在 Qt5.5 中使用 gstreamer1.0 而不是 0.10?的主要内容,如果未能解决你的问题,请参考以下文章
Qt5.5 如何在应用程序级别覆盖 MousePress 事件坐标
使用 Python3 gstreamer1.0 和 pylonsrc 使用 basler 相机和 pylon5 在处理循环中出现错误