Proper way to create a video wall/mosaic in newer GStreamer versions (e.g. 1.6.0)

FatHippo dennis.lee at intel.com
Fri Oct 30 03:41:37 PDT 2015


I've been using Ubuntu 14.04's default GStreamer which is pretty old (1.2.4)
and I upgraded to 1.6.0 a few days ago. I noticed that my pipeline for a
simple video wall/mosaic doesn't work anymore. I managed to fix most issues
with the old pipeline but it is still 'faulty'. The following is the
reworked pipeline for a simple video wall/mosaic of four IP cameras:

gst-launch-1.0 -e videomixer name=mix \
  sink_0::xpos=0     sink_0::ypos=0  sink_0::alpha=0 \
  sink_1::xpos=0     sink_1::ypos=0 \
  sink_2::xpos=320 sink_2::ypos=0 \
  sink_3::xpos=0     sink_3::ypos=180 \
  sink_4::xpos=320 sink_4::ypos=180 \
      ! xvimagesink \
  videotestsrc pattern=1 \
      ! video/x-raw,width=640,height=360 \
      ! mix.sink_0 \
  rtspsrc location=rtsp://.../1080p ! decodebin \
      ! videoconvert ! videoscale \
      ! video/x-raw,width=320,height=180 \
      ! mix.sink_1 \
  rtspsrc location=rtsp://.../1080p ! decodebin \
      ! videoconvert ! videoscale \
      ! video/x-raw,width=320,height=180 \
      ! mix.sink_2 \
  rtspsrc location=rtsp://.../1080p ! decodebin \
      ! videoconvert ! videoscale \
      ! video/x-raw,width=320,height=180 \
      ! mix.sink_3 \
  rtspsrc location=rtsp://.../1080p ! decodebin \
      ! videoconvert ! videoscale \
      ! video/x-raw,width=320,height=180 \
      ! mix.sink_4

While the video wall/mosaic runs at a very low framerate (~5 FPS), the
following error message appears every second:

WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A
lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2846): gst_base_sink_is_too_late ():
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
There may be a timestamping problem, or this computer is too slow.

On my old pipeline running on GStreamer 1.2.4, there were no issues with the
FPS at all and there were no error messages appearing every second. 

1. What element(s) and/or element parameters am I missing here?
2. How should I go about optimizing the pipeline for a video wall/mosaic?
3. Off-topic: how do I simulate a '-e' argument when using the GStreamer
SDK?

Thanks



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Proper-way-to-create-a-video-wall-mosaic-in-newer-GStreamer-versions-e-g-1-6-0-tp4674335.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list