Use sdp in order to playback rtp stream

Paixao Julien J.Paixao at TELEVIC.com
Tue May 3 07:18:02 UTC 2016


Hi Sebastian,

> -----Original Message-----
> From: gstreamer-devel [mailto:gstreamer-devel-bounces at lists.freedesktop.org] On Behalf Of Sebastian Dröge
> Sent: Monday, May 02, 2016 4:53 PM
> To: Discussion of the development of and with GStreamer <gstreamer-devel at lists.freedesktop.org>
> Subject: Re: Use sdp in order to playback rtp stream
> 
> On Mo, 2016-05-02 at 14:23 +0000, Paixao Julien wrote:
> > Hi,
> >
> > On the network I have a server which will start RTP streaming with G711 or G722 data (dynamically chosen).
> > On client side I would like to be able to playback the RTP stream whether it is G711 or G722 data.
> >
> > In order to achieve that, I needed to make available in some ways the media stream information.
> > I decided to use SDP, an SDP file will be available on the server which will contain the information about the media stream.
> > This file will be dynamically changed depending on the codec the server will use.
> >
> > On client side I tried the element uridecodebin with the uri property pointing to the SDP file on the server:
> > - uridecodebin uri=http://<server-ip>:<server-port>/media.sdp !
> > fakesink
> >
> > But this is not working, it gives an error that the type of the stream could not be determined:
> > ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstTypeFindElement:typefindelement0: Could not
> determine type of stream.
> > Additional debug info:
> > gsttypefindelement.c(911): gst_type_find_element_chain_do_typefinding
> > ():
> > /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstTypeFindElemen
> > t:typefindelement0
> 
> Can you show an example SDP? This means that it's not detected as SDP by GStreamer for whatever reason.
> 

v=0
o=user 53655765 2353687637 IN IP4 10.20.1.250
s=-
c=IN IP4 10.20.1.39
t=0 0
m=audio 3001 RTP/AVP 0
a=rtpmap:0 PCMU/8000

> Independent of that you will run into this bug with sdpdemux:
> https://bugzilla.gnome.org/show_bug.cgi?id=702495
> 
> To work around that there is sdpsrc now, and you can build a static pipeline with sdpdemux.
> 

Thanks for the info.

> > On client side, I also tried the sdpdemux element, but the problem with that element is that it "only" provides the RTP raw data, but
> no information about the media stream properties (G711 or G722).
> > So I cannot know which rtp depayloader to attach to the rtp raw data...
> >
> > Would you know a way of achieving the needed playback of such an RTP stream containing G711 or G722?
> 
> The application/x-rtp caps on the streams that come out of sdpdemux have all the relevant information from the SDP, including the
> encoding name.
> 

Indeed, it should do the job, I will attach the correct rtp depayloader and decoder depending on the caps in the application/x-rtp of the stream.

FYI I am now trying to get it working with a multicast IP in the SDP. For the moment I get an error, I will dig into it (no bug report found).
ERROR: from element /GstPipeline:pipeline0/GstSDPDemux:sdpdemux0/GstUDPSrc:udpsrc0: Could not get/set settings from/on resource.
Additional debug info:
gstudpsrc.c(916): gst_udpsrc_start (): /GstPipeline:pipeline0/GstSDPDemux:sdpdemux0/GstUDPSrc:udpsrc0:
could add membership: Error joining multicast group: No such device

Best regards,
Julien.


More information about the gstreamer-devel mailing list