[gst-devel] using SDP files with playbin

Rémi BUISSON remi.buisson at viotech.net
Thu Sep 18 08:49:31 CEST 2008


Hi everyone,

I have some troubles using SDP files with playbin.
Both client (192.168.1.30) and server (192.168.1.2) are under Ubuntu 
8.04 LTS and gstreamer-0.10.

On the server side :
$ gst-launch -v gstrtpbin name=rtpbin \
    filesrc location=filesrc 
location=../../../partage/Videos/superman_originale.avi ! decodebin 
name=dec \
    dec. ! queue ! x264enc byte-stream=false bitrate=300 ! rtph264pay ! 
rtpbin.send_rtp_sink_0 \
    rtpbin.send_rtp_src_0 ! udpsink port=5000 host=192.168.1.30 
ts-offset=0 name=vrtpsink \
    rtpbin.send_rtcp_src_0 ! udpsink port=5001 host=192.168.1.30 
sync=false async=false name=vrtcpsink \
    udpsrc port=5005 name=vrtpsrc ! rtpbin.recv_rtcp_sink_0 \
    dec. ! queue ! audioresample ! audioconvert ! alawenc ! rtppcmapay ! 
rtpbin.send_rtp_sink_1 \
    rtpbin.send_rtp_src_1 ! udpsink port=5002 host=192.168.1.30 
ts-offset=0 name=artpsink \
    rtpbin.send_rtcp_src_1 ! udpsink port=5003 host=192.168.1.30 
sync=false async=false name=artcpsink \
    udpsrc port=5007 name=artpsrc ! rtpbin.recv_rtcp_sink_1

On the client side:
$ gst-launch -vvv playbin uri=file:///media/disk/client.sdp
Setting pipeline to PAUSED ...
/playbin0/decodebin0/typefind.src: caps = application/sdp
Pipeline is live and does not need PREROLL ...
/playbin0/decodebin0/sdpdemux0.sink: caps = application/sdp
Setting pipeline to PLAYING ...
/playbin0/decodebin0/sdpdemux0/rtpbin0: latency = 200
/playbin0/decodebin0/sdpdemux0/udpsrc0: timeout = 10000000
/playbin0/decodebin0/sdpdemux0/udpsrc2: timeout = 10000000
/playbin0/decodebin0/sdpdemux0/rtpbin0/rtpsession1: ntp-ns-base = 
3430706685285951000
/playbin0/decodebin0/sdpdemux0/rtpbin0/rtpsession0: ntp-ns-base = 
3430706685285951000
ERROR: pipeline doesn't want to play.
ERROR: from element /playbin0/decodebin0/sdpdemux0/udpsrc0: Could not 
get/set settings from/on resource.
Additional debug info:
gstudpsrc.c(843): gst_udpsrc_start (): 
/playbin0/decodebin0/sdpdemux0/udpsrc0:
bind failed -1: Cannot assign requested address (99)
Setting pipeline to NULL ...
/playbin0/decodebin0/sdpdemux0.sink: caps = NULL
/playbin0/decodebin0/typefind.src: caps = NULL
FREEING pipeline ...

with client.sdp:
v=0
o=- 1188340656180883 1 IN IP4 192.168.1.2
s=Session streamed by GStreamer
i=server.sh
t=0 0
a=tool:GStreamer
a=type:broadcast
m=video 5000 RTP/AVP 96
c=IN IP4 192.168.1.2
a=rtpmap:96 H264/90000
m=audio 5002 RTP/AVP 8
c=IN IP4 192.168.1.2

It works with localhost address for gstreamer and using vlc 0.8.6.

This works with gstreamer:
$ gst-launch -v gstrtpbin name=rtpbin latency=200 \
     udpsrc 
caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264" 
port=5000 ! rtpbin.recv_rtp_sink_0 \
       rtpbin. ! rtph264depay ! decodebin ! xvimagesink \
     udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0 \
         rtpbin.send_rtcp_src_0 ! udpsink port=5005 host=192.168.1.2 
sync=false async=false \
     udpsrc 
caps="application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMA" 
port=5002 ! rtpbin.recv_rtp_sink_1 \
       rtpbin. ! rtppcmadepay ! decodebin ! audioconvert ! audioresample 
! alsasink \
     udpsrc port=5003 ! rtpbin.recv_rtcp_sink_1 \
         rtpbin.send_rtcp_src_1 ! udpsink port=5007 host=192.168.1.2 
sync=false async=false

Thanks in advance.




More information about the gstreamer-devel mailing list