GNOME Bugzilla – Bug 724032
gst-rtsp-server proxy
Last modified: 2014-02-10 16:18:55 UTC
Hello, I'm trying to use gst-rtsp-server as a proxy. I'm modifying test-launch.c example; I set the factory to shared and I'm passing to the program the following pipeline: GST_DEBUG=3 ./test "( rtspsrc protocols=4 location=rtsp://IP:PORT/12 ! queue ! rtph264depay ! queue ! rtph264pay name=pay0 pt=96 )" all seems to work fine, but when a client is connected the stream only last 1 minute and then clients ( vlc, gstreamer with rtspsrc) receive EOS. In the server part I have the following log with GST_DEBUG=3: 0:00:03.934200119 19883 0x7f41c80294f0 WARN rtpjitterbuffer rtpjitterbuffer.c:183:rtp_jitter_buffer_set_clock_rate: Clock rate changed from 0 to 90000 0:00:03.936932486 19883 0x11df8f0 FIXME rtspmedia rtsp-media.c:2588:gst_rtsp_media_suspend: suspend for dynamic pipelines needs fixing 0:00:59.185018301 19883 0x7f41c80294f0 WARN rtspsrc gstrtspsrc.c:4153:gst_rtspsrc_loop_interleaved:<rtspsrc0> error: Could not receive message. (Parse error) 0:00:59.185190903 19883 0x7f41d0037940 WARN rtspmedia rtsp-media.c:1762:default_handle_message: 0x7f41d003a000: got error Could not read from resource. (gstrtspsrc.c(4153): gst_rtspsrc_loop_interleaved (): /GstPipeline:media-pipeline/GstBin:bin0/GstRTSPSrc:rtspsrc0: Could not receive message. (Parse error)) 0:00:59.185278444 19883 0x7f41c80294f0 WARN rtspsrc gstrtspsrc.c:4587:gst_rtspsrc_loop:<rtspsrc0> error: Internal data flow error. 0:00:59.185348291 19883 0x7f41c80294f0 WARN rtspsrc gstrtspsrc.c:4587:gst_rtspsrc_loop:<rtspsrc0> error: streaming task paused, reason error (-5) 0:00:59.185440714 19883 0x7f41d0037940 WARN rtspmedia rtsp-media.c:1762:default_handle_message: 0x7f41d003a000: got error Internal data flow error. (gstrtspsrc.c(4587): gst_rtspsrc_loop (): /GstPipeline:media-pipeline/GstBin:bin0/GstRTSPSrc:rtspsrc0: streaming task paused, reason error (-5)) 0:01:02.592001139 19883 0x11df8f0 WARN rtspmedia rtsp-media.c:2864:gst_rtsp_media_set_state: media 0x7f41d003a000 in error status while changing to state 3 0:01:02.609288259 19883 0x11df8f0 WARN rtspmedia rtsp-media.c:2864:gst_rtsp_media_set_state: media 0x7f41d003a000 in error status while changing to state 1 0:01:02.609328914 19883 0x11df8f0 WARN rtspmedia rtsp-media.c:2864:gst_rtsp_media_set_state: media 0x7f41d003a000 in error status while changing to state 1 (test:19883): GLib-CRITICAL **: unblock_source: assertion `!SOURCE_DESTROYED (source)' failed 0:01:02.616460299 19883 0x7f41c80294f0 WARN rtspsrc gstrtspsrc.c:4153:gst_rtspsrc_loop_interleaved:<rtspsrc0> error: Could not receive message. (Parse error) 0:01:02.616519779 19883 0x7f41c80294f0 WARN rtspsrc gstrtspsrc.c:4587:gst_rtspsrc_loop:<rtspsrc0> error: Internal data flow error. 0:01:02.616563401 19883 0x7f41c80294f0 WARN rtspsrc gstrtspsrc.c:4587:gst_rtspsrc_loop:<rtspsrc0> error: streaming task paused, reason error (-5) If I restart clients stream continue for another minute without the need to restart the server. I'm using gstreamer 1.2.3 with gst-rtsp-server 1.1.90 compiled by source on Ubuntu 12.04.4 64bits. When using test-video program, clients do not receive EOS, so I think problem is between rtsp-server and the ip camera. rtsp-server and ip camera are on the same lan. Is there a way to know what cause this strange behaviour? Regards Cristian
try GST_DEBUG=*rtsp*:8 and redirect to a file like: GST_DEBUG=*rtsp*:8 ./test "( rtspsrc protocols=4 location=rtsp://IP:PORT/12 ! queue ! rtph264depay ! queue ! rtph264pay name=pay0 pt=96 )" >debug.log 2>&1 then zip and attach the debug log, if not too large.
Created attachment 268677 [details] gstreamer debug log debug log as requested
Seems like a problem with keepalive messages on the server. try to set "do-rtsp-keep-alive=false" on rtspsrc
I added do-rtsp-keep-alive=0 and do-rtcp=0 and problem is gone. Thanks