Adaptive Bitrate Streaming: What it Is and How the ABR Algorithm Works [2021 Update]
Table of Contents
For most broadcasters, the user experience they provide is crucial because most viewers won’t deal with a poor stream for long. In fact, over half of the viewers will abandon a poor-quality stream in 90 seconds or less. That means one bad stream could be devastating for business.
The problem is that most users rely on home internet connections. Bandwidth and network conditions for these connections fluctuate throughout the day and could impact the viewing experience. The devices they use also vary in processing power and playback ability.
That’s why it’s crucial for today’s broadcasters to keep viewers in mind when putting together an adaptive video streaming workflow. For most companies, that means using the adaptive bitrate streaming algorithm to optimize streaming quality.
In this article, we’ll dive into what adaptive bitrate streaming is and how it works. We’ll also look at what makes up a streaming profile and how brands can implement ABR streaming themselves.
Let’s get into it.
- What is Adaptive Bitrate Streaming?
- How does ABR Streaming Work?
- Adaptive Streaming Profiles
- How to Do Adaptive Bitrate Streaming
- The Benefits of Adaptive Playback
What is Adaptive Bitrate Streaming?
First, let’s look at the importance of bitrates when streaming and what it means to have adaptive playback capabilities.
What is a Bitrate for Streaming?
The video bitrate of a stream refers to the speed for transferring video data to a user’s device. The standard measure for a bitrate for streaming video is megabits per second (Mbps), which differs from a video’s file size measured in megabytes (MBps).
In general, a higher bitrate means the video quality will be better, but if it exceeds a user’s bandwidth—also measured in Mbps—then buffering can occur. Buffering means the video player cannot download the video file fast enough to keep the video playing at normal speed.
These are some factors that impact the streaming video bitrate:
- Video resolution: The resolution of a video refers to the number of pixels within a frame. Most video streams have a resolution that’s 480, 720, 1080, or 4K. A higher resolution makes images sharper and may be necessary to have a quality viewing experience on larger displays.
- Frame rate: Most broadcasters use 24 frames per second (fps), but sports events or other streams that require a smoother playback may use 30 to 60 fps. A higher frame rate can display motion better, but more frames also require additional data.
- Codec: A higher quality video—with a greater resolution and frame rate—generally has a higher bitrate. That said, some codecs that compress video data are more efficient than others. Newer codecs like H.264 and H.265 result in a higher quality video at lower bitrates than legacy codecs.
What is Adaptive Playback?
Adaptive bitrate streaming (ABR) is an algorithm where a video player client decides which bitrate segments to download. The end result is that broadcasters are able to offer multiple streams with different bitrates to users. The video player detects fluctuations of the internet connection and the processing capacity of the user’s device to automatically upgrade or downgrade the stream’s bitrate in real-time.
In contrast, multi-bitrate streaming (MBR) involves several stream options, but once the video player chooses a bitrate, it doesn’t adapt based on network conditions. A sudden drop in bandwidth could lead to buffering, so MBR streaming without adaptive playback isn’t ideal for most streaming situations.
Adaptive playback, therefore, is a way for video players to dynamically match a stream’s quality to network conditions, available bandwidth, and device performance.
How Does ABR Streaming Work?
ABR streaming is crucial for optimizing video playback, but how exactly do broadcasters make it work?
1. Video Preparation
First, the video content needs to be prepped for ABR live streaming. An encoder needs to encode the video into several bitrates depending on the target streaming profile. Most online video platforms are capable of transcoding videos into multiple formats from a single source file.
Each of these encoded video files needs to be segmented into multi-second parts. The size of these video chunks varies depending on the implementation, but they’re generally between 2 and 10 seconds each. This approach works well with HTTP-based streaming protocols that progressively download video content.
2. Initial Startup
Before a video player can begin playback, it downloads a manifest file that describes the video chunks and bitrates available. This manifest file— the .m3u8 playlist for HLS and media presentation description (MPD) for DASH—contains the information that makes up a streaming profile, which we’ll cover later on.
The video player can simply use the manifest as a guide to request the video assets that are most suitable for the user’s device and connection. Then, it begins playback immediately when there’s enough media content available in the local buffer.
The benefit of streaming video over HTTP is that the content can be stored and delivered from an ordinary web server. That means ABR works well with content delivery networks (CDNs) to further reduce latency, lower packet loss, and increase delivery speed.
3. Dynamic Playback
Video players usually start streaming at the lowest bit rate and request higher or lower quality video chunks as network conditions change. Each player has its own ABR algorithm for deciding which bitrates to download next.
There are two common types of selection algorithms that video players use: throughput and buffer. Throughput-based algorithms measure the download speed of previous video chunks to determine which bitrate to choose next. The problem is that a throughput estimate may not match the encoder bitrate during live streams.
Buffer-based algorithms attempt to control the buffer occupancy to ensure there’s always enough video ready for playback. If the local buffer is running out of media, the next bitrate will be lower to keep ahead of playback. The problem is knowing how far to lower the bitrate to fill the buffer without downgrading quality too much.
Some adaptive players even offer a hybrid of the two. For example, THEOplayer continually evaluates its downloading speed and may switch bitrate mid-download to keep the buffer occupancy high. Over the coming years, more advanced algorithms using machine learning may gain traction as well.
Adaptive Bitrate Streaming Profiles
A streaming profile is the set of variations that you want to make available for a particular video. This means creating a ladder that includes different bitrates, resolutions, codecs, and more.
Most ABR profiles are universal ladder designs meant to optimize all video files for any streaming device and network condition. Apple even proposed a fixed bitrate encoding ladder (see below), which Netflix later refined to maximize video quality at each particular rung.
Another streaming profile strategy gaining popularity is context-aware encoding (CAE), which considers user devices when encoding as well. Each piece of content gets encoded for specific device types—from smartphones to smart TVs— to build a custom bitrate ladder. This enables broadcasters to offer a higher Quality of Experience with reduced bandwidth requirements.
In the end, there’s not a single streaming profile that fits every broadcaster’s needs. That’s why we cover general guidelines for which protocols and bitrates should be included in most streaming profiles in the next section.
How to Do Adaptive Bitrate Streaming
For broadcasters looking to offer adaptive bitrate streaming, a number of decisions need to be made around streaming protocols, bitrates, and video players.
Which Streaming Protocol Should I Use?
A streaming protocol is a method for delivering audio or video over the internet. Choosing which video streaming protocol to use will depend on your goals because protocols can handle ABR streaming while others are better for low-latency streams.
Once the most common streaming protocol, Real-time Messaging Protocol (RTMP) has been largely deprecated as a delivery method to end-users. While the protocol can stream to Flash Player, most browsers have switched to HTML5 video players by default. That said, RTMP can still be used to transmit video for an encoder to an OVP, but it’s not ideal for ABR streaming.
The preferred protocol for HTML5 video players is HTTP live streaming (HLS). This is crucial because the video player is ultimately what controls ABR live streaming. As far as codecs, HLS supports H.264 and recently added support for H.265 / HEVC. The protocol uses 10-second video segments by default, but some video players allow smaller segments to reduce latency.
What Bitrate Should I Stream At?
The best bitrates to choose will depend on your target audience, but it’s generally a good idea to offer multiple bitrates at varying levels of quality.
Here are some common bitrates settings:
- 360p video: 400 Kbps – 1000 Kbps
- 480p video: 500 Kbps – 2 Mbps (1 Mbps = 1000 Kbps)
- 720p video: 1.5 – 4 Mbps
- 1080p video: 3 – 6 Mbps
At Dacast, we recommend providing a bitrate below 1000 Kbps to ensure any user can watch your videos. Additional bitrates above this will improve the viewing experience for users that have the device and bandwidth necessary. For HLS adaptive bitrate streaming, here are our suggestions when configuring the encoder.
Along with using an ABR algorithm to choose which video stream bitrate to use, adaptation video players also select a video file that fits the device’s screen. This ensures the user will always see a video that looks good.
The Benefits of Adaptive Playback
The primary benefit of adaptive bitrate streaming is an improved Quality of Experience. Broadcasters can offer the highest quality video possible for their viewers without risking buffering or other interruptions to the experience.
Along with smoother streams, ABR offers a faster startup. Since ABR streams usually start with a low bitrate stream until the selection algorithm estimates bandwidth capacity or buffering occupancy, the video is able to begin playback immediately. That means brands don’t need to worry about losing viewers due to slow loading times.
ABR adaptive bitrate streaming also improves the viewing experience on smartphones and tablets. In the past, data plan limitations and low device processing power made streaming video on the go a challenge for broadcasters. ABR ensures mobile users are able to watch video streams without buffering despite these potential limitations.
Since ABR streams utilize HTTP for delivery, it works with most web servers and CDNs. That means it’s cheaper than setting up specialized servers or keeping persistent connections open. Using ABR streaming, therefore, can be a cost-effective way to scale while maintaining a high-quality streaming experience.
When a user has a poor streaming experience, they’re more likely to view your brand negatively. That limits the opportunity for advertising and monetization down the line. That’s why ABR is crucial for today’s broadcasters.
Broadcasters need to be prioritizing their user experience, and ABR live streaming is a surefire way for users to view the highest quality stream possible on nearly any device. ABR streaming has created new user expectations that require the right streaming technology to meet.
As a comprehensive over-the-top (OTT) streaming platform, Dacast makes it straightforward to deliver ABR streams with its flexible encoding capabilities and HTML5 adaptive video player. That’s why the streaming platform was nominated as the best platform for Small/Medium Business Platform in the 2019 Streaming Media Readers’ Choice Awards.
If you’re a broadcaster looking to optimize your video streams for end-users, consider our risk-free, 30-day trial of Dacast.
Stay up to date with our latest features and product releases