Converting this GStreamer pipeline to QGstreamer

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Converting this GStreamer pipeline to QGstreamer

xargon
I have a GStreamer pipeline which is basically streaming video from a camera to the screen. The pipeline is as follows:

get-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw, width=1920, height=1080, format=(string)YUV2, framerate=30/1" ! videoconvert ! nveglglessink sync=false -e

Now, I was trying to convert this pipeline using QtGStreamer as follows:

QGst::PipelinePtr pipeline = QGst::Pipeline::create();

//create the v4l2src element
QGst::ElementPtr videoSource = QGst::ElementFactory::make("v4l2src");
videoSource->setProperty("device", "/dev/video0");
pipeline->add(videoSource);

QGst::CapsPtr caps = QGst::Caps::fromString("video/x-h264,width=1920,height=1080,framerate=30/1, format=(string)YUV2");

QGst::ElementPtr videoConvertElement = QGst::ElementFactory::make("videoconvert");
    pipeline->add(videoConvertElement);


This is where I got stuck. How can I specify the capability of the video source? Secondly, I am using HW acceleration and using nveglglessink as I would also like to later encode this stream as H264 video and save it to disk. I am not sure how to use this sink element in my qt application.

I am new to both gstreamer and QtGStreamer. Any help/guidance would be greatly appreciated!