[gst-devel] saving rtsp stream tracks

Aurelien Grimaud gstelzz at yahoo.fr
Tue Dec 22 22:37:27 CET 2009


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
>    





More information about the gstreamer-devel mailing list