Overview of Context Aware Encoding

Product(s)
Video Cloud
Role(s)
Studio User
Player Developer
API Developer
Topic(s)
Dynamic Delivery
General Info
Ingest Profiles

This topic provides an overview of Context Aware Encoding.

Introduction

We are all watching more video online - on our phones, tablets, TVs, at work, on the train, while walking down the street, etc. As streaming services scale up to meet the demand for more content across more screens, the storage and bandwidth costs of delivering video to those screens rises. Efficiently delivering high-quality video at scale to a vast range of devices is central to what we do at Brightcove. Context Aware Encoding can drastically reduce the cost of storing and streaming video, while improving playback quality for viewers. Context Aware Encoding uses advanced content analysis algorithms to determine the number and quality of the renditions to create for each video. In most cases, this results in smaller video files (and smaller CDN bills) while maintaining visual quality.

Adaptive bitrate streaming - how we got here

Most video delivered over the internet today uses Adaptive Bitrate (ABR) streaming technologies, such as HLS and MPEG-DASH, to optimize video playback. An ABR stream contains multiple copies of the same video, called “renditions,” which are encoded at different resolutions and bitrates. When a user presses the play button, the player receives a manifest that lists the renditions available for playback. The player chooses the appropriate rendition to play based on several factors, including the bandwidth currently available, buffer fullness, and the size of the playback window. As these factors change during the course of playback, the player can switch up to a higher-quality rendition or down to a lower-quality one, ensuring that the viewer gets the best possible video quality with minimal buffering.

Streaming services generally create a single encoding configuration for all of their content -- a predetermined set of ABR renditions, often called a “ladder,” that is used to encode every piece of content. Deciding on the list of resolutions and bitrates to put into an ABR ladder is an inexact science. In some cases, ABR ladders can be tuned to a specific use case - animation, for example, can be encoded at lower bitrates as the content is generally less complex.

The problem with static ABR

Reaching a wide audience forces streamers into a one-size-fits-all scenario, using a single bitrate ladder to encode a variety of content types for a variety of end-user devices. In most cases, a single ABR ladder is being used to encode HD sports content for TV playback as well as cartoons for playback on phones.

The problem? Using a single bitrate ladder often results in inconsistent quality between different types of content. High-complexity video such as sports content requires more bits to achieve an acceptable viewing experience than animation. For example, if you skew your ABR ladder towards higher bitrates to ensure your sports content looks great, you’re wasting storage and bandwidth when using that same profile to encode animated content. That wasted storage and bandwidth costs real money.

Optimizing ABR streams with Context Aware Encoding

That’s where Brightcove’s Context Aware Encoding technology comes in. Instead of using one ABR ladder for all content, Context Aware Encoding analyzes each source video and intelligently builds a custom bitrate ladder (set of renditions) for each piece of content. In addition, Context Aware Encoding takes into account constraints associated with the delivery network and device being used to view the content. It decides how many renditions are needed and what resolutions and bitrates to use for each, while still maintaining a consistent level of quality across all titles. This results in massive savings on storage and bandwidth costs, while improving the playback experience for users.

The chart below illustrates a typical static ABR ladder alongside an example of a context aware ladder that was generated for a typical news clip.

Context Aware Encoding was able to deliver the same quality as the static ABR ladder using half as many renditions, and using lower bitrates or higher resolutions for each rendition. This has a positive impact on both playback performance and cost efficiency.

Better playback performance at lower bitrates

Using the static ABR ladder, a mobile 3G user with 1,000kbps of sustained bandwidth would peak at the 360p rendition at 900kbps. Context Aware Encoding determined that it could create a higher resolution 432p rendition at a lower bitrate - 777kbps. This rendition uses 13% fewer bits and actually delivers higher resolution and quality, as you can see in the below side-by-side comparison. In the example below, the sharper details of the Context Aware clip are noticeable in the text at the bottom, as well as the man's hair.

Similarly, a user with an economy-priced residential internet plan supplying 3,000kbps of sustained bandwidth would top out at the 720p rendition under the static ABR ladder, while they would be able to stream at full 1080p using Context Aware Encoding, delivering a Full HD experience.

Reduced storage and bandwidth costs

Encoding video to all eight renditions of the static ABR ladder generates a total of 14,750kbps of data. For a one minute video, that’s 885MB. The Context Aware ladder on the right generates only 4,950kbps. So for the same one minute video, that’s only 297MB, which represents a savings of 66% in storage costs. Since the bandwidth used depends on the number of viewers and the duration of video viewed, bandwidth savings can be even higher than those for storage. Overall, Brightcove anticipates up to 50% savings on storage and bandwidth costs. By adjusting the bitrates of the renditions to the lowest rate necessary to maintain visual quality, viewers will generally consume less bandwidth during each viewing session, providing additional savings on bandwidth costs.

Context Aware Encoding and Dynamic Delivery

Context Aware Encoding is a feature of Dynamic Delivery. Context Aware Encoding analyzes each source video and intelligently builds a custom bitrate ladder (set of renditions) for each piece of content. When a viewer presses play, Video Cloud will identify the requesting device so that we know what kind of media format it is expecting (codecs, how it needs to be packaged for delivery, what kind of DRM it uses, what closed captions it needs, which audio language, etc.). Dynamic Delivery then uses this information to process the different quality levels in real-time so that they are in the right format for the device requesting the content.

A diagram illustrating the Dynamic Delivery architecture is shown below. For more information on Dynamic Delivery, see Overview of Dynamic Delivery.

Using Context Aware Encoding in Video Cloud

From a video publishing perspective, a couple of things will appear differently inside Video Cloud Studio. First, when uploading videos using the Upload module, you will see a CONTEXT AWARE ENCODING section when selecting an ingest profile..

Note: It is possible to create custom Context Aware Encoding ingest profiles. For information, see Creating Ingest Profiles for Context Aware Encoding.

The Media module will display a green cloud icon () next to video titles that have been ingested using a Dynamic Delivery or Context Aware ingest profile. Videos ingested using a legacy ingest profile will display a grey icon ().