Opened 7 years ago
Last modified 7 months ago
#1941 new defect
unable to receive RTSP stream from VLC
Reported by: | rogerdpack | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avformat |
Version: | git-master | Keywords: | rtsp |
Cc: | ffmpeg@codywohlers.ca | Blocked By: | |
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Summary of the bug: $title
How to reproduce:
# in one terminal: $ vlc sintel.mpg ":sout=#transcode{vcodec=h264,vb=300,scale=0.25,acodec=mp4a,ab=128,channels=2,samplerate=22050}:rtp{mux=ts,sdp=rtsp://:8554/test.sdp}" $ ffmpeg -i rtsp://localhost:8554/test.sdp ffmpeg version N-43576-gaee7b88 Copyright (c) 2000-2012 the FFmpeg developers built on Aug 15 2012 11:12:55 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5) configuration: --enable-gpl --enable-libx264 --disable-stripping libavutil 51. 69.100 / 51. 69.100 libavcodec 54. 52.100 / 54. 52.100 libavformat 54. 23.100 / 54. 23.100 libavdevice 54. 2.100 / 54. 2.100 libavfilter 3. 9.100 / 3. 9.100 libswscale 2. 1.101 / 2. 1.101 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [rtsp @ 0x9505500] method SETUP failed: 459 Aggregate operation not allowed
Of course, I'm not sure if it's a VLC or ffmpeg bug, but at least it's reproducible.
Change History (9)
comment:1 Changed 7 years ago by cehoyos
- Keywords rtsp added
- Version changed from unspecified to git-master
comment:2 Changed 7 years ago by rogerdpack
unfortunately mplayer responds with
rtsp_session: unsupported RTSP server. Server type is 'VLC/2.0.4'.
then rejects it. odd.
comment:3 Changed 7 years ago by cehoyos
Is that with or without live555 support in MPlayer?
comment:4 Changed 7 years ago by rogerdpack
ok, with live555 it seems to sometimes work...after a long pause/delay it started playing it at least once, other times it doesn't work https://gist.github.com/4128685.
$ mplayer.exe rtsp://localhost:8554/test.sdp MPlayer Sherpya-SVN-r34401-4.6.2 (C) 2000-2011 MPlayer Team Playing rtsp://localhost:8554/test.sdp. Resolving localhost for AF_INET... Connecting to server localhost[127.0.0.1]: 8554... rtsp: warning: setting NEW session: 338e96a07fc33214;timeout=60;timeout=60 Timeout! No data from host 0.0.0.0 rtsp_session: unsupported RTSP server. Server type is 'VLC/2.0.4'. STREAM_LIVE555, URL: rtsp://localhost:8554/test.sdp Stream not seekable! file format detected. Initiated "video/MP2T" RTP subsession on port 49496 Stream url is not set! TS file format detected. VIDEO H264(pid=68) NO AUDIO! (try increasing -tsprobe) NO SUBS (yet)! PROGRAM N. 1 BUG! Invalid demuxer type in new_demuxer(), big troubles ahead.FPS seems to be: 29.970030 <vo_directx><ERROR>Your card doesn't support overlay ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264) ========================================================================== Audio: no sound Starting playback... Unsupported PixelFormat 61 Unsupported PixelFormat 53 Unsupported PixelFormat 81 Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] Movie-Aspect is 1.78:1 - prescaling to correct movie aspect. [swscaler @ 01377ea0]using unscaled yuv420p -> bgra special converter VO: [directx] 176x118 => 210x118 BGRA V:26526.3 244/244 1% 1% 0.0% 0 0 Exiting... (Quit)
comment:5 Changed 6 years ago by jyavenard
is there any progress on this?
using master as of today, still yield:
ffplay version N-62951-g3316556 Copyright (c) 2003-2014 the FFmpeg developers built on May 4 2014 16:31:04 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) configuration: libavutil 52. 81.100 / 52. 81.100 libavcodec 55. 60.103 / 55. 60.103 libavformat 55. 37.102 / 55. 37.102 libavdevice 55. 13.101 / 55. 13.101 libavfilter 4. 5.100 / 4. 5.100 libswscale 2. 6.100 / 2. 6.100 libswresample 0. 18.100 / 0. 18.100 [rtsp @ 0x7ff70a809e00] method SETUP failed: 459 Aggregate operation not allowed rtsp://127.0.0.1:5554/test: Invalid data found when processing input
comment:6 Changed 11 months ago by codywohlers
- Cc ffmpeg@codywohlers.ca added
I still get this too
$ ffplay -v debug rtsp://server:8554/ ffplay version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2003-2018 the FFmpeg developers built with gcc 7 (Ubuntu 7.3.0-16ubuntu3) configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Initialized opengl renderer. [tcp @ 0x7f66a4002ea0] No default whitelist set [rtsp @ 0x7f66a4000b80] SDP:aq= 0KB vq= 0KB sq= 0B f=0/0 v=0 o=- 16137773033285955342 16137773033285955342 IN IP4 server s=Unnamed i=N/A c=IN IP4 0.0.0.0 t=0 0 a=tool:vlc 3.0.4 a=recvonly a=type:broadcast a=charset:UTF-8 a=control:rtsp://192.168.1.100:8554/ m=video 0 RTP/AVP 33 b=RR:0 a=rtpmap:33 MP2T/90000 a=control:rtsp://192.168.1.100:8554/trackID=0 [rtp @ 0x7f66a4004280] No default whitelist set [udp @ 0x7f66a401b700] No default whitelist set [udp @ 0x7f66a401b700] end receive buffer size reported is 131072 [udp @ 0x7f66a402bcc0] No default whitelist set [udp @ 0x7f66a402bcc0] end receive buffer size reported is 131072 [rtsp @ 0x7f66a4000b80] method SETUP failed: 459 Client error=0/0 [rtsp @ 0x7f66a4000b80] Server: VLC/3.0.4 Date: Fri, 25 Jan 2019 01:21:22 GMT Content-Length: 0 Cache-Control: no-cache Cseq: 3 rtsp://server:8554/: Server returned 4XX Client Error, but not one of 40{0,1,3,4}
comment:7 Changed 11 months ago by codywohlers
the same stream works on the same client using VLC, totem, and gst-play-1.0
comment:8 Changed 11 months ago by cehoyos
- Component changed from undetermined to avformat
- Reproduced by developer set
comment:9 Changed 7 months ago by tpol
It looks like FFmpeg incorrectly parses the SDP information in case of MPEG-2 transport stream.
When payload type is 33, it uses the Session control url instead of the Media control url in RTSP SETUP request.
a=control:rtsp://..:8554/
vs
a=control:rtsp://..:8554/trackID=0
I was able to receive the stream with the following fix:
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index c153cac..b8c7128 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -541,7 +541,7 @@ break; case 'a': if (av_strstart(p, "control:", &p)) { - if (s->nb_streams == 0) { + if (rt->nb_rtsp_streams == 0) { if (!strncmp(p, "rtsp://", 7))
Is MPlayer (or any other application) able to receive the stream?