videobox를 이용해서 어느정도는 원하는 위치로 옮길순 있는데 자유자재로 옮기긴 힘든 듯?
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. |
[링크 : https://gstreamer.freedesktop.org/documentation/videomixer/index.html?gi-language=c]
bottom “bottom” gint Pixels to box at bottom (<0 = add a border) Flags : Read / Write Default value : 0
left “left” gint Pixels to box at left (<0 = add a border) Flags : Read / Write Default value : 0
right “right” gint Pixels to box at right (<0 = add a border) Flags : Read / Write Default value : 0
top “top” gint Pixels to box at top (<0 = add a border) Flags : Read / Write Default value : 0 |
[링크 : https://gstreamer.freedesktop.org/documentation/videobox/index.html?gi-language=c]
ximagesink 에다가 sync=false 하니 프레임이 잘 나온다.
videomixer가 더 앞에 있으니 videomixer에 sync=false를 넣어야 할 줄 알았는데 의외네
$ gst-launch-1.0 v4l2src device=/dev/video2 ! jpegdec ! videomixer name=mix ! videoconvert ! ximagesink sync=false v4l2src device=/dev/video0 ! jpegdec ! mix. |
[링크 : https://stackoverflow.com/questions/38392956/gstreamer-videomixer-very-low-framerate]
$ gst-launch-1.0 \ v4l2src device=/dev/video2 ! jpegdec ! \ videobox top=0 bottom=0 left=-960 ! \ videomixer name=mix sink_0::alpha=1 sink_1::alpha=1 ! \ videoconvert ! \ ximagesink window-width=1920 window-height=1080 sync=false \ v4l2src device=/dev/video0 ! jpegdec ! \ videobox top=0 bottom=0 ! mix. |