[gst-devel] basic pad duplication/splitter question

Edward Hervey bilboed at gmail.com
Sat Apr 24 09:55:00 CEST 2010


On Fri, 2010-04-23 at 17:14 -0400, Christopher Harvey wrote:
> I've got this bit of code:
>   assert(gst_bin_add(GST_BIN(thisPipe), v4lSrc));
>   assert(gst_bin_add(GST_BIN(thisPipe), appSink));
>   assert(gst_bin_add(GST_BIN(thisPipe), udpSink));
> 
>   assert(gst_element_link(v4lSrc, appSink));
>   assert(gst_element_link(v4lSrc, udpSink));  //fails

  Link v4lsrc to a 'tee' element, and then link tee to appsink and
udpsink.
  Note that you will need to insert a queue before both appsink and
udpsink.

    Edward

> 
> I see why this is failing, the output pad of the v4lSrc is used by
> appSink. What do I do if I want to link to both the app and udpSink?
> 
> Is sending raw video like that over udp a good idea? If there are lost
> packets will I still get a reasonable image on the other end?

  Sending anything via raw udp is a bad idea, since it's a lossy
transport. In order to cope with this, use RTP/RTSP (which also handles
out-of-band information transmission, synchronization, error recovery,
etc...). RTP/RTSP is the standard protocol for live
streaming/voip/videoconferencing and is pretty well supported in
GStreamer.

  We have raw video RTP payloaders and depayloaders in GStreamer, 

  You might also be interested by the gst-rtsp-server which will take
care of properly setting up the rtp part of your pipeline, allocate udp
ports AND provide a rtsp server (so you can then use any rtsp compatible
client to connect to it):
http://people.freedesktop.org/~wtay/

> 
> Thanks,
> Chris
> 






More information about the gstreamer-devel mailing list