Adaptive Bitrate Streaming (ABR) is an approach to video streaming that is an absolute game changer for content creators and viewers alike – adjusting the quality of the video stream in real-time, based on the viewer's internet connection. This means that regardless of the viewer's device or network speed, they can enjoy a seamless viewing experience with minimal buffering or lag.
But what’s wrong with what we have right now? HTML5 and modern codecs make high-quality video content possible and good enough, right?
Well, not exactly. Let’s find out why, and cover ABR itself, how it works, the benefits it brings over conventional streaming techniques, and some ABR best practices to help you render great video experiences irrespective of users’ internet speed or device.
What is Adaptive Bitrate Streaming and how is it different?
To understand why ABR is critical for so many use-cases, let’s see how the conventional approach – progressive video streaming – would work.
Conventionally, you deliver video in a linear fashion. It is not technically ‘streaming’. Even if you have the same video at different bitrates/resolutions, the viewer's device requests the entire video file and downloads it as it plays, sequentially, from beginning to end. The viewer's internet speed determines how fast this happens, and the video quality is fixed throughout the entire stream. Want to make sure viewers on limited bandwidth can watch it smoothly? Tough luck. You’re going to have to make a call between reducing video quality (thus depriving users who have faster connections and would prefer higher resolutions), or excluding a large chunk of your audience altogether.
On the other hand, Adaptive Bitrate Streaming brings dynamism to the table.
With ABR, the video is divided into small segments, and each segment is encoded at multiple quality levels, provided by the streaming server to the client. The streaming client (the video player being used) then analyzes the viewer's internet connection, and selects the highest quality segment that can be smoothly streamed at that time. This means that if the viewer's internet speed slows down, the video quality is automatically adjusted to ensure that the video playback is not interrupted.
Do your viewers have slower internet connections? No problem. They can still watch your video without experiencing buffering or lag. Conversely, viewers with faster internet connections can enjoy a higher-quality video with no interruptions. Leveraging ABR creates an optimal experience across the board, without lowering the bar for image quality or excluding anyone.
|Parameter||Adaptive Bitrate Streaming (ABR)||Progressive Video Streaming|
|Definition||A method of video streaming where the video quality adjusts to the user's network speed in real time.||A method of video streaming where the video plays at a constant bitrate, regardless of the user's network speed.|
|Quality||Adjusts video quality based on the user's network speed.||Video quality remains constant, regardless of the user's network speed.|
|Bitrate||Varies according to the user's network speed.||Remains constant throughout the video playback.|
|User Experience||Provides a smooth viewing experience, as video quality adjusts to the user's network speed.||Video playback may buffer or pause if the user's network speed fluctuates.|
|Bandwidth Efficiency||More efficient use of bandwidth as the video quality adjusts to the user's network speed.||Less efficient use of bandwidth as the video plays at a constant bitrate.|
|Compatibility||Requires compatible ABR-enabled players and servers.||Compatible with most media players and servers – and even without a player, just using the HTML5|
|Content Requirement||Requires the creation of multiple video streams with different bitrate, so storage needs are higher.||Requires the creation of a single video file with a constant bitrate, so storage needs just have to be enough for a single video.|
Table 1. The main differences between progressive video streaming and Adaptive Bitrate Streaming (ABR), summed up.
What are the benefits of Adaptive Bitrate Streaming?
Adaptive Bitrate Streaming (ABR) provides a range of benefits that improve the streaming experience for viewers:
Improved streaming quality:
- Dynamically adjusts video quality based on the viewer's internet connection or device, for a seamless viewing experience.
- Ensures high-quality video for viewers with faster internet connections/devices, or standard-quality video that plays without frustrating pauses or interruptions for viewers with limited bandwidth/older devices. No one is excluded from an optimal experience.
- ABR reduces buffering using various techniques like Dynamic Bitrate Adjustment, Chunked Streaming, Fast Start and Caching.
- These techniques provide benefits for both the server and the client. For the server, it means load management so it is able to efficiently distribute content without saturating the network and causing unintended buffering and stutters. For the client, it simply means reduced buffering via faster downloads.
Increased user engagement:
- Improved streaming quality and reduced buffering add up to a high-quality viewing experience regardless of connection speed or device. This means that viewers are more likely to continue watching the video, rather than getting frustrated and giving up due to buffering or poor video quality.
- By adapting to the viewer's device and screen size, ABR ensures that the video is optimized for their specific viewing environment. This can increase viewer engagement by making the video more accessible and easier to watch.
Adaptive Bitrate Streaming (ABR) has become a popular technology in the streaming industry, improving the quality of the viewing experience, personalizing the video for the viewer, and enabling new features that increase user engagement. It’s no surprise that its use cases have expanded rapidly in recent years.
It is widely used in the OTT industry (Netflix, Prime Video, BookMyShow, etc.), where high-quality video streaming without interruptions is table stakes.
In fact, one success story can be quoted for BookMyShow which has implemented ImageKit's Adaptive Bitrate Streaming (ABR) technology to increase user engagement and satisfaction in the following ways:
- ImageKit's ABR technology is used by BookMyShow to deliver high-quality images and video content to users on a variety of devices even with hardware limitations.
By adapting the bitrate and video quality dynamically based on the user requirement, ImageKit's ABR technology ensures that the videos it has to serve are 60% smaller than before, without compromising on quality, and without buffering or interruptions.
- BookMyShow has to deal with a vast landscape of different devices and screen sizes, so a standardized approach is out of the window.
This is where ImageKit's ABR technology helps, allowing BookMyShow to optimize the images and videos for different devices and screen sizes on the fly, ensuring that the content is dynamically displayed at the best quality on every device. This has improved the BookMyShow user experience, and the platform has consequently seen engagement numbers shoot up, leading to higher conversion rates at a 50% lower operating cost, and increased revenue.
How does Adaptive Bitrate streaming work?
Adaptive Bitrate Streaming renders great video experiences irrespective of the user's internet speed or device, and the process can be summarized in stages, as:
- Video Encoding: The video content is encoded at different bitrates and resolutions, creating several versions of the video, known as ‘renditions’. Each rendition is optimized for a specific range of bitrates, ranging from high to low, with higher bitrates providing better quality but requiring more bandwidth.
- Segmenting: The encoded videos are then divided into small segments, usually a few seconds in length, and a manifest file is created that contains information about all the available renditions, their respective bitrates, and their corresponding URLs. The manifest file is typically formatted in a standardized file format such as MPEG-DASH or HLS.
- Initial Bitrate: When a client device requests to play a video, the streaming server sends over the manifest file, and from it, the client chooses the lowest bitrate for the initial segment (~5 second chunk). This ensures that the video playback starts quickly and smoothly for all devices, and all network connections, guaranteeing a responsive user experience.
- Adaptive Bitrate Selection: The magic of Adaptive Bitrate Streaming is that the client-side player being used constantly monitors your internet connection and adjusts the bitrate accordingly.
As the video is being streamed, the client device continues to download new chunks, which are sent at different bitrates. If the client’s internet connection is strong, the client will request high-bitrate chunks from the server, which provide the best video quality. But if the connection slows down, the device will switch to lower-bitrate chunks, which may have lower video quality but are more likely to play without buffering.
5. Seamless Transitions: The player switches between renditions as needed based on the available bandwidth, device capabilities, and other network conditions. This switching is done seamlessly and without any interruption in video playback.
6. Buffer Management: The video player uses a buffer to temporarily store incoming video data to prevent playback interruptions due to network fluctuations, adjusting the size of the buffer dynamically based on network conditions to ensure smooth video playback.
ABR: Streaming Profiles
Adaptive Bitrate Streaming (ABR) typically uses multiple streaming profiles or “renditions” that are optimized for different internet connection speeds and device capabilities. The different streaming profiles allow the video player to automatically switch between the appropriate rendition, based on the current network conditions.
|Resolution||Fixed Bitrate Ladder (Kbps)||Per-Title Ladder (Kbps)|
Table 2. Netflix’s Per Title Encoding Ladder from 2015. (Source: https://developer.att.com/video-optimizer/docs/best-practices/adaptive-bitrate-video-streaming)
These are mostly based on Apple’s initial proposal in 2010, later refined by Netflix to apply per video. Today, the most common streaming profiles for ABR are:
- High Definition (HD): This profile is optimized for users with high-speed internet connections and powerful devices capable of displaying high-resolution video content. HD profiles typically have a bitrate of 5 Mbps or higher and resolutions of 1080p or higher.
- Standard Definition (SD): Optimized for users with lower-speed internet connections and less powerful devices. SD profiles typically have a bitrate of 1-3 Mbps and resolutions of 720p or lower.
- Mobile: Optimized for mobile devices with smaller screens and limited processing power. Mobile profiles typically have lower bitrates (less than 1 Mbps) and resolutions of 480p or lower.
- Audio-only: A special case, this profile is optimized for users with very slow internet connections or limited data plans. Audio-only profiles typically have a bitrate less than 128 Kbps and provide only audio content without any video.
ABR : Streaming Protocols
There are several streaming protocols that support Adaptive Bitrate Streaming (ABR) to deliver high-quality video content to users with varying internet speeds and device capabilities. The most popular streaming protocols that support ABR are:
- Apple HTTP Live Streaming (HLS): This is a streaming protocol developed by Apple for (initially) delivering live and on-demand video content to Apple devices, including iPhones, iPads, and Apple TVs, but one that was soon adapted for non-Apple platforms (but only with support for the proprietary Apple FairPlay DRM for digital rights management and secure video delivery).
HLS uses adaptive bitrate streaming to ensure smooth playback on devices with varying internet speeds and capabilities, and it works on the principle of segmented delivery – dividing the video content into small segments and delivering them via HTTP.
The killer feature of HLS is that it supports low-latency streaming, which is very desirable for sports events and news broadcasts which need to be as close to ‘live’ as possible to ensure a good viewer experience. It achieves low-latency streaming by using fragmented MP4 files and HTTP/2 protocol, reducing the latency to a few seconds.
2. MPEG Dynamic Adaptive Streaming over HTTP (DASH): DASH is an ABR streaming protocol developed by the Moving Picture Experts Group (MPEG). This is a vendor-neutral, open-standard streaming protocol, supporting a wide range of devices and platforms and can stream video content in various formats, including H.264, H.265, and VP9.
Other than being an open standard, the killer feature of DASH is its support for multiple DRM systems, including Widevine, PlayReady, and FairPlay. Content providers can use their preferred DRM system without restrictions to protect their video content and prevent unauthorized copying and distribution.
DASH also works by dividing the video content into small segments and delivering them via HTTP, but it uses different container formats – MPEG-2 Transport Stream (TS) and fragmented MP4 (fMP4).
3. Adobe HTTP Dynamic Streaming (HDS): HDS is an ABR streaming protocol developed by Adobe. It is used to deliver video content to Adobe Flash Player and Adobe AIR on desktop platforms. HDS works by dividing the video content into small segments and delivering them via HTTP, and is unique in that it actually supports multiple ABR container formats, including MPEG-DASH, Apple HLS, and Microsoft Smooth Streaming, and tops it all off with encryption and digital rights management (DRM) using standard protocols such as HTTPS and Widevine.
HDS provides a robust and flexible solution for delivering high-quality video content online. It supports multiple codecs, container formats, and encryption standards, and combined with its efficient use of existing HTTP infrastructure, makes it an attractive option for content providers who want to deliver a high-quality video experience to viewers across different devices and platforms.
Other notable ABR protocols include Microsoft Smooth Streaming (mostly used in Xbox consoles), QuavStreams Adaptive Streaming (entirely server-based), and Uplynk (found readily in Disney streaming apps).
Factors to consider before implementing Adaptive Bitrate Streaming
Adaptive bitrate streaming (ABR) is indeed a powerful technology that has become essential for delivering high-quality video to users with varying internet connection speeds and devices. However, it is anything but a one-size-fits-all approach.
Here are some things you should consider carefully before implementing adaptive bitrate streaming:
Video streaming protocol
Should you use MPEG-DASH, HLS, or something else? Quality bounds are usually comparable among all protocols these days, so this choice of protocol really comes down to the type of content being delivered, and your business requirements.
- If your business relies on delivering live streaming content, you require a protocol that offers true low-latency streaming – so Apple HLS would serve you best.
- If your business relies on delivering on-demand content like movies, or TV shows, your stream needs to be secured with the specific DRM for which you have a license. If that’s FairPlay, Apple HLS would serve you best. If it’s Widevine or any other, MPEG-DASH can be your Jack-of-all-trades option.
Encoding quality and bitrates
What bitrate and quality factor should you encode your content at? That depends on the nature of your content, and your audience.
- Sports events or action movies have a much higher range of motion and things happening on-screen, and so require a higher bitrate to maintain optimal image quality compared to mostly static content like news broadcasts.
- If your target audience is mostly mobile users, your ABR implementation should prioritize low-bitrate streams to accommodate slower network speeds.
Video playback framework:
The video player used to deliver the content should actually support the ABR protocol used in the ABR implementation (whether it is MPEG-DASH, Apple HLS, Adobe HDS, or any other), and be able to handle different container formats, codecs, and DRM systems used in the specific ABR implementation. The video player should also provide a user-friendly interface that allows viewers to control the video playback and adjust the quality settings manually if needed.
Some examples of HTML5 video players that support Adaptive Bitrate Streaming include:
- VideoJS – free and open-source, and the most popular. It supports both HLS, DASH, Subtitles, has multi-language support, is easily themeable, and extendable with plugins. It’s used extensively by high-profile organizations like IGN, Tumblr, LinkedIn, and The Guardian for their video needs.
- JW Player – an end-to-end solution, not just a video player. You upload your videos, and it handles everything from compression to delivery. It also supports both HLS and DASH, and multiple DRMs, offers a Mobile SDK, and supports 360 and VR video.
- BitMovin – a video player and analytics platform in one, that supports Microsoft Smooth Streaming in addition to HLS and DASH. It also supports multiple video codecs, subtitles, and both Server and Client-side Ad Insertion. It is trusted by media giants like BBC, RTL, and DAZN.
Best practices for Adaptive Bitrate Streaming
1. Choose the right bitrate ladder
The ABR “bitrate ladder” refers to the array of segments encoded at different bitrates, available from the streaming server. If the network condition improves, the video player will play a segment with better quality and larger file size, thus “climbing up” the ladder. If the bandwidth drops, the player can switch back to a lower-quality rendition, “climbing back down” the ladder.
Choosing the right bitrate ladder is a critical component of the ABR implementation, as it determines the quality of the video streams that viewers receive based on their network conditions.
- Make sure your bitrates are evenly spaced. Your bitrate ladder should be carefully designed to ensure that the bitrates are evenly spaced, typically doubling from one level to the next. This means that if the lowest bitrate is 240p, the next bitrate should be 480p, followed by 720p and 1080p or higher. This ensures that there is a smooth transition between the different bitrate levels, allowing the ABR implementation to switch between the different bitrates quickly and smoothly based on the viewer's network conditions.
- Know your audience. Your bitrate ladder should be planned based on the target audience's device capabilities and network conditions. For example, if the target audience primarily uses mobile devices with slower network speeds, the bitrate ladder should be optimized for lower bitrates, skewing towards reliable delivery more than high quality – 240p, 480p, and 720p, eschewing the 1080p option.
- Consider using Variable Bitrate (VBR) encoding to ensure that the video quality is consistent across all bitrate streams. VBR adjusts the bitrate dynamically based on the complexity of the content and the things happening concurrently on-screen, ensuring that the quality remains consistent regardless of the bitrate.
2. Choose the right segment size
- Segment size is an essential factor to consider when implementing Adaptive Bitrate Streaming (ABR). In ABR, the video is divided into small segments, typically ranging from 2 to 10 seconds in length. The size of these segments can have a significant impact on the quality of the streaming experience.
- Choose a segment size based on network bandwidth and target device. If viewers have a slow network connection, smaller segment sizes may be more appropriate to reduce buffering times and maintain a consistent streaming experience. Conversely, if viewers have a fast and stable network connection, larger segment sizes should be used to reduce overhead and improve efficiency.
As for the device criteria: mobile devices have more limited resources compared to desktops, which means smaller segment sizes to reduce the strain on the former’s CPU and memory.
- Finally, the segment size will also depend on the ABR protocol being used. For example, Apple HLS typically uses larger segment sizes (6-10 seconds) compared to MPEG-DASH, which often uses smaller segment sizes (2-4 seconds).
Choosing the ideal segment size will depend on a variety of factors, but be careful with this. Larger segments can lead to longer buffering times even if the network connection is fast enough, but if the segment size is too small, viewers may experience frequent and disruptive bitrate switches which can be jarring.
3. Choose the right encoding settings
In ABR, the video is encoded into multiple versions, each at a different bitrate, to support a range of network conditions and device capabilities. Choosing the right encoding settings for each version is essential for delivering high-quality video content efficiently.
- First of all, pick a video codec that actually supports ABR. Not all video codecs support ABR in the first place (some legacy codecs like MPEG-2 and WMV), so when encoding, pick one that does, like H.264, VP9, and AV1. These support efficient compression while maintaining high quality.
- Start with a high-quality source video that is at least in 1080p, and with a high bitrate. This ensures that the ABR-generated variants at lower bitrates will scale down gracefully, and still be of good quality.
- Set keyframe intervals based on your segment size. In ABR, keyframes are critical because they allow the video to switch seamlessly between different bitrates. When a viewer's internet connection is slow, the video player will switch to a lower bitrate version of the video. If there is no keyframe at the point where the switch occurs, the player will have to wait for the next keyframe to start decoding the new version of the video, resulting in a delay and a potential decrease in quality.
So, the keyframe interval should be set to a value that balances the quality of your video with the file size. A good rule of thumb is to set the keyframe interval to be equal to the segment duration. For example, if your ABR stream is divided into segments that are 5 seconds long, the keyframe interval should also be set to 5 seconds.
4. Monitor and optimize.
Any process requires monitoring and feedback loops to optimize. Here are some best practices for doing so for ABR:
- Use Player-side metrics: Player-side metrics are data collected from the media player, providing insight into how it handles the stream. Key metrics include buffer health, bitrate changes, rebuffering events, and playback errors. Low buffer health may cause buffering, while analyzing bitrate changes can optimize stream performance. Rebuffering events may indicate issues with the ABR algorithm or network congestion, while playback errors can help identify problems with encoding or stream delivery.
- Analyze viewer behavior: Analyze viewer behavior to determine popular videos, devices, and playback quality issues. Key metrics to watch include viewer engagement, playback quality, device usage, and view-through rate. Analyzing these metrics can help identify rising content that needs priority optimization, and popular devices/screen sizes which need to be accounted for in your ABR algorithm.
- Offer manual quality selection: ABR’s detection of network quality is not a foolproof process. If it accidentally leaves users stuck with a low-quality stream on a fast internet connection, you’re not providing an optimal viewing experience. So it is critical to offer users the option to override auto-detection and manually select the video quality via the player, to ensure that they can choose the best option themselves if needed.
- Test and optimize on multiple devices and platforms: Many cloud-based platforms exist (BitMovin and StreamEye, for example) that offer a range of features for testing your ABR streams, including multi-device testing (smartphones, tablets, gaming consoles), multi-platform testing (iOS, Android, Windows, macOS), and real-time analytics (buffer ratio, rebuffering rate, and bitrate changes, among others.)
By following these best practices, you can ensure that your video streams are optimized for different network conditions and provide a high-quality viewing experience for your users.
How ImageKit helps you deliver optimized ABR streaming
ImageKit is a cloud-based image/video optimization and digital asset management platform that can auto-optimize and auto-convert formats for both images and videos, apply transformations to them on the fly, and it can even be used to implement Adaptive Bitrate Streaming.
Here’s how ImageKit helps you with ABR streams, in three ways:
1. Simplifies adaptive stream generation with a URL-based API
ImageKit handles the busywork involved with preparing an ABR stream – encoding into chunks, segmenting and manifest file generation, generating variants or “renditions” of the chunks, and selecting adaptive bitrates and transitioning seamlessly between them – automatically for you.
It supports the two most widely-used ABR protocols, Apple HLS and MPEG-DASH. All you have to do is request ABR for a given video via URL parameters, specify streaming profiles for the variants you want to be generated, and ImageKit will handle everything for you. You can have an ABR-ready stream in seconds, instead of days or weeks of tinkering with complex pipelines and cloud infrastructures.
This example will request a manifest with 3 variants (at 480p, 720, and the source 1080p) of the source video to be generated:
For an Apple HLS manifest:
For an MPEG-DASH manifest:
It’s that simple. You can then embed this URL wherever needed in your website or app, whether you’re using a third-party video player, or just the HTML5 <video> tag.
|ABR Profiles||Resolution||Max Bitrate|
Table 3. List of supported ABR Profiles by ImageKit.io using the combination of H.264, AAC, and the MP4 container.
2. Provides a global CDN out-of-the-box
Adaptive Bitrate Streaming alone is not enough to guarantee a seamless streaming experience. Even a well-implemented ABR stream can be ruined by network factors outside your immediate control – latency, packet loss, and congestion.
This is where a Content Delivery Network (CDN) can help. A CDN is a network of geographically distributed servers that work together to deliver content to end-users. These can optimize the process of adaptive bitrate streaming (ABR) by distributing content across multiple servers, globally. CDNs can also perform load balancing, optimize routing, and cache content; all measures that reduce the load on the origin server.
Out of the box, ImageKit comes with a global CDN – AWS CloudFront – integrated. Meaning, not only can you store all your image and video assets with ImageKit, and have videos be auto-optimized and available for ABR on the fly, but you also get a full delivery pipeline that provides adaptive streams to your audience from the server closest to them, minimizing latency and buffering without any extra work on your part.
ImageKit’s CDN implementation for video supports network-based media optimization and security, making sure your ABR streams have everything they need to be performant and optimized out of the gate.
3. Ensures Compatibility
Compatibility is a crucial factor when implementing ABR streaming, as the choice of the protocol can impact which devices you can reliably support. ImageKit currently supports:
- Apple HLS – supported by most Apple devices, including iPhone, iPad, and Apple TV, as well as web browsers like Safari, Chrome, and Firefox.
- MPEG-DASH – supported by most Android devices, as well as web browsers like Chrome, Firefox, and Microsoft Edge.
Using ImageKit leaves your options wide open in terms of implementation and which device bases you want to target.
To summarize, Adaptive Bitrate Streaming (ABR) is a revolutionary technique that lets you deliver high-quality video content to a diverse audience without compromising on buffering or playback quality. ABR enables the video to be broken into segments, and then the video player can switch between different segments at different video quality tiers on the fly, without interrupting the streaming experience.
Let us recap the key benefits of ABR:
- Improved user experience: ABR ensures that the video stream is dynamically optimized for the user's device and current internet connection speed, resulting in a smooth and uninterrupted viewing experience.
- Simplified Network Stack : Almost all ABR protocols are HTTP-based (HLS, DASH, HDS, MSS), meaning they don’t have to reinvent the wheel when it comes to server allocation and caching, and don’t need to maintain a persistent connection between the server and the client. Existing HTTP infrastructure can be readily used.
- Lower bandwidth costs: ABR reduces the bandwidth required to deliver video content by moving up or down the quality ladder based on network conditions, device, and user profiles, thus reducing the load on both the server and the client.
- Increased reach: ABR can help you reach viewers at both ends of the internet speed spectrum, allowing your video content to be accessible to a wider audience.
- Better analytics: HTML5 players used for ABR provide more fine-grained analytics in the form of both player-side metrics and viewer metrics, allowing content providers to optimize the viewing experience on all fronts to improve engagement.
Implementing Adaptive Bitrate Streaming, however, is a painstaking process that involves a multi-stage pipeline. Using a cloud service like ImageKit lets you cut through all of that, generating ready-to-embed adaptive streams with HLS and DASH manifests in near-real time, using a simple and easy-to-use URL-based API.
Sign up for our forever free trial to learn how ImageKit can improve your video streaming.