Arm-linux play media fail
-
Hi,
Did you build Qt yourself ?
-
Did you install all of gstreamer development packages ?
-
Use your distribution package manager for that or rather the one from your target device if you are cross-compiling.
-
Use your distribution package manager for that or rather the one from your target device if you are cross-compiling.
@sgaist I don't quite understand.
I use uart terminal to control the board.
It just show me about the gst-root@imx6qsabresd:~# gst- gst-device-monitor-1.0 gst-launch-1.0 gst-typefind-1.0 gst-discoverer-1.0 gst-play-1.0 gst-inspect-1.0 gst-stats-1.0
also I find
gstreamer-1.0
in /usr/share/
Could you please tell me how to do in detail? -
Use your distribution package manager for that or rather the one from your target device if you are cross-compiling.
-
What distribution are you using on your device ?
-
I mean what Linux distribution are you running on the device ?
-
@SGaist
Linux distribution refers to Ubuntu or CentOS? If yes, I just know I'm using Ubuntu 12.04 on VMWare on PC. Is NXP also a Linux distribution?
I got this message byuname -a
:root@imx6qsabresd:~# uname -a Linux imx6qsabresd 4.1.15 #9 SMP PREEMPT Fri Aug 23 10:07:29 CST 2019 armv7l armv7l armv7l GNU/Linux
Is this what you need?
-
No, NXP is not a Linux distribution, it's a semiconductor manufacturer.
Do you have somewhere in the documentation provided some information about the software stack running on your device ?
-
No, NXP is not a Linux distribution, it's a semiconductor manufacturer.
Do you have somewhere in the documentation provided some information about the software stack running on your device ?
@sgaist
As far as I know, we can get the Linux distribution from/etc/issue.net
or/proc/version
. But the content iscat /etc/issue.net Freescale i.MX Release Distro 4.1.15-2.1.0 %h cat /proc/version Linux version 4.1.15 (vmuser@Linux-host) (gcc version 5.3.0 (GCC) ) #9 SMP PREEMPT Fri Aug 23 10:07:29 CST 2019
I think they had been changed by Freescale, so I can't know the original distribution. Or maybe I can get it from customer service or their forum.
-
No, NXP is not a Linux distribution, it's a semiconductor manufacturer.
Do you have somewhere in the documentation provided some information about the software stack running on your device ?
@sgaist Now I want to cross-compile again, and I got a new ubuntu to do it following Building Qt 5 from Git. When configuring, it couldn't checking for GStreamer:
GStreamer support cannot be enabled due to functionality tests!
. What should I do?Maybe I know what Linux distribution the Freescale use, it's Yocto!
-
You need the GStreamer development packages installed.
-
@sgaist I use QT_DEBUG_PLUGINS to see the output:
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5/plugins/mediaservice" ... QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/mediaservice/libqtmedia_audioengine.so" Found metadata in lib /usr/lib/qt5/plugins/mediaservice/libqtmedia_audioengine.so, metadata= { "IID": "org.qt-project.qt.mediaserviceproviderfactory/5.0", "MetaData": { "Keys": [ "audiocapture" ], "Services": [ "org.qt-project.qt.audiosource" ] }, "className": "AudioCaptureServicePlugin", "debug": false, "version": 329218 } Got keys from plugin meta data ("audiocapture") defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
Does it mean it's running without some plugins?
Also I ready to compile qt-gstreamer, cus I have installed GStreamer on Ubuntu bysudo apt-get install
, but it doesn't work:checking for GStreamer 1.0... Project WARNING: pkg-config disabled, can't check package existence Project ERROR: gstreamer-1.0 development package not found GStreamer 1.0 disabled. checking for GStreamer 0.10... Project WARNING: pkg-config disabled, can't check package existence Project ERROR: gstreamer-0.10 development package not found GStreamer 0.10 disabled. GStreamer support cannot be enabled due to functionality tests!
So I use
sudo find / -name *gstreamer*-dev*
to find the development packet:vmuser@Linux-host:~/qt-everywhere-opensource-src-5.6.2$ sudo find / -name *gstreamer*-dev* /var/cache/apt/archives/libgstreamer0.10-cil-dev_0.9.2-4_all.deb /var/cache/apt/archives/libgstreamer0.10-dev_0.10.36-1ubuntu1_amd64.deb /var/cache/apt/archives/libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0.2_amd64.deb /var/cache/apt/archives/libgstreamer-vaapi0.10-dev_0.3.6-0ubuntu2_amd64.deb /var/cache/apt/archives/libgstreamer-plugins-bad0.10-dev_0.10.22.3-2ubuntu2.5_amd64.deb /var/lib/dpkg/info/libgstreamer0.10-dev.md5sums /var/lib/dpkg/info/libgstreamer0.10-dev.list /var/lib/dpkg/info/libgstreamer-plugins-bad0.10-dev.md5sums /var/lib/dpkg/info/libgstreamer-plugins-base0.10-dev.list /var/lib/dpkg/info/libgstreamer0.10-cil-dev.list /var/lib/dpkg/info/libgstreamer-vaapi0.10-dev.md5sums /var/lib/dpkg/info/libgstreamer-vaapi0.10-dev.list /var/lib/dpkg/info/libgstreamer-plugins-bad0.10-dev.list /var/lib/dpkg/info/libgstreamer-plugins-base0.10-dev.md5sums /var/lib/dpkg/info/libgstreamer0.10-cil-dev.md5sums /usr/share/doc/libgstreamer-plugins-bad0.10-dev /usr/share/doc/libgstreamer-plugins-base0.10-dev /usr/share/doc/libgstreamer0.10-cil-dev /usr/share/doc/libgstreamer-vaapi0.10-dev /usr/share/doc/libgstreamer0.10-dev
, and I add all these path into $PATH, it also doesn't work
(Project WARNING: pkg-config disabled, can't check package existence Project ERROR: gstreamer-1.0 development package not found
)
.Or should I find the code to cross-compiler the GStreamer and
export PKG_CONFIG_PATH
for configure?Thank you so much for your support~
-
QtGStreamer is not an official Qt module and unrelated to QtMultimedia.
You should rather use GStreamer 1.0.
Are you sure these are installed and not just downloaded ?
-
QtGStreamer is not an official Qt module and unrelated to QtMultimedia.
You should rather use GStreamer 1.0.
Are you sure these are installed and not just downloaded ?
@sgaist Ok, a bit messy now, let's tidy up first.
I only useQMediaPlayer
to play a music.
On Ubuntu(VMWare), it's working without any error message.
But on Arm-Linux(yocto, provided by NXP, maybe), it doesn't work with error message:
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
If Qt Multimedia doesn't relate to Qt GStreamer but the basic GStreamer, how can I check whether the device support Qt Multimedia or not, cus I can play mp3 by mplayer, I can find the basic GStreamer(gstreamer 1.0 )on the device.
Or do you have other suggestion to play music with adjusting volume and schedule, cusQSound
can not adjust these attributes;QAudioOutput
must set any other attributes(sample rate and channel);QSoundEffect
can not adjust schedule.
BTW, could QMediaPlayer play the wav file?
Also, I ran the example/usr/share/qt5/examples/multimedia/imxplayer/imxplayer
,it 's a Qt5 demo media palyer integrated with freescale Gstreamer 1.0 framework for X11 graphics.root@imx6qsabresd:~# /usr/share/qt5/examples/multimedia/imxplayer/imxplayer ** Message: GStreamer version 1.8.1 display(/dev/fb0) resolution is (1280x800). ====== OVERLAYSINK: 4.1.6 build on Jun 20 2017 08:56:25. ====== ** Message: videosink is overlay
It can find the basic GStreamer.