GNOME Bugzilla – Bug 602322
gst-rtsp-server cannot be played with mplayer, vlc, gst-launch or CorePlayer
Last modified: 2009-11-20 15:01:28 UTC
It seems that no RTSP client can effectively negotiate with gst-rtsp-server (see further below for mplayer and gst-launch results). I do not encounter this problem when using VLC RTSP server. What could I be doing wrong, or could this be a bug? ./test-launch --gst-debug=2 "( v4l2src ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! mpeg2enc ! mpegtsmux ! rtpmp2tpay)" [root@am2mm examples]# ./test-launch --gst-debug=2 "( v4l2src ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! mpeg2enc ! mpegtsmux ! rtpmp2tpay)" ** Message: listening on port 8554 ** Message: added new client 0x8002360 ip 192.168.1.211:5765 ** Message: attaching to context 0x7ffc880 RTSP request message 0x80f3978 request line: method: 'OPTIONS' uri: 'rtsp://192.168.1.178:8554/test' version: '1.0' headers: key: 'CSeq', value: '1' key: 'User-Agent', value: 'WMPlayer/9.0.0.3250 guid/3300AD50-2C39-46C0-AE0A-9CC9FF7765D1' key: 'User-Agent', value: 'RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)' key: 'ClientChallenge', value: '9e26d33f2984236010ef6253fb1887f7' key: 'CompanyID', value: 'KnKV4M4I/B2FjJ1TToLycw==' key: 'GUID', value: '00000000-0000-0000-0000-000000000000' key: 'RegionData', value: '0' key: 'PlayerStarttime', value: '[28/03/2003:22:50:23 00:00]' key: 'ClientID', value: 'Linux_2.4_6.0.9.1235_play32_RN01_EN_586' key: 'Date', value: 'Thu, 19 Nov 2009 00:44:43 GMT' body: ** Message: client 0x8002360: received a request RTSP response message 0x7fffcbaa87a0 status line: code: '200' reason: 'OK' version: '1.0' headers: key: 'CSeq', value: '1' key: 'Public', value: 'OPTIONS, DESCRIBE, GET_PARAMETER, PAUSE, PLAY, SETUP, SET_PARAMETER, TEARDOWN' key: 'Server', value: 'GStreamer RTSP server' body: length 0 RTSP request message 0x80f3978 request line: method: 'DESCRIBE' uri: 'rtsp://192.168.1.178:8554/test' version: '1.0' headers: key: 'CSeq', value: '2' key: 'Accept', value: 'application/sdp' key: 'Date', value: 'Thu, 19 Nov 2009 00:44:43 GMT' body: ** Message: client 0x8002360: received a request ** Message: found media 0x8060e80 for url abspath /test ** Message: constructed media 0x814c830 for url /test ** Message: preparing media 0x814c830 ** Message: enter mainloop ** Message: live media 0x814c830 ** Message: object 0x814c830 is prerolled RTSP response message 0x7fffcbaa8760 status line: code: '200' reason: 'OK' version: '1.0' headers: key: 'CSeq', value: '2' key: 'Content-Type', value: 'application/sdp' key: 'Content-Base', value: 'rtsp://192.168.1.178:8554/test/' key: 'Server', value: 'GStreamer RTSP server' ** Message: 0x814c830: got message type new-clock body: length 165 00000000 (0x815cd80): 76 3d 30 0d 0a 6f 3d 2d 20 31 31 38 38 33 34 30 v=0..o=- 1188340 00000010 (0x815cd90): 36 35 36 31 38 30 38 38 33 20 31 20 49 4e 20 49 656180883 1 IN I 00000020 (0x815cda0): 50 34 20 31 32 37 2e 30 2e 30 2e 31 0d 0a 73 3d P4 127.0.0.1..s= 00000030 (0x815cdb0): 53 65 73 73 69 6f 6e 20 73 74 72 65 61 6d 65 64 Session streamed 00000040 (0x815cdc0): 20 77 69 74 68 20 47 53 74 72 65 61 6d 65 72 0d with GStreamer. 00000050 (0x815cdd0): 0a 69 3d 72 74 73 70 2d 73 65 72 76 65 72 0d 0a .i=rtsp-server.. 00000060 (0x815cde0): 65 3d 4e 4f 4e 45 0d 0a 74 3d 30 20 30 0d 0a 61 e=NONE..t=0 0..a 00000070 (0x815cdf0): 3d 74 6f 6f 6c 3a 47 53 74 72 65 61 6d 65 72 0d =tool:GStreamer. 00000080 (0x815ce00): 0a 61 3d 74 79 70 65 3a 62 72 6f 61 64 63 61 73 .a=type:broadcas 00000090 (0x815ce10): 74 0d 0a 61 3d 72 61 6e 67 65 3a 6e 70 74 3d 6e t..a=range:npt=n 000000a0 (0x815ce20): 6f 77 2d 0d 0a ow-.. ** Message: client 0x8002360: connection closed ** Message: finalize client 0x8002360 ** Message: finalize media 0x814c830 mplayer results: [root@devkrakora ffmpeg]# mplayer -v rtsp://192.168.1.178:8554/testMPlayer SVN-r29789-4.1.2 (C) 2000-2009 MPlayer Team CPU vendor name: AuthenticAMD max cpuid level: 5 CPU: AMD Phenom(tm) II X4 965 Processor (Family: 16, Model: 4, Stepping: 2) extended cpuid-level: 27 extended cache-info: 33587520 Detected cache-line size is 64 bytes CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNowExt: 1 SSE: 1 SSE2: 1 SSSE3: 0 Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowExt SSE SSE2 CMOV get_path('codecs.conf') -> '/root/.mplayer/codecs.conf' Reading /root/.mplayer/codecs.conf: Can't open '/root/.mplayer/codecs.conf': No such file or directory Reading /usr/etc/mplayer/codecs.conf: Can't open '/usr/etc/mplayer/codecs.conf': No such file or directory Using built-in default codecs.conf. Configuration: --prefix=/usr --libdir=/usr/lib64 CommandLine: '-v' 'rtsp://192.168.1.178:8554/test' init_freetype Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay get_path('fonts') -> '/root/.mplayer/fonts' Using nanosleep() timing get_path('input.conf') -> '/root/.mplayer/input.conf' Can't open input config file /root/.mplayer/input.conf: No such file or directory Can't open input config file /usr/etc/mplayer/input.conf: No such file or directory Falling back on default (hardcoded) input config Setting up LIRC support... mplayer: could not connect to socket mplayer: No such file or directory Failed to open LIRC support. You will not be able to use your remote control. get_path('test.conf') -> '/root/.mplayer/test.conf' Playing rtsp://192.168.1.178:8554/test. get_path('sub/') -> '/root/.mplayer/sub/' STREAM_RTSP, URL: rtsp://192.168.1.178:8554/test Filename for url is now rtsp://192.168.1.178:8554/test Filename for url is now rtsp://192.168.1.178:8554/test Connecting to server 192.168.1.178[192.168.1.178]: 8554... SDP: v=0 o=- 1188340656180883 1 IN IP4 127.0.0.1 s=Session streamed with GStreamer i=rtsp-server e=NONE t=0 0 a=tool:GStreamer a=type:broadcast a=range:npt=now- A single media stream only is supported atm. rtsp_session: unsupported RTSP server. Server type is 'GStreamer RTSP server'. Filename for url is now rtsp://192.168.1.178:8554/test Filename for url is now rtsp://192.168.1.178:8554/test STREAM_LIVE555, URL: rtsp://192.168.1.178:8554/test STREAM: [RTSP and SIP] rtsp://192.168.1.178:8554/test STREAM: Description: standard RTSP and SIP STREAM: Author: Ross Finlayson STREAM: Comment: Uses LIVE555 Streaming Media library. Stream not seekable! file format detected. Sending request: DESCRIBE rtsp://192.168.1.178:8554/test RTSP/1.0 CSeq: 1 Accept: application/sdp User-Agent: MPlayer (LIVE555 Streaming Media v2009.07.27) Received DESCRIBE response: RTSP/1.0 200 OK CSeq: 1 Content-Type: application/sdp Content-Base: rtsp://192.168.1.178:8554/test/ Server: GStreamer RTSP server Date: Wed, 18 Nov 2009 16:49:32 GMT Content-Length: 165 Need to read 165 extra bytes Read 165 extra bytes: v=0 o=- 1188340656180883 1 IN IP4 127.0.0.1 s=Session streamed with GStreamer i=rtsp-server e=NONE t=0 0 a=tool:GStreamer a=type:broadcast a=range:npt=now- vo: x11 uninit called but X11 not initialized.. Exiting... (End of file) gst-launch results: [root@devkrakora ffmpeg]# gst-launch rtspsrc location=rtsp://192.168.1.178:8554/test Setting pipeline to PAUSED ... ERROR: Pipeline doesn't want to pause. ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: No supported stream was found. You might need to allow more transport protocols or may otherwise be missing the right GStreamer RTSP extension plugin. Additional debug info: gstrtspsrc.c(4499): gst_rtspsrc_setup_streams (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0 Setting pipeline to NULL ... Freeing pipeline ...
realPlayer cannot pay it either...
You are not naming the payloader correctly. try: "...! rtpmp2tpay name=pay0 pt=96 )" Reopen if that doesn't fix it.
Thanks for the quick response ;-). However, your suggestion yielded these results: 0:00:02.542133000 11182 0xcbb8010 ERROR GST_PIPELINE ./grammar.y:415:gst_parse_element_set: could not set property "pt" in element "rtpmp2tpay1" to "96)" 0:00:02.542436000 11182 0xcbb8010 WARN default ./grammar.y:832:_gst_parse_yyerror: Error during parsing: syntax error, unexpected $end 0:00:02.542561000 11182 0xcbb8010 ERROR GST_PIPELINE ./grammar.y:872:_gst_parse_launch: Unrecoverable syntax error while parsing pipeline ( v4l2src ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! mpeg2enc ! mpegtsmux ! rtpmp2tpay pt=96) ** (lt-test-launch:11182): CRITICAL **: could not parse launch syntax (( v4l2src ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! mpeg2enc ! mpegtsmux ! rtpmp2tpay pt=96)): could not set property "pt" in element "rtpmp2tpay1" to "96)" ** (lt-test-launch:11182): CRITICAL **: could not create element ** Message: constructed media (nil) for url /test
I have no idea what you did but this works fine for me: ./test-launch --gst-debug=2 "( videotestsrc is-live=1 ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! mpeg2enc ! mpegtsmux ! rtpmp2tpay pt=96 name=pay0 )" unfortunately mpeg2enc does not produce sequence headers at regular intervals so no receiver will be able to decode this.
That works for me now, however, you can get it to fail with this line and this is why it was failing for me: ./test-launch --gst-debug=2 "( videotestsrc is-live=1 ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! mpeg2enc ! mpegtsmux ! rtpmp2tpay pt=96 name=pay0)" This line (yours) works well: ./test-launch --gst-debug=2 "( videotestsrc is-live=1 ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv,width=320,height=240 ! mpeg2enc ! mpegtsmux ! rtpmp2tpay pt=96 name=pay0 )" It is because of the placement of ')' with out a preceding space. This causes a syntax error when an RTSP connection request comes in...
closing then