• 4152阅读
  • 2回复

[提问]关于给使用SysGCC给树莓派交叉编译基于GStreamer的QMultimedia中出现的一些问题 [复制链接]

上一主题 下一主题
离线jerryyuan
 

只看楼主 倒序阅读 楼主  发表于: 2017-08-01
找不到GStreamer怎么破?

本人Qt使用的是5.5.0,宿主机操作系统Windows 10,目标机操作系统Raspbian

根据网上关于GStreamer的要求,我在目标机(树莓派)上使用apt-get将gstreamer-0.10和gstreamer-1.0都给装上,然后从树莓派上将系统根目录同步到Raspberry ToolChain中的SysRoot目录下。然后尝试使用qt-everywhere下的configure去检查依赖关系并创建Makefile。但是根据-v给出的提示
Project error:can't find gstreamer-1.0 development package
得知qt并没有找到gstreamer包的所在位置。然后从官网了解得知,gstreamer和QT结合关键在于那个mediaservice的插件,于是我就在qt-everywhere/qtmultimedia/src/plugins/gstreamer中找到了这个插件,尝试进行编译。发现使用qtcreator打开的时候,仍然会报那个错,于是我打开项目中的common.pri,找到其中关于使用PKGCONFIG进行依赖检查的部分,将其注释(也尝试过export PKG_CONFIG_PATH之类的方法,仍然找不到),转而采用手动添加头文件和库文件的方式。我通过根据多次编译的头文件需求报错以及库文件需求报错,添加了完整的GStreamer依赖。但是发现虽然得到了最终的插件,但是将其上传至树莓派的qt插件目录(/path/to/qt/plugins/mediaservice),发现依旧报错'defaultServiceProvider::requestService(): no service found for – “org.qt-project.qt.mediaplayer”'(找不到那个插件)

只是想在树莓派上实现一个播放HLS直播的播放器而已(Windows下使用基于DirectShow的MultiMedia已经实现了),求大神给指点一下到底问题出在哪了。。
离线angelus

只看该作者 1楼 发表于: 2017-08-01
win上的5.5很久以前在树莓派1上编译过,也是最后一个可以在win上编译通过的版本。

现在都是在linux下进行交叉编译的,特别是我需要的5.9.1和树莓派3,在linux下可以编译成功。
GStreamer的编译也是成功的,如果你需要自己编译,我可以提供编译过程!
离线jerryyuan

只看该作者 2楼 发表于: 2017-08-06
编译是已经编译出来了,但是因为用的是EGLFS的无窗口模式,所以GStreamer仍然不能用(找不到合适的嵌入方式),而且目前也出于无解状态。不过发现有个omxplayer,可以作为一个图层飘在EGLFS上边,通过DBus或者控制台往里写指令控制播放。

说一下PKG_CONFIG最后怎么解决的吧。最终也不记得在哪个网站上找到的了,给msys找了个pkg-config.exe用,然后补齐了PKG_CONFIG,PKG_CONFIG_LIB_PATH,PKG_CONFIG_SYSROOT几个环境变量,然后重新编译qmake(这里也是感觉很奇怪,或许在qmake里有写死有没有pkg-config了)就能找到了。
快速回复
限100 字节
 
上一个 下一个