[gst-devel] saving rtsp stream tracks

Aurelien Grimaud gstelzz at yahoo.fr
Tue Dec 22 22:58:00 CET 2009


This reminds me of https://bugzilla.gnome.org/show_bug.cgi?id=545710
There was this same mismatch on caps (the same except payload type).

The problem was that rtspsrc used the same file descriptor for both tracks.

What version of gstreamer do you use ?
Which OS ?

Can you post the result of GST_DEBUG=2,rtspsrc:5,udpsrc*:5 gst-launch -v 
rtspsrc debug=1 ! ....

Aurelien

Le 22/12/2009 22:37, Aurelien Grimaud a écrit :
> 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
>    





More information about the gstreamer-devel mailing list