Custom streamer pipeline in QML
-
Hi,
I want to use custom Gstreamer pipeline to play UDP/TCP streams.
There will be multiple streams available and i need to switch from one stream to another as required and that will need change in pipeline as well .
Please suggest how it can be done and if there is any example code i can follow?
Thank you...
-
Hi,
Are you going to show multiple streams ?
Are the URLs known in advance ? -
@SGaist Yes i know the source from where the data will be coming . IT will have multiple cameras which will send feed to my system. So basically in pipeline only port number will change or in worst case scenario the whole pipeline ,,, But source is known in all cases
-
@SGaist thanx for the info. Now pipeline works , but i have another issue.
I am using ZynqMPSoC board which has hardware acceleration for encoding and decoding. When i run simple pipeline from command line using gst-launch and kmssink it works fine. But when i use inside QML Mediaplayer it;s very slow and not useful at all.I read some post where user said it's because of using videoconvert ! qtvideosink , because videoconvert is using processor of color conversion. Is there any way we can avoid videoconvert , because without this pipeline doesn't work.
-
I just remembered, GStreamer now provides a sink for QML. You should check it.
-
@SGaist do you have any example where qmlsink have been used inside gstreamer pipeline in qml file.
Actually my decoder is doesn't gibe RGB output its interleaved YUV format, which i am converting to RGB and that's causing too much delay.
Is there any way we can directly play interleaved YUV format in QML.
-
Did you already check that GStreamer example ?
Interleaved YUV is a bit vague as there are many variants. Which one are you using ?
-
From memory that one is supported directly by Qt Quick.
Which version of Gstreamer are you using ?
Did you instal all the plugin packages ? -
@SGaist said in Custom streamer pipeline in QML:
of Gstreamer are you using ?
I am using GStreamer 1.16.1. and Qt 5.13.2.
while running gst-inpect i don't find gmlglsink. I have installed all the plugins but dont know from which plugin this package will be available.I am using this pipeline:
MediaPlayer{
id: mediaplayer
source: "gst-pipeline: udpsrc port=11000 ! video/mpegts ! tsdemux ! h264parse ! omxh264dec ! videoconvert ! qtvideosink sync=false"It runs fine but very slow due to videoconvert . I want to avoid videoconvert and trying to find out alternatives. Because its being done in my embedded processor and its very slow.
-
Can you show the GStreamer packages that you have in your installation ?
-
@vicky_mac said in Custom streamer pipeline in QML:
module org.freedesktop.gstreamer.GLVideoItem
if vaapi is used in the pipeline on linux, install libva-dev