Stalling videos and multi streaming
We will discuss technology and techniques currently used on the web to overcome the problem of slow videos, outline disadvantages of these approaches and have a look at a new method pioneered by Easy-Bits.com to serve content in parallel streams over HTTP protocol.
Current state of things.
At the moment the best online video publishers can do is to encode their video assets into as many different bitrate versions as possible and use a good content delivery network provider. When a front user clicks on the play button a browser requests the video and a special DNS server of the content delivery network resolves the url to a particular edge server node of the network. CDN providers use complicated algorithms to calculate which server to use for each request depending on the state of different network routes (as well as pricing). However sometimes internet connection even between the closet edge server and the user's device is not good enough for video playback without buffering. This is where different bitrate versions of the video are used.
Video player could be capable of detecting bandwidth problems and switching to a lower bitrate version automatically or it can provide the user with an interface to do so on request. Having multiple versions of the same file comes with the price of management of additional versions, which includes encoding and storage plus it has negative impact on caching video assets by CDN infrastructure.
The other disadvantage of presenting front user with video of lower bitrate is that the video quality goes down with bitrate too. For some video publishers video quality could be a crucial aspect of the set up.
Multi (or simultaneous) streaming.
A new solution developed by Easy-Bits.com is multi streaming over http, meaning the same video is delivered in real time from multiple locations. It is a principally different approach to alleviate stalling videos problem that does not require multiple versions of the same asset and does not comprise on video quality.
If you had to deal with slow videos queries the front users usually claim they have excellent internet connection and show their bandwidth tests with very good results. This means that the bottleneck of the connection is somewhere in the middle of the route chosen by CDN. Adding another stream from a different server allows to increase bitrate limit. The number of simultaneous http streams is not limited that is you can easily have more than two at a time.
Current solution comes as an http streaming plugin for popular Flash® players. Here is a working example of Flowplayer implementation:
This approach works on any byte-range capable http server (Apache and all CDN edge server are) and does not require any installation on the server side. A version of http multi streaming plugin for html5 video players is currently being developed and looks very promising.
How to put your content into different locations
You can either deploy two servers, use two separate CDNs or configure your DNS server to resolve different domains to different IP addresses( edge servers) of a single content delivery network.
Future of online video
With the new html5 api like appendBytes we are sure that the future of online video is mp4 parallel streaming over HTTP.