Why is rtspsrc not buffering when using videomixer with another source

Marcus Priesch marcus at priesch.co.at
Mon Nov 24 03:20:20 PST 2014


Dear gstreamers,

i have an ip camera and i want to display the rtsp stream with an
overlay ... however i have the problem that when using the videomixer
element the rtspsrc does not buffer any more so that the imagesink
lowers the framerate at some random point in time.

when i set "sync=false" on the imagesink it works - but i assume then
the pipeline is just displaying what arrives as fast as possible - but i
want to stay synchronised ;) - and understand why this is happening ;)

so here is the pipeline working with videomixer and the cam as single
source.

gst-launch-1.0 rtspsrc \
  location="rtsp://192.168.2.101/axis-media/media.amp" \
  latency=2000 \
  ! rtph264depay \
  ! avdec_h264 \
  ! videoscale \
  ! video/x-raw,width=848,height=473 \
  ! videomixer name=mix \
  ! videoconvert \
  ! fpsdisplaysink video-sink=xvimagesink

in this case i see the transparent checkerboard for about 2 sec (which
is the latency setting of the rtspsrc and a stable 25fps without any
dropping ...


here is the same utilizing an overlayimage which results in video being
displayed instantly (without the 2sec delay caused by the latency
setting of the rtspsrc). this starts dropping frames either instantly or
after a short amount of time.

gst-launch-1.0 rtspsrc \
  location="rtsp://192.168.2.101/axis-media/media.amp" \
  latency=2000 \
  ! rtph264depay \
  ! avdec_h264 \
  ! videoscale \
  ! video/x-raw,width=848,height=473 \
  ! videomixer name=mix \
  ! videoconvert \
  ! fpsdisplaysink video-sink=xvimagesink
  filesrc location=logo.jpg \
  ! jpegdec \
  ! imagefreeze \
  ! video/x-raw,framerate=25/1 \
  ! mix.

i suspect that i need some "queue" elements somewhere in the queue, but
all tests i have done so far haven't improve anything.

it simply seems that the images get pulled out of the rtspsrc without
any jitterbufferhandling (the generated .dot file reveal that in the
PLAYING state the "percent" value of the internal rtpjitterbuffer in the
rtspsrc element is simply missing)

i am pretty sure someone from you guys can shed some light on this !!!

ps: i am using gstreamer 1.2.4

thanks in advance,
marcus.

-- 
Marcus Priesch
open source consultant - solution provider
www.priesch.co.at / office at priesch.co.at
A-2122 Riedenthal, In Prandnern 31 / +43 650 62 72 870


More information about the gstreamer-devel mailing list