Chroma key webcam video with gstreamer

Sérgio Agostinho sergio.r.agostinho at gmail.com
Wed May 6 09:24:22 PDT 2015


Hi Mike,

Try placing a videoconvert between the alpha and xvimagesink element.

gst-launch-1.0 v4l2src device=/dev/video0 ! queue ! \
    video/x-h264,width=1920,height=1080,framerate=30/1 ! \
    h264parse ! avdec_h264 ! alpha method=green ! \
    *videoconvert* ! xvimagesink sync=false


Cheers

2015-05-06 15:35 GMT+02:00 Michael Ditum <mike at mikeditum.co.uk>:

> Hi,
>
> I'm trying to put together a green screen application with my Logitech
> C910 WebCam on Fedora 21. I've managed to get 1080p30 h264 video from the
> webcam to be displayed with gstreamer using the following command:
>
> gst-launch-1.0 v4l2src device=/dev/video0 ! queue ! \
>     video/x-h264,width=1920,height=1080,framerate=30/1 ! \
>     h264parse ! avdec_h264 ! xvimagesink sync=false
>
> This is working great with nice and low latency. The next thing I want to
> do is Chroma Key-ing of the picture making certain colours transparent
> before I add an image / video behind the webcam picture. From what I've
> read I need to use the alpha filter to achieve this. From looking at
> gst-inspect I can see that it takes in video/x-raw and outputs video/x-raw.
> The avdec_h264 element outputs video/x-raw so it looks like I should be
> able to do:
>
> gst-launch-1.0 v4l2src device=/dev/video0 ! queue ! \
>     video/x-h264,width=1920,height=1080,framerate=30/1 ! \
>     h264parse ! avdec_h264 ! alpha method=green ! \
>     xvimagesink sync=false
>
> However whenever I run that command I get the following output:
>
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> Redistribute latency...
> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal
> data flow error.
> Additional debug info:
> gstbasesrc.c(2933): gst_base_src_loop ():
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> streaming task paused, reason not-negotiated (-4)
> Execution ended after 0:00:00.437613774
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> Can anyone tell me what I'm missing and why this isn't working correctly?
>
> Thanks in advance for any help,
>
> Mike
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150506/6a1a1933/attachment-0001.html>


More information about the gstreamer-devel mailing list