Opened 7 years ago

Last modified 3 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

Is MPlayer (or any other application) able to receive the stream?

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 5 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 7 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 7 months ago by codywohlers

the same stream works on the same client using VLC, totem, and gst-play-1.0

comment:8 Changed 7 months ago by cehoyos

  • Component changed from undetermined to avformat
  • Reproduced by developer set

comment:9 Changed 3 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))
Note: See TracTickets for help on using tickets.