Opened 6 years ago

Closed 6 years ago

#4071 closed defect (fixed)

Playing a live rtmp stream fails (regression)

Reported by: pickles Owned by:
Priority: important Component: avformat
Version: git-master Keywords: rtmp regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no


Summary of the bug:

The latest master ffmpeg (compiled without librtmp) doesn't automatically detect a live rtmp stream that is streamed from adobe media server, so it quits with the following error: Server error: Method not found (getStreamLength). This indicates that ffmpeg is treating it as a VOD stream, rather than a live stream.

How to reproduce:

ffmpeg -report -i rtmp://
ffmpeg version N-67332-g70b7cf9 Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov  2 2014 17:43:30 with Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
  configuration: --prefix=/usr/local --enable-avfilter --enable-static --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-ffplay --enable-libfdk-aac
  libavutil      54. 11.100 / 54. 11.100
  libavcodec     56. 10.101 / 56. 10.101
  libavformat    56. 12.100 / 56. 12.100
  libavdevice    56.  2.100 / 56.  2.100
  libavfilter     5.  2.101 /  5.  2.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-i' ... matched as input file with argument 'rtmp://'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input file rtmp://
Successfully parsed a group of options.
Opening an input file: rtmp://
[rtmp @ 0x7f8c3040dee0] Handshaking...
[rtmp @ 0x7f8c3040dee0] Type answer 3
[rtmp @ 0x7f8c3040dee0] Server version
[rtmp @ 0x7f8c3040dee0] Proto = rtmp, path = /live/tone, app = live, fname = tone
[rtmp @ 0x7f8c3040dee0] Server bandwidth = 2500000
[rtmp @ 0x7f8c3040dee0] Client bandwidth = 2500000
[rtmp @ 0x7f8c3040dee0] New incoming chunk size = 4096
[rtmp @ 0x7f8c3040dee0] Creating stream...
[rtmp @ 0x7f8c3040dee0] Sending play command for 'tone'
[rtmp @ 0x7f8c3040dee0] Server error: Method not found (getStreamLength).
rtmp:// Unknown error occurred

This did previously work fine. Checking with git bisect yields that:

324b23dde1bc8638959eb32419c95a93906db272 is the first bad commit

So I assume this is a regression since 324b23d.

This rtmp server does work if you force

-f flv -rtmp_live live

but this was not necessary prior to 324b23d. My understanding is that the default 'any' autodetection behaviour for rtmp_live should automatically try a live stream, and then fall back to VOD if no live stream exists. It seems that the default 'any' autodetection setting for rtmp_live isn't working properly here.

Change History (2)

comment:1 Changed 6 years ago by cehoyos

  • Component changed from undetermined to avformat
  • Priority changed from normal to important
  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from unspecified to git-master

comment:2 Changed 6 years ago by michael

  • Resolution set to fixed
  • Status changed from open to closed
Note: See TracTickets for help on using tickets.