|
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!
|