[FFmpeg-user] ffserver HTTP stream playback freeze

Stefano Sabatini stefasab at gmail.com
Wed Dec 18 19:49:27 CET 2013


Hi,

I'm trying to debug this but since it's starting to take much time I
wonder if someone already got the same issue, and found a fix for it.

Scenario: I'm generating a stream with ffmpeg, which is then sent to
ffserver and published as an HTTP resource.

Problem: at some point the published stream is interrupted, I usually
get decoding errors on the client (probably due to a segmented
packet), and the player freezes. If I now restart the player, the
stream will be played again until the next freeze. Many instances of
player/downloader can be created at the same time, and each one seems
to freeze independently from the others.

The freezeing time usually is just a few seconds, but the playback
duration varies from a few seconds to dozens of seconds.

If I use ffplay or vlc the stream usually freezes after few seconds,
but playback seems to last much more if I download the stream with
wget instead (so it may be somehow related to the TCP/HTTP session
between ffplay and ffserver).

I tried several combinations, changing output container, video codec,
and bitrate, but it doesn't seem to affect the issue.

Curiously, I get this problem only when I play the stream from a
remote machine.

Here are some basic instructions to reproduce the issue:

ffserver.conf file:
---------------8<------------------------------------------------
Port 8090
BindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 60000
CustomLog -

<Feed testsrc.ffm>
File /tmp/testsrc.ffm
FileMaxSize 200K
ACL allow 127.0.0.1
ACL allow localhost
</Feed>

<Stream testsrc>
Feed testsrc.ffm
Format flv
VideoCodec flv
NoAudio
</Stream>

<Stream status.html>
Format status
</Stream>
---------------8<------------------------------------------------

To generate the testing stream:
ffserver -f ffserver.test.conf &
ffmpeg -override_ffserver -re -f lavfi -i testsrc -pix_fmt yuv420p -s vga -codec:v flv -b:v 500k http://localhost:8090/testsrc.ffm -nostats

Then on a remote machine:
ffplay http://$FFSERVER_IP:8090/testsrc
wget http://$FFSERVER_IP:8090/testsrc

The same issue can be observed checking the
http://$FFSERVER_IP:8090/status.html page, when the strean freezes the
transferred bytes count stops.

...

Reports of such or similar issues, suggestions or debugging hints are
very welcome.


More information about the ffmpeg-user mailing list