videomixer

videomixer

Properties

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstVideoMixer2

Implemented Interfaces

GstVideoMixer2 implements GstChildProxy.

Description

Videomixer can accept AYUV, ARGB and BGRA video streams. For each of the requested sink pads it will compare the incoming geometry and framerate to define the output parameters. Indeed output video frames will have the geometry of the biggest incoming video stream and the framerate of the fastest incoming one.

Videomixer will do colorspace conversion.

Individual parameters for each input stream can be configured on the GstVideoMixer2Pad.

Sample pipelines

1
2
3
4
5
6
7
8
gst-launch-1.0 \
  videotestsrc pattern=1 ! \
  video/x-raw,format=AYUV,framerate=\(fraction\)10/1,width=100,height=100 ! \
  videobox border-alpha=0 top=-70 bottom=-70 right=-220 ! \
  videomixer name=mix sink_0::alpha=0.7 sink_1::alpha=0.5 ! \
  videoconvert ! xvimagesink \
  videotestsrc ! \
  video/x-raw,format=AYUV,framerate=\(fraction\)5/1,width=320,height=240 ! mix.
A pipeline to demonstrate videomixer used together with videobox. This should show a 320x240 pixels video test source with some transparency showing the background checker pattern. Another video test source with just the snow pattern of 100x100 pixels is overlaid on top of the first one on the left vertically centered with a small transparency showing the first video test source behind and the checker pattern under it. Note that the framerate of the output video is 10 frames per second.
1
2
3
4
5
gst-launch-1.0 videotestsrc pattern=1 ! \
  video/x-raw, framerate=\(fraction\)10/1, width=100, height=100 ! \
  videomixer name=mix ! videoconvert ! ximagesink \
  videotestsrc !  \
  video/x-raw, framerate=\(fraction\)5/1, width=320, height=240 ! mix.
A pipeline to demostrate bgra mixing. (This does not demonstrate alpha blending).
1
2
3
4
5
gst-launch-1.0 videotestsrc pattern=1 ! \
  video/x-raw,format =I420, framerate=\(fraction\)10/1, width=100, height=100 ! \
  videomixer name=mix ! videoconvert ! ximagesink \
  videotestsrc ! \
  video/x-raw,format=I420, framerate=\(fraction\)5/1, width=320, height=240 ! mix.
A pipeline to test I420
1
2
3
4
5
6
7
8
gst-launch-1.0 videomixer name=mixer sink_1::alpha=0.5 sink_1::xpos=50 sink_1::ypos=50 ! \
  videoconvert ! ximagesink \
  videotestsrc pattern=snow timestamp-offset=3000000000 ! \
  "video/x-raw,format=AYUV,width=640,height=480,framerate=(fraction)30/1" ! \
  timeoverlay ! queue2 ! mixer. \
  videotestsrc pattern=smpte ! \
  "video/x-raw,format=AYUV,width=800,height=600,framerate=(fraction)10/1" ! \
  timeoverlay ! queue2 ! mixer.
A pipeline to demonstrate synchronized mixing (the second stream starts after 3 seconds)

Synopsis

Element Information

plugin

videomixer

author

Wim Taymans <wim@fluendo.com>, Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Filter/Editor/Video/Compositor

Element Pads

name

sink_%u

direction

sink

presence

request

details

video/x-raw, format=(string){ AYUV, BGRA, ARGB, RGBA, ABGR, Y444, Y42B, YUY2, UYVY, YVYU, I420, YV12, NV12, NV21, Y41B, RGB, BGR, xRGB, xBGR, RGBx, BGRx }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

name

src

direction

source

presence

always

details

video/x-raw, format=(string){ AYUV, BGRA, ARGB, RGBA, ABGR, Y444, Y42B, YUY2, UYVY, YVYU, I420, YV12, NV12, NV21, Y41B, RGB, BGR, xRGB, xBGR, RGBx, BGRx }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

Functions

Types and Values

struct GstVideoMixer2

struct GstVideoMixer2;

The opaque GstVideoMixer2 structure.


enum GstVideoMixer2Background

The different backgrounds videomixer can blend over.

Members

VIDEO_MIXER2_BACKGROUND_CHECKER

checker pattern background

 

VIDEO_MIXER2_BACKGROUND_BLACK

solid color black background

 

VIDEO_MIXER2_BACKGROUND_WHITE

solid color white background

 

VIDEO_MIXER2_BACKGROUND_TRANSPARENT

background is left transparent and layers are composited using "A OVER B" composition rules. This is only applicable to AYUV and ARGB (and variants) as it preserves the alpha channel and allows for further mixing.

 

Property Details

The “background” property

  “background”               GstVideoMixer2Background

Background type.

Flags: Read / Write

Default value: Checker pattern