Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1249 closed defect (fixed)

FFServer HTTP/1.1 WAIT_FEED bug

Reported by: barhom Owned by:
Priority: critical Component: ffserver
Version: unspecified Keywords: ffserver WAIT_FEED ffm
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Fully reproducible bug that only happens once "FileMaxSize" is reached.

Below are ffserver configuration for a feed+stream.
FFmpeg is started like this;

ffmpeg -i INPUTMPEGTS http://localhost:8090/feed0.ffm

This creates a stream that ffmpeg transcodes into h264+aac in a flv container and publishes it as http://localhost:8090/feed0.ffm
The stream is then viewable/downloadable at http://localhost:8090/feed0.flv

Everything is working as expected and FFserver stats page shows that is is receiving data.
However, once FileMaxSize is reached new clients that connect has about random chance of around 20-40% of getting the data, the other times the stream connects however with no data being received at the client (wget/vlc).

When no data is being received the stats page in ffserver shows; HTTP/1.1 WAIT_FEED for the client.

Changing FileMaxSize to 100G would make the stream work for every client up until the file is 100G, then the same problems occurs.

<Feed feed0.ffm>
File /tmp/feed0.file
FileMaxSize 5M
</Feed>

<Stream feed0.flv>
Format flv
Feed feed0.ffm
AVOptionVideo flags +global_header
VideoCodec libx264
VideoBitRate 900
VideoFrameRate 25
VideoSize 720x576
AVOptionVideo coder 1
AVOptionVideo flags +loop
AVOptionVideo cmp +chroma
AVOptionVideo partitions +parti8x8+parti4x4-partp8x8-partb8x8
AVOptionVideo me_method dia
AVOptionVideo subq 1
AVOptionVideo me_range 16
AVOptionVideo g 250
AVOptionVideo keyint_min 25
AVOptionVideo sc_threshold 40
AVOptionVideo i_qfactor 0.71
AVOptionVideo b_strategy 1
AVOptionVideo qcomp 0.7
AVOptionVideo qmin 10
AVOptionVideo qmax 51
AVOptionVideo qdiff 4
AVOptionVideo bf 3
AVOptionVideo refs 1
AVOptionVideo directpred 1
AVOptionVideo trellis 0
#AVOptionVideo flags2 +bpyramid-mixed_refs+wpred+dct8x8+fastpskip-mbtree
AVOptionVideo wpredp 0
AVOptionVideo rc_lookahead 0
AVOptionVideo deblockalpha 2
AVOptionVideo deblockbeta 2
AVOptionVideo threads 4

#AVOptionVideo maxrate 2500

AudioCodec libfaac
AudioBitRate 96
AudioChannels 2
AudioSampleRate 48000
AVOptionAudio flags +global_header
</Stream>

Change History (3)

comment:1 by barhom, 12 years ago

Simulate client with wget;

:~# wget http://localhost:8090/feed0.flv
--2012-04-24 19:58:14-- http://localhost:8090/feed0.flv
Connecting to localhost:8090... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [video/x-flv]
Saving to: `feed0.flv.3'

[ <=> ] 2,576 --.-K/s

Last edited 12 years ago by barhom (previous) (diff)

comment:2 by Michael Niedermayer, 12 years ago

Keywords: ffm added
Reproduced by developer: set
Resolution: fixed
Status: newclosed

Should be fixed, if there are cases left where it still fails, please reopen or open a new ticket if they are seperate issues.

comment:3 by IceSheep, 12 years ago

I am still having this issue. It should be fixed in v. 1.2, right? I have installed ffserver via Homebrew.

ffserver version 1.2 Copyright (c) 2000-2013 the FFmpeg developers
  built on Mar 23 2013 20:03:54 with Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100

This is my configuration:

Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 8000
CustomLog -
NoDaemon

<Feed feed1.ffm>
	File /tmp/feed1.ffm
	FileMaxSize 200K
</Feed>

<Stream live.ts>
	Format mpegts
	Feed feed1.ffm

	VideoCodec libx264
	VideoFrameRate 25
	VideoBitRate 1536
	VideoSize 1280x720
	AVOptionVideo crf 23
	AVOptionVideo preset ultrafast
	AVOptionVideo flags +global_header

	AudioCodec aac
	Strict -2
	AudioBitRate 192
	AudioChannels 2
	AudioSampleRate 44100
	AVOptionAudio flags +global_header
</Stream>

Thanks!

Version 1, edited 12 years ago by IceSheep (previous) (next) (diff)
Note: See TracTickets for help on using tickets.