Adrenaline Garage Blog

Adaptive Streaming: An essential you never knew you needed.

Posted by Jeff Harper on Fri, Sep 10, 2010 @ 18:09 PM

This article is the fourth part of our series, 5 Things you need for a Stutter Free Webcast.

Accept that many of your users don't actually have high speed connections.

So you have a blazing fast connection, a dedicated encoder and a top-of-the-line CDN.  Now you're ready to push full res HD to your viewers, right?

Accept that your webcast viewers don't have high speed internet.Actually, your viewers tend to be the weakest link in the live webcast production chain.  While a lot of internet service providers throw around the phrase "High Speed Internet", the truth is their customers are rarely getting the advertised speeds.  In fact, a recent study by the FCC found that on average consumers got about half the bandwidth they were promised.

Still the report says the average US consumer's connection speed is 3Mbps, which would be enough to stream a pretty good HD webcast. 

There are two problems.  First, while our own numbers back that up in the US, our numbers show us that only 25-35% of viewers outside the US are capable of receiving an HD stream.  Second, if you want to maximize your audience, you can't plan for the average consumer.  That would eliminate about 50% of your audience.  To have 90-95% of people who want to watch your webcast actually see it, you need a plan to accomodate viewers with connections in the 5th-10th percentile--some pretty miserable connections.

Anecdotally, during events we've contacted viewers experiencing problems to troubleshoot and improve our system.  Poor connection speed, even on supposedly high speed DSL connections, is the number one cause of why viewers report a poor viewing experience.

Strategies

There are three strategies to accommodate the largest possible audience.  Of course, each has their trade-offs.

  1. Adaptive Bit Rate Streaming.  We consider this the best method for our clients.  Using this strategy, the encoder would push several streams of different bit rates to the server.  The user's player polls their connection speed and selects the right stream for the user's connection and processor speed.  If anything changes, either improves or deteriorates, the player seamlessly switches to a more appropriate stream.
    • Pros:  This allows viewers to see the best possible stream, regardless of whether have a high-end or low-end connection.  If the connection speed changes, the player switches seamlessly between streams with no interruption to the program.  The viewer doesn't have to know anything about their connection or do anything on their own.
    • Cons:  You'll need a faster connection at your encoder because you'll be pushing multiple streams.  This method is the most expensive because it requires a custom player that is capable of doing the switching.  It's a rather new technology and while we've developed our own, we don't know of any off-the-shelf live adaptive bit rate players available that are viewable across a large array of browsers and operating systems.  (Apple has developed one compatible only with Mac devices using the latest Safari browser).
  2. Manual Stream Selection.  Using this strategy, a user or player selects the stream (usually called "High" and "Low") at the time they connect to the server.  If the connection speed changes, the user must stop that stream and start the other stream.
    • Pros This method does allow you to have a high resolution stream for better connections and a low resolution stream for poor connections.  This too may require a custom player, but is a much older method and more are available.
    • Cons If the connection speed changes, either improves or deteriorates, there is no way to detect it.  If it improves, the viewer will not know they could be watching a higher resolution stream.  If it deteriorates, the viewer will know when the stream starts to stutter and buffer.  Changing streams is not seamless and will cause the viewer to miss some of the program.
  3. Streaming for the Lowest Common Denominator.  If you must use an off-the-shelf player or are limited to only one stream, then this is the last option.  In this scenario, you produce one stream at a very low bitrate.  While it won't look great, at least everyone will be able to see it.
    • Pros It's the least expensive option as there are a number of free off-the-shelf players available.  It requires the least bandwidth for the encoder.
    • Cons The quality of your stream will be reduced to what's acceptable for the lowest common denominator.  In our experience, this much compression typically involves heavy blockiness and muddiness when streaming an action sports event.  The other option is to eliminate a sizable chunk of your audience's ability to see the stream.
Next up, how to deal with the unexpected.

Topics: Webcast Tips