GNOME Bugzilla – Bug 636967
[rtspsrc] can't connect to camera
Last modified: 2013-08-21 20:56:28 UTC
Hi, I have a SANYO network camera, and I can't open the live stream with gstreamer. It isn't any problem with vlc and mplayer, but from gst command line or with totem it doesn't work. The error message is some kind of negotiation error. My pipeline is very basic: gst-launch rtspsrc location="..." ! fakesink sync=true The running with GST_DEBUG=rtspsrc*:4 said (copied only the last few line): 0:00:00.872411917 25571 0x9140a10 DEBUG rtspsrc gstrtspsrc.c:2096:pad_blocked:<rtspsrc0> pad udpsrc0:src blocked, activating streams 0:00:00.872451887 25571 0x9140a10 DEBUG rtspsrc gstrtspsrc.c:3004:gst_rtspsrc_activate_streams:<rtspsrc0> activating streams 0:00:00.872477225 25571 0x9140a10 DEBUG rtspsrc gstrtspsrc.c:3038:gst_rtspsrc_activate_streams:<rtspsrc0> unblocking stream pad 0x912d500 0:00:00.872488089 25571 0x9140a10 DEBUG rtspsrc gstrtspsrc.c:2089:pad_unblocked:<rtspsrc0> pad udpsrc0:src unblocked 0:00:00.873733965 25571 0x9140a10 DEBUG rtspsrc gstrtspsrc.c:2197:request_pt_map:<rtspsrc0> getting pt map for pt 100 in session 0 0:00:00.873775221 25571 0x9140a10 DEBUG rtspsrc gstrtspsrc.c:2197:request_pt_map:<rtspsrc0> getting pt map for pt 111 in session 0 0:00:00.874099873 25571 0x915b780 DEBUG rtspsrc gstrtspsrc.c:2129:new_session_pad:<rtspsrc0> got new session pad <rtpbin0:recv_rtp_src_0_916666413_111> 0:00:00.874202344 25571 0x915b780 DEBUG rtspsrc gstrtspsrc.c:2137:new_session_pad:<rtspsrc0> stream: 0, SSRC 916666413, PT 111 0:00:00.874524741 25571 0x915b780 DEBUG rtspsrc gstrtspsrc.c:2161:new_session_pad:<rtspsrc0> stream 0x912d500, container 0, disabled 0, added 1 0:00:00.874581427 25571 0x915b780 DEBUG rtspsrc gstrtspsrc.c:2161:new_session_pad:<rtspsrc0> stream 0x9139df8, container 0, disabled 0, added 0 WARNING: from element /GstPipeline:pipeline0/GstFakeSink:fakesink0: Internal data flow problem. Additional debug info: gstbasesink.c(3446): gst_base_sink_chain_unlocked (): /GstPipeline:pipeline0/GstFakeSink:fakesink0: Received buffer without a new-segment. Assuming timestamps start from 0. 0:00:00.876290079 25571 0x913cbc8 DEBUG rtspsrc gstrtspsrc.c:1991:gst_rtspsrc_handle_src_query:<rtspsrc0> pad rtspsrc0:recv_rtp_src_0_916666413_111 received query latency 0:00:00.876448753 25571 0x913cbc8 DEBUG rtspsrc gstrtspsrc.c:1875:gst_rtspsrc_handle_src_event:<rtspsrc0> pad rtspsrc0:recv_rtp_src_0_916666413_111 received event latency 0:00:02.872857920 25571 0x915b780 DEBUG rtspsrc gstrtspsrc.c:2129:new_session_pad:<rtspsrc0> got new session pad <rtpbin0:recv_rtp_src_0_916666413_100> 0:00:02.872891925 25571 0x915b780 DEBUG rtspsrc gstrtspsrc.c:2137:new_session_pad:<rtspsrc0> stream: 0, SSRC 916666413, PT 100 0:00:02.872983894 25571 0x915b780 DEBUG rtspsrc gstrtspsrc.c:2161:new_session_pad:<rtspsrc0> stream 0x912d500, container 0, disabled 0, added 1 0:00:02.872995240 25571 0x915b780 DEBUG rtspsrc gstrtspsrc.c:2161:new_session_pad:<rtspsrc0> stream 0x9139df8, container 0, disabled 0, added 0 0:00:02.873853281 25571 0x9140a10 DEBUG rtspsrc gstrtspsrc.c:6060:gst_rtspsrc_handle_message:<rtspsrc0> got error from udpsrc0 0:00:02.873868277 25571 0x9140a10 DEBUG rtspsrc gstrtspsrc.c:6074:gst_rtspsrc_handle_message:<rtspsrc0> combined flows: not-linked ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc0: Internal data flow error. Additional debug info: gstbasesrc.c(2563): gst_base_src_loop (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc0: streaming task paused, reason not-linked (-1) Execution ended after 2709004271 ns. Setting pipeline to PAUSED ... The full log with -v is here: http://pastebin.com/ZdShuFnP The full log with gst-debug=3,rtspsrc*:4 is here: http://pastebin.com/YwnHpNEs And the rtsp messages are here: http://pastebin.com/a1Cgcwkq Regards, Tibor
do you have any tip about this bug? it's good new sanyo ip camera which can be used with vlc and mplayer but not with gstreamer. any tip would be useful...
My tip: make a full GST_DEBUG=*:5 log and figure out where exactly the not-linked comes from and why it happens.
Created attachment 177468 [details] gst-debug=5 logfile The gst-debug=5 logfile is in the attachment. I tried to figure out from where comes the "not linked" error message first, but I couldn't find it. Maybe the problem is somewhere between these lines: #25345: gstghostpad.c:1119:gst_ghost_pad_new_from_template:[00m name:recv_rtp_src_0_885473689_100, target:rtpptdemux0:src_100, templ:0x1fbe8d0 #25518: GST_SCHEDULING gstpad.c:4476:gst_pad_push_data:<rtspsrc0:recv_rtp_src_0_885473689_100>[00m pushing, but it was not linked
I forgot to attach the pipeline I used: GST_DEBUG=*:5 gst-launch -v rtspsrc location="rtsp://admin:admin@10.30.0.119/VideoInput/1/h264/1" ! decodebin ! xvimagesink 2&> sanyo.txt
Suspicious things in the log: 0:00:00.234077978 3168 0x1d82080 DEBUG GST_PIPELINE parse.l:141:_gst_parse_yylex: flex: SPACE: [ ] 0:00:00.234091287 3168 0x1d82080 DEBUG GST_PIPELINE parse.l:144:_gst_parse_yylex: flex: Invalid Lexer element: 2 0:00:00.234104913 3168 0x1d82080 WARN default ./grammar.y:889:_gst_parse_yyerror: Error during parsing: syntax error, unexpected $undefined The pipeline that was actually used seems to have had wrong syntax.
see in #c4 there is the full pipeline. what's wrong with that?
I saw it, and did not see anything wrong with the pipeline in comment 4.
actually it's a Sanyo VCC-HD2500P ip camera and that's it's standard rtsp port, but we can't use it with gstreamer:-(
It appears to be the newline. I don't get this error while running this same pipeline, but in any case it seems like a red herring indeed.
Oh, hmm, can you try decodebin2 rather than decodebin ?
(In reply to comment #10) > Oh, hmm, can you try decodebin2 rather than decodebin ? Got the same issue while trying to watch a TV channel streamed by dvb-daemon with the simple pipeline: $ GST_DEBUG=rtsp*:5 gst-launch -v rtspsrc location="rtsp://<ipaddress>:8554/4/1025/M6"! decodebin2 ! xvimagesink Notice a missing space between 'M6"' and '! decodebin2' The issue is solved when adding a space: $ GST_DEBUG=rtsp*:5 gst-launch -v rtspsrc location="rtsp://<ipaddress>:8554/4/1025/M6" ! decodebin2 ! xvimagesink
retest it and still hang: $ gst-launch -v playbin2 uri="rtsp://admin:admin@10.30.0.135/VideoInput/1/h264/1" Setting pipeline to PAUSED ... /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: ring-buffer-max-size = 0 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-size = -1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-duration = -1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: use-buffering = FALSE /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: download = FALSE /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: uri = "rtsp://admin:admin@10.30.0.135/VideoInput/1/h264/1" /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: connection-speed = 0 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: source = (GstRTSPSrc) source /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstRtpBin:rtpbin0: latency = 2000 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstRtpBin:rtpbin0: buffer-mode = slave (1) /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstUDPSrc:udpsrc0: timeout = 5000000 Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstRtpBin:rtpbin0.GstGhostPad:send_rtcp_src_0: caps = application/x-rtcp /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstRtpBin:rtpbin0/GstRtpSession:rtpsession0.GstPad:send_rtcp_src: caps = application/x-rtcp /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstUDPSink:udpsink1.GstPad:sink: caps = application/x-rtcp /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstRtpBin:rtpbin0.GstGhostPad:send_rtcp_src_0.GstProxyPad:proxypad2: caps = application/x-rtcp New clock: GstSystemClock /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstUDPSrc:udpsrc0: timeout = 0 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstRtpBin:rtpbin0/GstRtpSession:rtpsession0.GstPad:sync_src: caps = application/x-rtcp /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstRtpBin:rtpbin0/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_sink: caps = application/x-rtcp /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstRtpBin:rtpbin0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink_rtcp: caps = application/x-rtcp /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:src: caps = application/x-rtp, media=(string)video, payload=(int)111, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)640028, reso=(string)1280:720, scanning=(string)0, tvsystem=(string)pal, cameramode=(string)hd, streamid=(string)0, bitratemode=(string)vbr, gop=(string)30, aspectratio=(string)16:9, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAKK0AzlAUAW7ARAAAOEAACvyDgAAAExLQAAAvrwiL34wAAAMAmJaAAAF9eERe/AgAAA\\=\\=\\,aP48sA\\=\\=\", a-framerate=(string)5.0, a-quality=(string)4, clock-base=(uint)75153600, seqnum-base=(uint)1, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstTypeFindElement:typefind.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)111, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)640028, reso=(string)1280:720, scanning=(string)0, tvsystem=(string)pal, cameramode=(string)hd, streamid=(string)0, bitratemode=(string)vbr, gop=(string)30, aspectratio=(string)16:9, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAKK0AzlAUAW7ARAAAOEAACvyDgAAAExLQAAAvrwiL34wAAAMAmJaAAAF9eERe/AgAAA\\=\\=\\,aP48sA\\=\\=\", a-framerate=(string)5.0, a-quality=(string)4, clock-base=(uint)75153600, seqnum-base=(uint)1, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)111, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)640028, reso=(string)1280:720, scanning=(string)0, tvsystem=(string)pal, cameramode=(string)hd, streamid=(string)0, bitratemode=(string)vbr, gop=(string)30, aspectratio=(string)16:9, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAKK0AzlAUAW7ARAAAOEAACvyDgAAAExLQAAAvrwiL34wAAAMAmJaAAAF9eERe/AgAAA\\=\\=\\,aP48sA\\=\\=\", a-framerate=(string)5.0, a-quality=(string)4, clock-base=(uint)75153600, seqnum-base=(uint)1, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source.GstGhostPad:recv_rtp_src_0_312077768_111: caps = application/x-rtp, media=(string)video, payload=(int)111, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)640028, reso=(string)1280:720, scanning=(string)0, tvsystem=(string)pal, cameramode=(string)hd, streamid=(string)0, bitratemode=(string)vbr, gop=(string)30, aspectratio=(string)16:9, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAKK0AzlAUAW7ARAAAOEAACvyDgAAAExLQAAAvrwiL34wAAAMAmJaAAAF9eERe/AgAAA\\=\\=\\,aP48sA\\=\\=\", a-framerate=(string)5.0, a-quality=(string)4, clock-base=(uint)75153600, seqnum-base=(uint)1, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source.GstGhostPad:recv_rtp_src_0_312077768_111.GstProxyPad:proxypad4: caps = application/x-rtp, media=(string)video, payload=(int)111, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)640028, reso=(string)1280:720, scanning=(string)0, tvsystem=(string)pal, cameramode=(string)hd, streamid=(string)0, bitratemode=(string)vbr, gop=(string)30, aspectratio=(string)16:9, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAKK0AzlAUAW7ARAAAOEAACvyDgAAAExLQAAAvrwiL34wAAAMAmJaAAAF9eERe/AgAAA\\=\\=\\,aP48sA\\=\\=\", a-framerate=(string)5.0, a-quality=(string)4, clock-base=(uint)75153600, seqnum-base=(uint)1, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source/GstRtpBin:rtpbin0.GstGhostPad:recv_rtp_src_0_312077768_111.GstProxyPad:proxypad3: caps = application/x-rtp, media=(string)video, payload=(int)111, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)640028, reso=(string)1280:720, scanning=(string)0, tvsystem=(string)pal, cameramode=(string)hd, streamid=(string)0, bitratemode=(string)vbr, gop=(string)30, aspectratio=(string)16:9, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAKK0AzlAUAW7ARAAAOEAACvyDgAAAExLQAAAvrwiL34wAAAMAmJaAAAF9eERe/AgAAA\\=\\=\\,aP48sA\\=\\=\", a-framerate=(string)5.0, a-quality=(string)4, clock-base=(uint)75153600, seqnum-base=(uint)1, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20.GstGhostPad:sink.GstProxyPad:proxypad5: caps = application/x-rtp, media=(string)video, payload=(int)111, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)640028, reso=(string)1280:720, scanning=(string)0, tvsystem=(string)pal, cameramode=(string)hd, streamid=(string)0, bitratemode=(string)vbr, gop=(string)30, aspectratio=(string)16:9, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAKK0AzlAUAW7ARAAAOEAACvyDgAAAExLQAAAvrwiL34wAAAMAmJaAAAF9eERe/AgAAA\\=\\=\\,aP48sA\\=\\=\", a-framerate=(string)5.0, a-quality=(string)4, clock-base=(uint)75153600, seqnum-base=(uint)1, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1 /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)111, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)640028, reso=(string)1280:720, scanning=(string)0, tvsystem=(string)pal, cameramode=(string)hd, streamid=(string)0, bitratemode=(string)vbr, gop=(string)30, aspectratio=(string)16:9, packetization-mode=(string)1, sprop-parameter-sets=(string)\"Z2QAKK0AzlAUAW7ARAAAOEAACvyDgAAAExLQAAAvrwiL34wAAAMAmJaAAAF9eERe/AgAAA\\=\\=\\,aP48sA\\=\\=\", a-framerate=(string)5.0, a-quality=(string)4, clock-base=(uint)75153600, seqnum-base=(uint)1, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1 /GstPlayBin2:playbin20/GstInputSelector:inputselector0.GstSelectorPad:sink0: always-ok = FALSE /GstPlayBin2:playbin20/GstInputSelector:inputselector0: active-pad = (GstSelectorPad) sink0 here
Is it still a problem with GStreamer 1.0 or newer? There were many RTP/RTSP related changes
we still use 0.10 until enterprise linux will support 1.0 (ie newer glib2).
Let's close it then. If it's still a problem with 1.0, someone else will file a new bug.