[gst-devel] rtsp / real

Philippe Khalaf burger at speedy.org
Tue Jul 25 01:50:00 CEST 2006

Lutz Müller wrote:
> Hello!
> I ported the handshake logic between the client and a Real server from
> xine to gst-plugins-good/gst/rtsp.
> I now get 4 pads:
> - rtpdepay0.srcrtcp: no caps
> - rtpdepay0.srcrtp: application/x-rtp, media=(string)video,
> payload=(int)101
> - rtpdepay1.srcrtcp: no caps
> - rtpdepay1.srcrtp: application/x-rtp, media=(string)audio,
> payload=(int)101
As Thomas said, there is something wrong with these caps. The payload
type represents a codec, so they should be different for audio or video.
In RTP, any payload types above 96 are dynamic, meaning they should be
negotiated in the session (RTSP in this case). Once they have been
negotiatied, your RTSP element can set them on the caps. But the initial
caps setting should be a range.

> Can someone tell me what elements I need to connect those pads to? It
> would help a lot if I had a sample working rtsp pipeline, i.e. for
> rtsp://beagle.unl.edu/relay. How should the pipeline be for this
> stream? 
There is an rtpbin element in the farsight gst-plugins-farsight
repository. Eventually that will hopefully be moved to gstreamer when it
is ready. This rtpbin is simply a container for an RTP session. It also
contains a half broken jitterbuffer element. It can also do RTCP if
jrtplib is installed/enabled. But for a start, I would ignore the RTCP
data. Check out http://gstreamer.freedesktop.org/documentation/rtp.html
for more information.

There is no element that can automatically create a reception pipeline
for your RTP stream. BUT there is a file
(farsight/plugins/rtp/rtpgstcodecs.c) in farsight that does everything
required for such an element. It finds all rtp payloaders/depayloader,
finds their respective encoders/decoders, and creates the
encoder->payloader or depayloaer->decoder chain for you. I am thinking
it would be very interesting to create a "rtpplaybin" element that would
have all that code and automatically playback an RTP stream. If you
negotiate multiple codecs in RTSP, you can have the rtpdemux element
that can use the auto code to create the approriate rtp pipeline on
demand as soon as a stream is received. This is all done inside the
Farsight RTP plugin, but I think alot of it can be moved into a bin in


> gst-launch gstrtspsrc location="rtsp://beagle.unl.edu/relay" !
> decodebin ! audioconvert ! alsasink
> does not work (no linking in decodebin, probably because of
> Thank you!
> ------------------------------------------------------------------------
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> ------------------------------------------------------------------------
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

More information about the gstreamer-devel mailing list