#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:2 by , 13 years ago
Keywords: | ffm added |
---|---|
Reproduced by developer: | set |
Resolution: | → fixed |
Status: | new → closed |
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 , 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!
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'