[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