What is Adaptive Streaming?
This post is a part of our educational series on Live Streaming Basics for the Newbie and Video on Demand Basics for the newbie.
What is Adaptive Streaming?
Adaptive streaming is a video streaming technique that detects a viewer’s bandwidth and CPU capacity in real-time and adjusts the stream video quality accordingly. It provides the highest quality stream that is supported by the viewer’s device and the internet connection.
Multiple Stream Resolutions
Content providers typically have high resolution media content. Through a platform like StreamShark, providers can select data rates for streams (multiple qualities) so the single source video is encoded (compressed) to multiple lower resolution streams and made available for adaptive streaming (as shown in figure below).
Users of StreamShark can create multiple live streams of any quality and offer videos on demand in specific qualities. For example, a live stream with two qualities could have a high quality encode of 2000kbps with an output size of 720p, and a lower quality encode of 500kbps and an output size of 360p. For video on demand, qualities can be selected from a range of options, from mobile optimized 240p encodes all the way up to high resolution 4K encodes.
Adaptively Switching Streams
The player through which the viewer is watching the video unobtrusively switches between streaming the different encodings. Adaptive streaming helps reduce buffering and load time, which in turn provides a better user experience for both high-end and low-end internet connections. The diagram below illustrates the adaptive streaming process and interactions between the media server and the video player.
Data Management in Video Streaming
There are three layers of data management involved in video streaming
- the encoded segments such as H.264 and AAC (The term ‘segments’ is explained in this post on Keyframes and Segments.),
- the container such as .flv and .mp4 and
- the transport protocol to move the stream from media server to the player such as Real Time Messaging Protocol (RTMP).
A special file called the manifest file (such as .m3u8) is essentially a playlist index file that tells the player the order in which to play the video segments for the stream. If you are interested in learning more, you can watch a terrific short video by Mediaplatform that illustrates how the encoded segments, container and transport protocol work together to successfully stream video to your player.
HLS Implementation
HTTP Live Streaming (or HLS) is an adaptive streaming communications protocol created by Apple to communicate with Apple devices (iPhone, iPad, iMac, Apple TV). It is the sole technology available for adaptively streaming live video and video on demand to Apple devices.
Run a live stream
You’ve now learnt how Adaptive Streaming works and are ready to set up a live stream. A few more fundamental concepts are covered in the following posts: