All of us at some point while watching videos on the internet have watched a video that will stop every few minutes, or even seconds, interrupting the flow. Thankfully, video streaming technology has evolved and this kind of buffering has been minimized, or omitted entirely, so that we would not have to wait 30 minutes just to watch a 5 minute video.
Adaptive Bitrate Streaming (ABR) is the hero of the video streaming world, providing the best video quality and viewer experience possible. Let’s take a look at why and how this revolutionary dynamic streaming algorithm does just that.
What is ABR?
Before we get into adaptive bitrate streaming as a whole, let’s first see what the words making it up mean. Streaming is self-explanatory, seeing as though it is such a widely used term these days, but you may have not come across the term bitrate so far.
Bitrate is basically the speed at which information can travel through a network. Do not confuse this with bandwidth, which is the maximum data that can be transferred within a specific time. Buffering happens when there is higher bitrate than what the bandwidth of the internet connection on the playback device can handle.
Adaptive, on the other hand, refers to the method of storing video files into segments and stored in a range of bitrates. When the video is played, different bitrates based on the current bandwidth are requested by the playback device. What this allows the bitrate to do is sync up more effectively with the bandwidth, which allows for a smooth, high-quality stream and a better user experience.
So, now we can come to the conclusion that adaptive bitrate streaming is the ability for a video player to dynamically adjust video quality of a streaming video based on a user’s available bandwidth, device performance and network conditions. Adaptive playback comes in many formats and streaming protocols and the popularity of each format has changed over the years. With that cleared, we can now take a look at the processes that make adaptive bitrate streaming work.
How It Works
The ABR process starts with the raw video data and how it is prepared before the streaming. The video files are transcoded and segmented into small video segments after which the playback device would request these chunks of data according to how much it can handle with its current bandwidth.
Encoding and Transcoding
Video encoding is the process of converting raw video files into a standard digital format that is compatible with an application or hardware. This process includes compressing the files and changing their codec to work for the desired output.
Online video downloading and video streaming wouldn’t be possible without encoding—the files would simply be too big. Industry-leading cameras and even your own mobile device records video with a focus on capturing a quality video. However, top-notch quality leads to massive file sizes, slow download speeds and poor user experiences, which is why encoding is very important.
On the other hand, transcoding is the process of converting one type of digital media into another so your audience can play it in almost whatever format they want.
In the context of video streaming, this process ensures you’re able to deliver your videos in a format that’s compatible with the viewer’s device and internet speed (measured in megabytes per second – Mbps), which results in many versions of the original data. These changes are:
- Transrating: Adjusting the bitrate of the uncompressed file to fit different connection speeds, which may involve tweaks to the frame rate or resolution.
- Transizing: Modifying the video frame size, or resolution, to fit various screen sizes.
Segmenting
Now that we have a collection of different sizes and resolutions of the video data that a playback device can access, it is time for segmenting.
Segmenting, or also known as chunking, is the process when streaming data gets divided into a series of non-overlapping segments, usually each one lasting from 2 to 10 seconds, before it heads to the playback device. This segmentation allows for sudden adjustments to the data size sent to the playback device while the stream is ongoing.
Segmenting makes sure that the playback device does not choose an incorrect file for the available bandwidth.
Startup
Before the streaming begins, with the data prepared by the previous processes, the playback device downloads a manifest file which contains and describes all of the available chunks of data and bitrates. The manifest file provides the locations to various video qualities or renditions on the webserver and contains information about the codecs used to compress the video and bitrates which allow the player to determine the most suitable quality to play. The manifest file also can contain multiple-audio track renditions as well as links to closed-caption or subtitle tracks.
Playback
After playing each segment, when the video file is played by the playback device, the device will recalculate and request the next segment based on the new information about the bandwidth of the internet connection. This dynamic adaptation makes for a seamless streaming experience for the viewer.
Protocols
Protocols are a set of rules which determine how video data is packaged and delivered. The choice of protocol is determined in part by the specific devices you intend to stream to. Thankfully, ABR works with all the most popular and widely used protocols.
HLS
Initially developed to work only with iOS products, due to it being created by Apple, HTTP Live Streaming Protocol (HLS) is nowadays device-agnostic, which shows its versatility and popularity for both Live and Over-the-top (OTT) streaming applications. The encoding formats needed to use this HTTP-based protocol are H.264 or H.265.
MPEG-DASH
The first adaptive bitrate streaming protocol which became an international standard, the Moving Pictures Expert Group Dynamic Adaptive Streaming over HTTP (MPEG-DASH) does not require any specific encoding formats, but it cannot work natively on Apple devices.
WebRTC
The Web Real-Time Communication (WebRTC) protocol can work with ABR in the server-side and the client-side. In the server-side, the streaming server creates the different versions of the video data, while on the client-side the client machine performs this, which is also known as simulcasting. WebRTC is mostly known for its ultra-low-latency video streaming and just like MPEG-DASH, it works with Microsoft Windows and everything else except Apple devices.
RTMP
While Real-Time Messaging Protocol (RTMP) is a legacy protocol primarily used for live streaming, it can be combined with ABR techniques to deliver adaptive bitrate streaming to viewers. Content providers can use RTMP for the initial broadcast of a live stream to a media server. The media server can then transcode and package the content into ABR-compatible formats like HLS or MPEG-DASH for viewers to view on-demand later on.
What Is Progressive Streaming?
Progressive streaming is all about bettering the user experience by minimizing wait times and delivering smooth streaming. It is a technique used to deliver streaming media in a way that allows users to start consuming the content before it’s fully downloaded. Although sounding similar to how adaptive streaming works, they are not to be confused.
Why Is Adaptive Bitrate Streaming Important?
ABR paired with progressive streaming are very important parts of the contemporary digital world. But ABR improves on progressive streaming in two fields: quality and buffering. They are extensively used by popular services like Netflix, YouTube and other streaming video platforms. Let’s see why:
- Smooth Start-Up: Progressive streaming begins by delivering content in small, playable chunks, which then ABR adjusts the initial chunk’s quality to match the viewer’s connection speed and fluctuations.
- Bandwidth Usage Regulation: Progressive streaming involves delivering lower quality to higher resolutions of the same content, so ABR efficiently uses bandwidth by selecting the appropriate quality, saving resources and minimizing costs for both providers and end-users.
- Seamless Quality: Progressive streaming loads the content incrementally, or chunk by chunk, and ABR continues to adapt video quality as more chunks keep coming in. This seamless transition makes sure that viewers hardly notice quality changes.
What Is a Good Bitrate for Different Types of Streaming?
Critical to balancing quality and accessibility for streaming content is choosing the right bitrate. Let’s have a look at different types of streaming and what bitrates are ideal for them:
Video Streaming:
- Standard Definition (SD): A bitrate between 1,500 and 2,500 kbps (kilobits per second) is enough for casual streaming or mobile devices.
- High Definition (HD): Aim for a 3,500 to 5,000 kbps bitrate for 720p content and 5,000 to 10,000 kbps for 1080p content, to ensure clarity.
- 4K/Ultra HD: Consider bitrates between 15,000 and 20,000 kbps or higher, depending on the complexity, for the best quality.
Live Streaming:
- Variable Bitrate (VBR): To adapt to fluctuations in your internet connection and processing power, try using VBR, which allows for better quality during stable periods and reduces quality during network issues. The most significant difference between ABR and VBR is that a VBR encoded file always strives to keep the quality constant while ABR strives to keep the file size constant.
Game Streaming:
- Low Motion Games: Bitrates between 2,500 and 4,000 kbps work well.
- High Motion Games: Aim for 4,000 to 6,000 kbps or more for fast-paced games.
Audio Streaming:
- Standard Audio: A bitrate of 128 to 256 kbps is common for good quality of music streaming and podcasts. Most of the songs and playlists in music streaming platforms is in this bitrate range.
- High-Quality Audio: For the best audio experience bitrates of 320 kbps or lossless formats are the way to go.
JW Player and ABR
If you are in need of a comprehensive end-to-end video platform which utilizes adaptive bitrate streaming, then JW Player is the perfect choice for you.
JWP supports two formats of adaptive streaming over HTTP in HTML5 – Apple HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP or MPEG-DASH, making sure your content is delivered to your viewers seamlessly. Additionally, JWP works to fill in gaps where the browser does not natively support a codec for playing back the media.
Book a meeting with our sales team and ask them all your questions about our video solution.