[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