Improve Mobile App Video Streaming by using Adaptive Bitrate
Adaptive bitrate is a streaming technology designed to work efficiently over HTTP networks. Multiple files from the same source file are distributed to end users using different connection speeds. As the name implies, the connection speed can be adapted as needed, based on what the end user can handle, by monitoring CPU and memory capacity and then adjusting the video quality. This avoids the need for rebuffering.
The two most common ways to send video over the Internet are progressive downloads and streaming.
- Progressive downloads work by sending out single files that are stored on a server. When requested, the files are downloaded locally on the user’s device for viewing.
- Streaming video, on the other hand, is sent by a server and consumed by the user’s device without the file actually being stored.
There are a number of different approaches and protocols available for streaming, so it can be a little confusing. And not all of them are appropriate for mobile.
The reason we recommend adaptive bitrate streaming is because it provides the best overall solution for mobile devices and networks, by offering high-quality video for users with faster connection speeds and acceptable quality for those on slower connections.
Adaptive bitrate solutions you are probably familiar with include Apple’s HTTP Live Streaming (HLS), Adobe’s Flash-based Dynamic Streaming, and Microsoft’s Smooth Streaming for Silverlight, and internally, Hulu, Netflix, and YouTube all use adaptive streaming technologies.
Note that neither Flash nor Silverlight can play on most mobile devices. HLS, on the other hand, has been supported on iOS and Android since their respective 3.0 releases.
Video and other types of rich media are on the rise in mobile apps and in the future we plan on offering more guidance on streaming and other video technology in our Mobile Development Best Practices recommendations.