[gst-devel] saving rtsp stream tracks

gather bzbz gbzbz at yahoo.com
Thu Dec 31 11:35:55 CET 2009


Still struggling with this issue....

Trying to write an application as Wim suggested. But the question is, why the "rtspsrc debug=true" shows the totally right SDP with correct media audio and video types, but the gstghostpad from rtspsrc0 translates the audio portion wrong?

/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0.GstGhostPad:recv_rtp_src_1_1119828354_14: caps = application/x-rtp, media=(string)video, payload=(int)14, 

Wim mentioned that the format negotiation happening after the pad creation, so what the correct code flow chart should look like?

Thanks all for the inputs. 

Happy New Year.

--- On Wed, 12/23/09, gather bzbz <gbzbz at yahoo.com> wrote:

> From: gather bzbz <gbzbz at yahoo.com>
> Subject: Re: [gst-devel] saving rtsp stream tracks
> To: "Discussion of the development of GStreamer" <gstreamer-devel at lists.sourceforge.net>
> Date: Wednesday, December 23, 2009, 12:32 AM
> Hi Aurelien,
> 
> The server is an embedded DSP box running linux. GSTREAMER
> versions are
> gstreamer-0.10.23, gst-plugins-base-0.10.23,
> gst-plugins-good-0.10.15, gst-plugins-ugly-0.10.11,
> gst-plugins-bad-0.10.12
> 
> pipeline used is same as yours. 
> 
> The follwing is the SDP
> 
> sdp packet 0xbefff268:
>  version:       '0'
>  origin:
>   username:     '-'
>   sess_id:      '1075644172143134'
>   sess_version: '1'
>   nettype:      'IN'
>   addrtype:     'IP4'
>   addr:     
>    '192.168.1.4'
>  session_name:  'name'
>  information:   'info'
>  uri:       
>    '(NULL)'
>  connection:
>   nettype:      '(NULL)'
>   addrtype:     '(NULL)'
>   address:      '(NULL)'
>   ttl:          '0'
>   addr_number:  '0'
>  key:
>   type:     
>    '(NULL)'
>   data:     
>    '(NULL)'
>  attributes:
>   attribute 'tool' : 'tool'
>   attribute 'type' : 'broadcast'
>   attribute 'control' : '*'
>   attribute 'range' : 'npt=0-'
>   attribute 'x-qt-text-nam' : 'name'
>   attribute 'x-qt-text-inf' : 'info'
>  medias:
>   media 0:
>    media:   
>    'audio'
>    port:        '0'
>    num_ports:   '4294967295'
>    proto:   
>    'RTP/AVP'
>    formats:
>     format  '14'
>    information: '(NULL)'
>    connections:
>     nettype:      'IN'
>     addrtype:     'IP4'
>     address:      '0.0.0.0'
>     ttl:          '0'
>     addr_number:  '0'
>    key:
>     type:   
>    '(NULL)'
>     data:   
>    '(NULL)'
>    attributes:
>     attribute 'control' : 'track1'
>   media 1:
>    media:   
>    'video'
>    port:        '0'
>    num_ports:   '4294967295'
>    proto:   
>    'RTP/AVP'
>    formats:
>     format  '97'
>    information: '(NULL)'
>    connections:
>     nettype:      'IN'
>     addrtype:     'IP4'
>     address:      '0.0.0.0'
>     ttl:          '0'
>     addr_number:  '0'
>    key:
>     type:   
>    '(NULL)'
>     data:   
>    '(NULL)'
>    attributes:
>     attribute 'rtpmap' : '97 H264/90000'
>     attribute 'fmtp' : '97
> packetization-mode=1;profile-level-id=<hex>;sprop-parameter-sets=<str>'
>     attribute 'control' : 'track2'
> 
> 
> --- On Tue, 12/22/09, Aurelien Grimaud <gstelzz at yahoo.fr>
> wrote:
> 
> > From: Aurelien Grimaud <gstelzz at yahoo.fr>
> > Subject: Re: [gst-devel] saving rtsp stream tracks
> > To: "Discussion of the development of GStreamer"
> <gstreamer-devel at lists.sourceforge.net>
> > Date: Tuesday, December 22, 2009, 1:37 PM
> > Le 22/12/2009 09:24, Wim Taymans a
> > écrit :
> > > On Mon, 2009-12-21 at 22:54 -0800, gather bzbz
> wrote:
> > >    
> > >> Hi, Aurelien,
> > >>
> > >> Thanks for the hint. Really appreciate it.
> > >>
> > >> I ran the said pipeline, it failed with the
> > following errors
> > >>
> > >>
> >
> *****************************************************************
> > >>
> > >>
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter2:
> > caps = application/x-rtp, media=(string)audio
> > >>
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter3:
> > caps = application/x-rtp, media=(string)video
> > >>
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter3.GstPad:src:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)97, clock-rate=(int)90000,
> > encoding-name=(string)H264,
> packetization-mode=(string)1,
> > profile-level-id=(string)41
> > >>
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter3.GstPad:sink:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)97, clock-rate=(int)90000,
> > encoding-name=(string)H264,
> packetization-mode=(string)1,
> > profile-level-id=(string)1
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S.GstGhostPad:recv_rtp_src_1_3488930930_97:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)97, clock-rate=(int)90000,
> > encoding-name=(string)H264,
> packetization-mode=(string)1,
> > profile-l1
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S.GstGhostPad:recv_rtp_src_1_3488930930_97.GstProxyPad:proxypad7:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)97, clock-rate=(int)90000,
> > encoding-name=(string)H264, packetization-mod1
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S.GstGhostPad:recv_rtp_src_1_3488930930_97:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)97, clock-rate=(int)90000,
> > encoding-name=(string)H264,
> packetization-mode=(string)1,
> > profile-l1
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_1_3488930930_97:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)97, clock-rate=(int)90000,
> > encoding-name=(string)H264, packetization-mode=(s1
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_1_3488930930_97.GstProxyPad:proxypad6:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)97, clock-rate=(int)90000,
> > encoding-name=(string)H264,1
> > >>
> >
> /GstPipeline:pipeline0/GstFakeSink:fakesink1.GstPad:sink:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)97, clock-rate=(int)90000,
> > encoding-name=(string)H264,
> packetization-mode=(string)1,
> > profile-level-id=(string)42801
> > >> New clock: GstSystemClock
> > >>
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter4:
> > caps = application/x-rtp, media=(string)audio
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S.GstGhostPad:recv_rtp_src_1_520794757_14:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)14, clock-rate=(int)90000,
> > encoding-name=(string)H264,
> packetization-mode=(string)1,
> > profile-le1
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S.GstGhostPad:recv_rtp_src_1_520794757_14.GstProxyPad:proxypad9:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)14, clock-rate=(int)90000,
> > encoding-name=(string)H264, packetization-mode1
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S.GstGhostPad:recv_rtp_src_1_520794757_14:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)14, clock-rate=(int)90000,
> > encoding-name=(string)H264,
> packetization-mode=(string)1,
> > profile-le1
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_1_520794757_14:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)14, clock-rate=(int)90000,
> > encoding-name=(string)H264, packetization-mode=(st1
> > >>
> >
> /GstPipeline:pipeline0/GstRTSPSrc:S/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_1_520794757_14.GstProxyPad:proxypad8:
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)14, clock-rate=(int)90000,
> > encoding-name=(string)H264, 1
> > >> 0:00:02.744148481  1885   
> 0xba050
> > WARN           
> >    basesrc
> > gstbasesrc.c:2334:gst_base_src_loop:<udpsrc4> 
> > error: Internal data flow error.
> > >> 0:00:03.073260000  1885   
> 0xba050
> > WARN           
> >    basesrc
> > gstbasesrc.c:2334:gst_base_src_loop:<udpsrc4> 
> > error: streaming task paused, reason not-linked (-1)
> > >>
> > >>
> >
> *****************************************************************
> > >>
> > >> The strange thing is that, after rtspsrc,
> the
> > track with payload 14 (according to the rtsp SDP
> media
> > session) is supposed to have "media=audio", but
> somehow the
> > rtsp pipe thinks it is "media=video payload=14
> > encoding-name=H.264). Thus, I think the whole
> capfilter
> > things are messed up. I am totally lost here. Any pads
> here
> > for rtspsrc? Please help!.
> > >>      
> > > gst-launch is not smart enough to link this
> pipeline
> > because it
> > > negotiates a format after creating the pad.
> You'll
> > have to write an
> > > application.
> > >
> > > Wim
> > >
> > >    
> > Actually this pipeline works ...
> > Why does gather bzbz's uri fail ? How come the 2
> tracks
> > caps are the 
> > same except for payload ?
> > Gather, what rtsp server do you use ? Could you send
> the
> > sdp ?
> > 
> > gst-launch -v rtspsrc
> > location=rtsp://127.0.0.1/sample_50kbit.3gp 
> > name=src src. ! application/x-rtp, media=audio !
> fakesink
> > sync=TRUE src. 
> > ! application/x-rtp, media=video ! fakesink sync=TRUE
> > Setting pipeline to PAUSED ...
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0:
> > latency = 3000
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstUDPSrc:udpsrc1:
> > timeout = 5000000
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstUDPSrc:udpsrc3:
> > timeout = 5000000
> > Pipeline is live and does not need PREROLL ...
> > Setting pipeline to PLAYING ...
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession1:
> > 
> > ntp-ns-base = 3470505739412582000
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession0:
> > 
> > ntp-ns-base = 3470505739412582000
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession0.GstPad:sync_src:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_sink:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession1.GstPad:sync_src:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux1.GstPad:rtcp_sink:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstUDPSrc:udpsrc1:
> > timeout = 0
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstUDPSrc:udpsrc3:
> > timeout = 0
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink_rtcp:
> > 
> > caps = application/x-rtcp
> > New clock: GstSystemClock
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpJitterBuffer:rtpjitterbuffer1.GstPad:sink_rtcp:
> > 
> > caps = application/x-rtcp
> > /GstPipeline:pipeline0/GstCapsFilter:capsfilter2: caps
> = 
> > application/x-rtp, media=(string)audio
> > /GstPipeline:pipeline0/GstCapsFilter:capsfilter3: caps
> = 
> > application/x-rtp, media=(string)video
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter3.GstPad:src:
> > caps = 
> > application/x-rtp, media=(string)video,
> payload=(int)96, 
> > clock-rate=(int)90000, encoding-name=(string)MP4V-ES,
> 
> > profile-level-id=(string)1, 
> >
> config=(string)000001B008000001B50EE040C0CF0000010000000120008440FA282C2090A21F,
> > 
> > a-cliprect=(string)\"0\\,0\\,144\\,176\",
> > a-framesize=(string)\"96\\ 
> > 176-144\", clock-base=(guint)1767044848,
> > seqnum-base=(guint)28080, 
> > npt-start=(guint64)0, npt-stop=(guint64)70000000000, 
> > play-speed=(double)1, play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter3.GstPad:sink:
> > caps = 
> > application/x-rtp, media=(string)video,
> payload=(int)96, 
> > clock-rate=(int)90000, encoding-name=(string)MP4V-ES,
> 
> > profile-level-id=(string)1, 
> >
> config=(string)000001B008000001B50EE040C0CF0000010000000120008440FA282C2090A21F,
> > 
> > a-cliprect=(string)\"0\\,0\\,144\\,176\",
> > a-framesize=(string)\"96\\ 
> > 176-144\", clock-base=(guint)1767044848,
> > seqnum-base=(guint)28080, 
> > npt-start=(guint64)0, npt-stop=(guint64)70000000000, 
> > play-speed=(double)1, play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src.GstGhostPad:recv_rtp_src_0_1306561041_96:
> > 
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)96, 
> > clock-rate=(int)90000, encoding-name=(string)MP4V-ES,
> 
> > profile-level-id=(string)1, 
> >
> config=(string)000001B008000001B50EE040C0CF0000010000000120008440FA282C2090A21F,
> > 
> > a-cliprect=(string)\"0\\,0\\,144\\,176\",
> > a-framesize=(string)\"96\\ 
> > 176-144\", clock-base=(guint)1767044848,
> > seqnum-base=(guint)28080, 
> > npt-start=(guint64)0, npt-stop=(guint64)70000000000, 
> > play-speed=(double)1, play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src.GstGhostPad:recv_rtp_src_0_1306561041_96.GstProxyPad:proxypad7:
> > 
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)96, 
> > clock-rate=(int)90000, encoding-name=(string)MP4V-ES,
> 
> > profile-level-id=(string)1, 
> >
> config=(string)000001B008000001B50EE040C0CF0000010000000120008440FA282C2090A21F,
> > 
> > a-cliprect=(string)\"0\\,0\\,144\\,176\",
> > a-framesize=(string)\"96\\ 
> > 176-144\", clock-base=(guint)1767044848,
> > seqnum-base=(guint)28080, 
> > npt-start=(guint64)0, npt-stop=(guint64)70000000000, 
> > play-speed=(double)1, play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_0_1306561041_96.GstProxyPad:proxypad6:
> > 
> > caps = application/x-rtp, media=(string)video,
> > payload=(int)96, 
> > clock-rate=(int)90000, encoding-name=(string)MP4V-ES,
> 
> > profile-level-id=(string)1, 
> >
> config=(string)000001B008000001B50EE040C0CF0000010000000120008440FA282C2090A21F,
> > 
> > a-cliprect=(string)\"0\\,0\\,144\\,176\",
> > a-framesize=(string)\"96\\ 
> > 176-144\", clock-base=(guint)1767044848,
> > seqnum-base=(guint)28080, 
> > npt-start=(guint64)0, npt-stop=(guint64)70000000000, 
> > play-speed=(double)1, play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstFakeSink:fakesink1.GstPad:sink:
> > caps = 
> > application/x-rtp, media=(string)video,
> payload=(int)96, 
> > clock-rate=(int)90000, encoding-name=(string)MP4V-ES,
> 
> > profile-level-id=(string)1, 
> >
> config=(string)000001B008000001B50EE040C0CF0000010000000120008440FA282C2090A21F,
> > 
> > a-cliprect=(string)\"0\\,0\\,144\\,176\",
> > a-framesize=(string)\"96\\ 
> > 176-144\", clock-base=(guint)1767044848,
> > seqnum-base=(guint)28080, 
> > npt-start=(guint64)0, npt-stop=(guint64)70000000000, 
> > play-speed=(double)1, play-scale=(double)1
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "preroll   
> > ******* "
> > WARNING: from element
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1: 
> > Internal data flow problem.
> > Additional debug info:
> > gstbasesink.c(3315): gst_base_sink_chain_unlocked ():
> 
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> > Received buffer without a new-segment. Assuming
> timestamps
> > start from 0.
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:send_rtcp_src_1:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession1.GstPad:send_rtcp_src:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstUDPSink:udpsink3.GstPad:sink:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:send_rtcp_src_1.GstProxyPad:proxypad5:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:send_rtcp_src_0:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession0.GstPad:send_rtcp_src:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstUDPSink:udpsink1.GstPad:sink:
> > 
> > caps = application/x-rtcp
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:send_rtcp_src_0.GstProxyPad:proxypad2:
> > 
> > caps = application/x-rtcp
> > /GstPipeline:pipeline0/GstCapsFilter:capsfilter4: caps
> = 
> > application/x-rtp, media=(string)audio
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter4.GstPad:src:
> > caps = 
> > application/x-rtp, media=(string)audio,
> payload=(int)97, 
> > clock-rate=(int)8000, encoding-name=(string)AMR, 
> > encoding-params=(string)1, octet-align=(string)1,
> > npt-start=(guint64)0, 
> > npt-stop=(guint64)70000000000, play-speed=(double)1,
> > play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter4.GstPad:sink:
> > caps = 
> > application/x-rtp, media=(string)audio,
> payload=(int)97, 
> > clock-rate=(int)8000, encoding-name=(string)AMR, 
> > encoding-params=(string)1, octet-align=(string)1,
> > npt-start=(guint64)0, 
> > npt-stop=(guint64)70000000000, play-speed=(double)1,
> > play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src.GstGhostPad:recv_rtp_src_1_1438966686_97:
> > 
> > caps = application/x-rtp, media=(string)audio,
> > payload=(int)97, 
> > clock-rate=(int)8000, encoding-name=(string)AMR, 
> > encoding-params=(string)1, octet-align=(string)1,
> > npt-start=(guint64)0, 
> > npt-stop=(guint64)70000000000, play-speed=(double)1,
> > play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src.GstGhostPad:recv_rtp_src_1_1438966686_97.GstProxyPad:proxypad9:
> > 
> > caps = application/x-rtp, media=(string)audio,
> > payload=(int)97, 
> > clock-rate=(int)8000, encoding-name=(string)AMR, 
> > encoding-params=(string)1, octet-align=(string)1,
> > npt-start=(guint64)0, 
> > npt-stop=(guint64)70000000000, play-speed=(double)1,
> > play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_1_1438966686_97.GstProxyPad:proxypad8:
> > 
> > caps = application/x-rtp, media=(string)audio,
> > payload=(int)97, 
> > clock-rate=(int)8000, encoding-name=(string)AMR, 
> > encoding-params=(string)1, octet-align=(string)1,
> > npt-start=(guint64)0, 
> > npt-stop=(guint64)70000000000, play-speed=(double)1,
> > play-scale=(double)1
> >
> /GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink:
> > caps = 
> > application/x-rtp, media=(string)audio,
> payload=(int)97, 
> > clock-rate=(int)8000, encoding-name=(string)AMR, 
> > encoding-params=(string)1, octet-align=(string)1,
> > npt-start=(guint64)0, 
> > npt-stop=(guint64)70000000000, play-speed=(double)1,
> > play-scale=(double)1
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "preroll   
> > ******* "
> > WARNING: from element
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0: 
> > Internal data flow problem.
> > Additional debug info:
> > gstbasesink.c(3315): gst_base_sink_chain_unlocked ():
> 
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> > Received buffer without a new-segment. Assuming
> timestamps
> > start from 0.
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  298 bytes, timestamp:
> > 0:00:00.029967661, duration: none, 
> > offset: -1, offset_end: -1, flags: 32) 0x82d63a0"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.029723222, duration: none, 
> > offset: -1, offset_end: -1, flags: 32) 0xb5f0bd18"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (   39 bytes, timestamp:
> > 0:00:00.096627699, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d6450"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.129621419, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb5f0bdc8"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (   73 bytes, timestamp:
> > 0:00:00.163267870, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d6500"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.229215223, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb5f0be78"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  186 bytes, timestamp:
> > 0:00:00.229861203, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d65b0"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (   46 bytes, timestamp:
> > 0:00:00.296405174, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d6660"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.328310421, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb5f0bf28"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (   46 bytes, timestamp:
> > 0:00:00.362889122, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d6710"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.426738076, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d6030"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  110 bytes, timestamp:
> > 0:00:00.429277600, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b05038"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  167 bytes, timestamp:
> > 0:00:00.495591078, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b050e8"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.524379558, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d60e0"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  212 bytes, timestamp:
> > 0:00:00.561827296, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b05198"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.621195558, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d6190"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  135 bytes, timestamp:
> > 0:00:00.627925760, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b05248"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  166 bytes, timestamp:
> > 0:00:00.693966778, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b052f8"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.717251820, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d6240"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  214 bytes, timestamp:
> > 0:00:00.759969955, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b053a8"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.812731813, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0x82d62f0"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  260 bytes, timestamp:
> > 0:00:00.825923657, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b05458"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  226 bytes, timestamp:
> > 0:00:00.891898231, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b05508"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:00.907926480, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b068b8"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  336 bytes, timestamp:
> > 0:00:00.957919311, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b055b8"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:01.003195304, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b06968"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  252 bytes, timestamp:
> > 0:00:01.023984631, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b05668"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  255 bytes, timestamp:
> > 0:00:01.090144543, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b05718"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:01.098893340, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b06a18"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  278 bytes, timestamp:
> > 0:00:01.156404381, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b06808"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:01.195322355, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b06ac8"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  301 bytes, timestamp:
> > 0:00:01.222750484, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b06ee8"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  380 bytes, timestamp:
> > 0:00:01.289190961, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b09818"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "chain   
> > ******* < (  113 bytes, timestamp:
> > 0:00:01.292640148, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b06b78"
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "chain   
> > ******* < (  475 bytes, timestamp:
> > 0:00:01.355707910, duration: none, 
> > offset: -1, offset_end: -1, flags: 0) 0xb6b098c8"
> > ^CCaught interrupt -- handling interrupt.
> > Interrupt: Stopping pipeline ...
> > Execution ended after 4489782939 ns.
> > Setting pipeline to PAUSED ...
> > /GstPipeline:pipeline0/GstFakeSink:fakesink0:
> last-message
> > = "preroll   
> > ******* "
> > /GstPipeline:pipeline0/GstFakeSink:fakesink1:
> last-message
> > = "preroll   
> > ******* "
> > Setting pipeline to READY ...
> >
> /GstPipeline:pipeline0/GstFakeSink:fakesink1.GstPad:sink:
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink:
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter3.GstPad:src:
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter3.GstPad:sink:
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter4.GstPad:src:
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter4.GstPad:sink:
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src.GstGhostPad:recv_rtp_src_1_1438966686_97:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src.GstGhostPad:recv_rtp_src_0_1306561041_96:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_1_1438966686_97:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_0_1306561041_96:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:send_rtcp_src_1:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0.GstGhostPad:send_rtcp_src_0:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpPtDemux:rtpptdemux1.GstPad:src_97:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpJitterBuffer:rtpjitterbuffer1.GstPad:sink_rtcp:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux1.GstPad:rtcp_src_1438966686:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux1.GstPad:rtcp_sink:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpPtDemux:rtpptdemux0.GstPad:src_96:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink_rtcp:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_src_1306561041:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_sink:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession1.GstPad:send_rtcp_src:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession1.GstPad:sync_src:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession0.GstPad:send_rtcp_src:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstRtpBin:rtpbin0/GstRtpSession:rtpsession0.GstPad:sync_src:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstUDPSink:udpsink1.GstPad:sink:
> > 
> > caps = NULL
> >
> /GstPipeline:pipeline0/GstRTSPSrc:src/GstUDPSink:udpsink3.GstPad:sink:
> > 
> > caps = NULL
> > Setting pipeline to NULL ...
> > Freeing pipeline ...
> > 
> > >> --- On Mon, 12/21/09, Aurelien Grimaud<gstelzz at yahoo.fr>
> 
> > wrote:
> > >>
> > >>      
> > >>> From: Aurelien Grimaud<gstelzz at yahoo.fr>
> > >>> Subject: Re: [gst-devel] saving rtsp
> stream
> > tracks
> > >>> To: "Discussion of the development of
> > GStreamer"<gstreamer-devel at lists.sourceforge.net>
> > >>> Date: Monday, December 21, 2009, 12:53
> PM
> > >>> Hi,
> > >>>
> > >>> Le 21/12/2009 08:02, gather bzbz a écrit
> :
> > >>>        
> > >>>> Hi, I try to use gstreamer to receive
> rtsp
> > stream to
> > >>>>          
> > >>> files. The stream contains a track1 for
> audio
> > and track2 for
> > >>> video. VLC works very well with the
> stream.
> > When I use the
> > >>> following command pipeline
> > >>>        
> > >>>> " gst-launch rtspsrc
> > location=rtsp://<ip>
> > >>>>          
> > >>> debug=true ! fakesink ", I can see that
> > gstreamer actually
> > >>> gets the SDP part right. See following
> info.
> > >>>        
> > >>>>
> > >>>>          
> > >>> Try gst-launch -v rtspsrc name=src src.
> !
> > >>> application/x-rtp, media=audio
> > >>> ! fakesink src. ! application/x-rtp,
> > media=video !
> > >>> fakesink
> > >>>
> > >>> Aurelien
> > >>>        
> > >>>>
> > *************************************************
> > >>>>    medias:
> > >>>>     media 0:
> > >>>>      media:
> > >>>>          
> > >>>     'audio'
> > >>>        
> > >>>>      port:
> > >>>>          
> > >>>    '0'
> > >>>        
> > >>>>          
> > >>> 
> >    num_ports:   '4294967295'
> > >>>        
> > >>>>      proto:
> > >>>>          
> > >>>     'RTP/AVP'
> > >>>        
> > >>>>      formats:
> > >>>>   
> >    format  '14'
> > >>>>      information:
> '(NULL)'
> > >>>>      connections:
> > >>>>   
> >    nettype:      'IN'
> > >>>>   
>    addrtype:
> > >>>>          
> > >>>     'IP4'
> > >>>        
> > >>>>   
>    address:
> > >>>>          
> > >>> '0.0.0.0'
> > >>>        
> > >>>>       ttl:
> > >>>>          
> > >>>    '0'
> > >>>        
> > >>>>   
> >    addr_number:  '0'
> > >>>>      key:
> > >>>>       type:
> > >>>>          
> > >>>     '(NULL)'
> > >>>        
> > >>>>       data:
> > >>>>          
> > >>>     '(NULL)'
> > >>>        
> > >>>>      attributes:
> > >>>>   
>    attribute
> > 'control' : 'track1'
> > >>>>     media 1:
> > >>>>      media:
> > >>>>          
> > >>>     'video'
> > >>>        
> > >>>>      port:
> > >>>>          
> > >>>    '0'
> > >>>        
> > >>>>          
> > >>> 
> >    num_ports:   '4294967295'
> > >>>        
> > >>>>      proto:
> > >>>>          
> > >>>     'RTP/AVP'
> > >>>        
> > >>>>      formats:
> > >>>>   
> >    format  '97'
> > >>>>      information:
> '(NULL)'
> > >>>>      connections:
> > >>>>   
> >    nettype:      'IN'
> > >>>>   
>    addrtype:
> > >>>>          
> > >>>     'IP4'
> > >>>        
> > >>>>   
>    address:
> > >>>>          
> > >>> '0.0.0.0'
> > >>>        
> > >>>>       ttl:
> > >>>>          
> > >>>    '0'
> > >>>        
> > >>>>   
> >    addr_number:  '0'
> > >>>>      key:
> > >>>>       type:
> > >>>>          
> > >>>     '(NULL)'
> > >>>        
> > >>>>       data:
> > >>>>          
> > >>>     '(NULL)'
> > >>>        
> > >>>>      attributes:
> > >>>>   
>    attribute
> > 'rtpmap' : '97
> > >>>>          
> > >>> H264/90000'
> > >>>        
> > >>>>   
>    attribute
> > 'fmtp' : '97
> > >>>>          
> > >>>
> >
> packetization-mode=1;profile-level-id=<num>;sprop-parameter-sets=<str>'
> > >>>        
> > >>>>   
>    attribute
> > 'control' : 'track2'
> > >>>>
> > >>>>
> > *************************************************
> > >>>> How can I save the audio track1 to a
> file
> > and video
> > >>>>          
> > >>> track2 to another so I can do some
> > post-processings? Thanks
> > >>> a lot for your help!!!
> > >>>        
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>          
> > >>>
> >
> ------------------------------------------------------------------------------
> > >>>        
> > >>>> This SF.Net email is sponsored by
> the
> > Verizon
> > >>>>          
> > >>> Developer Community
> > >>>        
> > >>>> Take advantage of Verizon's
> best-in-class
> > app
> > >>>>          
> > >>> development support
> > >>>        
> > >>>> A streamlined, 14 day to market
> process
> > makes app
> > >>>>          
> > >>> distribution fast and easy
> > >>>        
> > >>>> Join now and get one step closer to
> > millions of
> > >>>>          
> > >>> Verizon customers
> > >>>        
> > >>>> http://p.sf.net/sfu/verizon-dev2dev
> > >>>>
> > _______________________________________________
> > >>>> gstreamer-devel mailing list
> > >>>> gstreamer-devel at lists.sourceforge.net
> > >>>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > >>>>
> > >>>>
> > >>>>          
> > >>>
> > >>>
> >
> ------------------------------------------------------------------------------
> > >>> This SF.Net email is sponsored by the
> Verizon
> > Developer
> > >>> Community
> > >>> Take advantage of Verizon's best-in-class
> app
> > development
> > >>> support
> > >>> A streamlined, 14 day to market process
> makes
> > app
> > >>> distribution fast and easy
> > >>> Join now and get one step closer to
> millions
> > of Verizon
> > >>> customers
> > >>> http://p.sf.net/sfu/verizon-dev2dev
> > >>>
> > _______________________________________________
> > >>> gstreamer-devel mailing list
> > >>> gstreamer-devel at lists.sourceforge.net
> > >>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > >>>
> > >>>        
> > >>
> > >>
> > >>
> > >>
> >
> ------------------------------------------------------------------------------
> > >> This SF.Net email is sponsored by the
> Verizon
> > Developer Community
> > >> Take advantage of Verizon's best-in-class
> app
> > development support
> > >> A streamlined, 14 day to market process makes
> app
> > distribution fast and easy
> > >> Join now and get one step closer to millions
> of
> > Verizon customers
> > >> http://p.sf.net/sfu/verizon-dev2dev
> > >>
> _______________________________________________
> > >> gstreamer-devel mailing list
> > >> gstreamer-devel at lists.sourceforge.net
> > >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > >>      
> > >
> > >
> > >
> >
> ------------------------------------------------------------------------------
> > > This SF.Net email is sponsored by the Verizon
> > Developer Community
> > > Take advantage of Verizon's best-in-class app
> > development support
> > > A streamlined, 14 day to market process makes
> app
> > distribution fast and easy
> > > Join now and get one step closer to millions of
> > Verizon customers
> > > http://p.sf.net/sfu/verizon-dev2dev
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > gstreamer-devel at lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > >    
> > 
> > 
> >
> ------------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Verizon
> Developer
> > Community
> > Take advantage of Verizon's best-in-class app
> development
> > support
> > A streamlined, 14 day to market process makes app
> > distribution fast and easy
> > Join now and get one step closer to millions of
> Verizon
> > customers
> > http://p.sf.net/sfu/verizon-dev2dev 
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> > 
> 
> 
>       
> 
> ------------------------------------------------------------------------------
> This SF.Net email is sponsored by the Verizon Developer
> Community
> Take advantage of Verizon's best-in-class app development
> support
> A streamlined, 14 day to market process makes app
> distribution fast and easy
> Join now and get one step closer to millions of Verizon
> customers
> http://p.sf.net/sfu/verizon-dev2dev 
> _______________________________________________
> 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