Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Qtmediaplayer and custom gstreamer pipeline
I want to play a local stored video in Qtmediaplayer by using custom gstreamer pipeline.
I saw on doc.qt.io something like this:
player->setMedia(QUrl("gst-pipeline: videotestsrc ! autovideosink"));
But couldn't feagure what exactly i must write inside QUrl.
It's a .MP4 file i want to play.
Please help .
Since it's an .mp4 file, why not just use the standard file URL ?
@SGaist i am running it on arm processor which is very slow
The hardware zynqmp SoC am using has hard-coded decode ip,
Which i am able to access only by gstreamer pipeline.
I only want gstreamer pipeline in QUrl.
If anyone has any example please help.
Can you show the exact pipeline you need to use on the command line to show your video ?
gst-launch-1.0 filesrc location="input-file.mp4" ! qtdemux name=demux demux.video_0 ! h264parse ! omxh264dec ! queue max-size-bytes=0 ! kmssink bus-id=fd4a0000.zynqmp-display fullscreen-overlay=1
This is the pipeline am using to run and display video from command prompt and it's working fine.
I want to know how i can use the same in Qtmediaplayer QUrl .
From what I gather in the documentation, something like:
gst-pipeline: filesrc location=input-file.mp4 ! qtdemux name=demux demux.video_0 ! h264parse ! omxh264dec ! queue max-size-bytes=0 ! kmssink bus-id=fd4a0000.zynqmp-display fullscreen-overlay=1. You will likely have to fiddle a bit. Still based on the documentation, you should name your sink
qtvideosinkto make use of a QVideoWidget output.
It gives invalid URI error. Qmediaplay uses playbin pipeline internally so we need to modify that somehow .
What version of Qt are you using ?
Then upgrade your Qt version. As stated clearly in the documentation I linked to, it's a feature available since Qt 5.12.2.
@SGaist thanx for reply, i cannot upgrade qt as it comes as default package with the petalinux.
Can't we run custom gst-pipeline in 5.11.3
Would have to rebuild the GStreamer backend to fit your needs.
Unless you have special restrictions, you can have several Qt versions in parallel. They must be explicitly installed in different places though.
@SGaist thanx for replying.,
i have tried to use another version of QT and tried to cross-compile from the source available as qtopensource.. from qt site.
But i was not able to cross compile may i dont know exact way how to croos-compile Qt from source.
So i am left with the default QT version provided with petalinux.
if you have any idea about cross compiling or procedure please help me, i'll try to cross compile another version.
And how this Gstreamer backend can be built to run gst custome pipeline under Qmediaplayer.
The procedure doesn't change between two Qt versions.
What errors did you get ?
The backend code can be found in the qtmultimedia module.
vicky_mac last edited by vicky_mac
@SGaist I'll try to cross compile qt again and let you know the error .
Meanwhile can you please share any link where i can get the procedure about how to cross compile qt for zynq mpsoc devices.