A customer uses HDS in a Flash HTTP Player and viewers of the on-demand videos are complaining about unstable stream. I tested this myself and can reproduce the problem; the video would play for a random number of seconds, then stop and hang for a few seconds, then continue. This may happen at any moment in the video (even in the beginning) so I figured this isn’t a buffering or bandwidth problem.
Whenever the problem occurs, a “seek” event is logged in the access log, even though I haven’t used seek or rewind. Occasionally I see that after the seek event, a “connect” and a “play” event are logged. I haven’t been able to find out when and why though.
I started the same stream from an RTMP Player and haven’t experienced the same problem; the stream runs smoothly from beginning to end.
Is there any explanation why HTTP streaming would be so unstable, while RTMP runs smooth?
The multiple-seek error is very common when bandwidth is constrained. Pausing and buffering are also typical symptoms of bandwidth constraints - regardless of the point in the video from whcih you’re streaming. Are you sure this isn’t a network problem?
What happens when you try to stream sample.mp4 from the /content folder?
-Tim
Thanks for your quick response. The sample.mp4 played fine in both players.
FYI: the content is approx 1 mbit/sec, Wowza 3.1.2 build 1624
Implementing ABR is quite a job considering you’ve to re-encode all content 3-4 times. I doubt this is a bandwidth problem, since other services on this server have a rather good throughput (e.g. FTP download runs at ~6Mbps). Any other suggestions?
Back to the original question (see my first post). I’ve checked the specs of the server:
-
2 x Quad Core Xeon @ 2.5GHz, generally ~10% usage
-
8GB of RAM, of which ~6.5GB available
-
100Mbit network card, ~50Mbps throughput
According to my calculations, this machine should be able to serve 50+ simultaneous 1Mbps streams, but I’ve seen buffering/stopping of the stream with only 15-18 connections.
Any suggestions?
EDIT:
See the results of the Bandwidth Checker below. How can this be, considered the specs given above?
You might want to try using adaptive bit rate delivery. This would enable the player to switch down to a lower bit rate when network conditions are less than optimal. Take a look at the tutorial on How to set up video on demand streaming which provides a section on how to setup ABR. You will need to re-encode your video using the same key frame interval and frame rate values for each encoded file. This may work very well for you.
-Tim