Properly adding a live source dynamically to a pipeline

Tzafrir Rehan tzafrir at tzafrir.net
Mon Sep 29 06:09:22 PDT 2014


What I'm trying to achieve is a Google Hangouts style pipeline, where live
sources can jump in and out of the stream on the fly based on user actions.
My sources are rtmp streams proxied by a local nginx server using rtmp
module.


What I currently have, which sort of works, simplified, is a pipeline that
starts as a videotestsrc connected to a 'identity sync=true', videomixer,
videoconvert, xvimagesink sync=false

When a source is available I add a bin of (rtmpsrc, through decodebin and
video caps, identity sync=true) and link that bin to the videomixer once
the stream arrives (probing for stream-start)


This works, but with bad quality. Choppy video, about 2 fps, with multiple
qos messages coming on the bus.

I've been banging my head against everything timing related I could read,
been messing with the pad's offset, with and without the identity elements,
intercepting the segment event and changing its properties, but nothing
works.

Any clues will be appreciated, many thanks in advance
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140929/c09ff816/attachment-0001.html>


More information about the gstreamer-devel mailing list