Context Aware Encoding

Product(s)
Video Cloud
Role(s)
API Developer
Task(s)
Add Videos/Assets
Topic(s)
Dynamic Delivery
Ingest Profiles
API(s)
Dynamic Ingest API
Ingest Profiles API

In this topic, you will learn how to use Context Aware Encoding (CAE) to ingest your video content into Video Cloud.

Introduction

Context Aware Encoding is a technology developed by Brightcove that uses machine learning to optimize encoding settings on a per-content item and delivery context basis. CAE is specifically designed to reduce the storage and bandwidth costs associated with video delivery, but without compromising visual quality. For additional information, please see Overview of Context Aware Encoding.

Limitations

The following features are not currently supported:

  • Advanced Codec Support (H.265, VP9, etc.)

Getting started

Pre-requisites

Customers who wish to utilize Context Aware Encoding should meet the following requirements:

  1. Video Cloud customer
  2. Dynamic Delivery is enabled for their Video Cloud account
  3. They no longer use the legacy Brightcove APIs
  4. Comfortable using the Ingest Profiles API and the Dynamic Ingest API

Note: Context Aware Encoding is a feature that is not available to all Video Cloud customers. If you have questions about whether or not you can utilize Context Aware Encoding, please contact your Account Manager.

CAE presets

By general release of the service, we intend to support three primary use-cases which are in turn encapsulated by three “presets”. The presets consist of ingest profile settings, which are coupled to CAE optimizations tuned for the specific profile.

CAE Presets
Name Description Simple Use Case
multi-platform-standard-dynamic Resolution capped at 720p and bitrate at 2 MBPS General use. For delivery to a range of desktop and mobile devices
multi-platform-extended-dynamic Adds 1080p rendition and extends max bitrate to ~4 Mbps Use when 1080p quality is critical. For example, customers delivering HD content to large screens
low-bandwidth-dynamic Shifts encode ladder towards lower bitrate renditions. Capped at 720p For use-cases and regions where scarce bandwidth is a core concern

Using Presets to Encode Content

Once your account has been enabled for CAE, the three profiles listed above will be available to you in the upload tool and ingest profiles sections of studio. By the same token, these profiles can be used with the Dynamic Ingest API, like any other ingest profile.

Preset Details

A subset of the settings for each of the CAE profiles is listed below.

Multiplatform Standard

(Last updated: 7/12/17)

"dynamic_profile_options":
{
      "min_renditions": 2,
      "max_renditions": 6,
      "max_resolution": {
        "width": 1280,
        "height": 720
      },
      "max_bitrate": 2400,
      "max_first_rendition_bitrate": 400,
      "max_frame_rate": 30,
      "keyframe_rate": 1,
      "select_baseline_profile_configuration": true,
}

Multiplatform Extended

"dynamic_profile_options":
{
      "min_renditions": 3,
      "max_renditions": 6,
      "max_resolution": {
        "width": 1920,
        "height":1080
      },
      "max_bitrate": 4200
      "max_first_rendition_bitrate": 400,
      "max_frame_rate": 30,
      "keyframe_rate": 1,
      "select_baseline_profile_configuration": true,
}

Bandwidth Limited

(Last updated: 7/12/17)

"dynamic_profile_options":
{
      "min_renditions": 2,
      "max_renditions": 6,
      "max_resolution": {
        "width": 1280,
        "height": 720
      },
      "max_bitrate": 1800
      "max_first_rendition_bitrate": 200,
      "max_frame_rate": 30,
      "keyframe_rate": 1,
      "select_baseline_profile_configuration": true,
}

Sample CAE Profile

{
 "id": "1234567890",
 "version": 1,
 "name": "custom-cae-profile",
 "description": "My custom CAE profile",
 "account_id": 40000000001,
 "brightcove_standard" : false,
 "digital_master": {
   "rendition": "passthrough",
   "distribute": false
 },
 "dynamic_origin": {
   "renditions": [
     "default/audio64",
     "default/audio96",
     "default/audio128",
     "default/audio192"
   ],
   "dynamic_profile_options": {
     "min_renditions": 3,
     "max_renditions": 6,
     "max_resolution": {
       "width": 1920,
       "height": 1080
     },
     "max_bitrate": 4200,
     "max_first_rendition_bitrate": 400,
     "max_frame_rate": 30,
     "keyframe_rate": 1,
     "select_baseline_profile_configuration": true,
     "min_ssim": 0.95,
     "video_configurations": [
         {"width": 1280, "height": 720},
         {"width": 960,  "height": 540},
         {"width": 640,  "height": 360}
     ]
   },
   "images": [
     {
       "label": "poster",
       "height": 720,
       "width": 1280
     },
     {
       "label": "thumbnail",
       "height": 90,
       "width": 160
     }
   ]
 }
}

For additional detail, please see the docs for the Ingest Profiles API and Dynamic Ingest API.

Adding MP4 renditions

If you want to have downloadable progressive (MP4) renditions for your video, you can specify them in the dynamic_origin.renditions array:


  "dynamic_origin": {
    "renditions": [
      "default/audio64",
      "default/audio96",
      "default/audio128",
      "default/audio192",
      "default/progressive700",
      "default/progressive2500"
    ],

The MP4 renditions you can include are shown below - see Standard Ingest Profiles for Dynamic Delivery and Context Aware Encoding for full details of these renditions.

Available MP4 renditions