support Contact Support | system status System Status

HEVC Video

This topic covers Video Cloud support for HEVC video.

Introduction

Advantages of HEVC

High Efficiency Video Coding (HEVC), also known as H.265, is a video compression standard, designed as a successor to the widely used Advanced Video Coding (AVC/H.264). In comparison to AVC, HEVC offers from 25% to 50% better data compression at the same level of video quality, or substantially improved video quality at the same bit rate.

The benefits of this improved compression include bandwidth usage, enabling higher video quality at a lower bitrate, and reduced time to first frame (TTFF), all leading to increased end viewer satisfaction.

Disadvantages

There is only one disadvantage: because it is a new technology, HEVC video is not yet widely supported by clients (meaning device + OS + browser/app). In addition, some clients are capable of switching between HEVC and AVC segments during playback, while others are not.

Availability

HEVC support is a paid add-on for Video Cloud. If you are interested in HEVC support, contact your Account Manager.

Brightcove's HEVC solution

To provide you with benefits of HEVC while still allowing viewers using technology that does not support it, Brightcove has developed a hybrid solution that both supports older, non-HEVC clients, and also optimizes bandwidth use. There are multiple parts to this solution:

  • Creation of both HEVC and AVC encoded segments during transcoding (with optional creation of MP4 for progressive download in addition)
  • Generation of manifests that contain both HEVC and AVC links for all renditions:
    • HLS: mixed variant streams (ordered by bitrate)
    • DASH: separate adaptation sets for HEVC and H.264, along with supplemental properties declaring them as switchable
  • Filtering logic based on the viewer client type:
    • removes HEVC streams from manifests if requesting device is a legacy, non-HEVC capable device
    • removes H.264 streams from manifests heading to HEVC capable non-switchable devices
    • leaves both HEVC and H.264 streams if devices are capable of decoding both codecs and switching between them

Supported clients

Currently, HEVC is supported end-to-end on the following clients using Brightcove web or native device players:

Supported Web Clients for HEVC
Brightcove Web Player
OS Browser
MacOS 10.13+ Safari
iOS 11+ Safari
Apple TV via Airplay
Windows 10 Edge (legacy version with plugin)
Supported Devices for HEVC
Brightcove Native Device SDK Players
SDK OS
iOS SDK iOS 11+
tvOS SDK tvOS
Android SDK Android API level 21 (Lollipop version 5.0) and higher [1-1]

Notes

HEVC ingest profiles

If HEVC is enabled for your account, to get HEVC renditions for playback, all you have to do is choose one of the HEVC ingest profiles (Context Aware Encoding or Dynamic Delivery) when you ingest your videos using the Upload module or the Dynamic Ingest API:

HEVC Ingest Profiles
HEVC Ingest Profiles

The full JSON details of these profiles is included below. We recommend that you use CAE (Context Aware Encoding) profiles to create the best rendition set for your source and optimize storage. Since CAE requires somewhat longer processing time to inspect the source, if getting a publishable rendition as quickly as possible is your priority, you can create a custom ingest profile with the Fast Publish option.

Note that if, for the fast publish option or some other reason, you need to create a custom HEVC profile, you will have to use either the Advanced Editor in the Studio Admin pages, or the Ingest Profiles API. HEVC renditions will not show up in the Simple Editor in Studio. You will find the available Dynamic Delivery renditions below.

Limitations

Below are current limitations on HEVC support - note that these will change as we make enhancements.

  • CAE ingest profiles currently include HEVC renditions - these should only be used in cases where you know that you will be delivering videos only to HEVC-capable devices. Future releases will add profiles that include both HEVC and AVC renditions.
  • No support for apps built using the Android SDK in the initial release. This will be added in a future release.
  • Only AAC audio is supported, no support for EAC3 or AC3 audio codec with HEVC.
  • HDR and 10-bit video is not supported.
  • Media UI currently displays all the renditions and does not display the codec info next to each rendition.
  • The billing UI in Studio will not show HEVC transcoding usage. However, the backend system is tracking HEVC GB separately and will be sending the invoice as part of the normal process. The billing UI will be updated in a later release.

Appendix 1: HEVC ingest profiles

Below are the full properties of the HEVC profiles in JSON.

Context Aware Encoding (CAE) profiles

Multiplatform Extended HEVC (CAE)

  {
      "version": 1,
      "name": "multi-platform-extended-dynamic-hevc",
      "display_name": "Multiplatform Extended HEVC (CAE)",
      "description": "Deliver high quality content for a wide range content types and screen sizes including mobile, desktop and large screens.",
      "account_id": -1,
      "brightcove_standard": true,
      "date_created": 1581706195164,
      "date_last_modified": 1581706195164,
      "digital_master": {
        "rendition": "passthrough",
        "distribute": false
      },
      "renditions": [
        
      ],
      "packages": [
        
      ],
      "dynamic_origin": {
        "renditions": [
          "default/audio64",
          "default/audio128",
          "default/audio96",
          "default/audio192"
        ],
        "images": [
          {
            "label": "thumbnail",
            "height": 90,
            "width": 160
          },
          {
            "label": "poster",
            "height": 720,
            "width": 1280
          }
        ],
        "dynamic_profile_options": {
          "min_renditions": 2,
          "max_renditions": 8,
          "min_resolution": {
            "width": 320,
            "height": 180
          },
          "max_resolution": {
            "width": 1920,
            "height": 1080
          },
          "max_frame_rate": 30,
          "max_bitrate": 4200,
          "max_first_rendition_bitrate": 250,
          "video_codec": "hevc",
          "fixed_frame_rate": true,
          "bitrate_cap_to_bitrate_ratio": 1.5,
          "buffer_size_to_bitrate_ratio": 2,
          "bitrate_cap_offset": 0,
          "buffer_size_offset": 0,
          "sample_aspect_ratio": "1:1"
        },
        "hevc": true
      },
      "id": "5e470e014b23617ad079c486"
    }

Multiplatform Extended HEVC (CAE) with MP4

{
      "version": 1,
      "name": "multi-platform-extended-dynamic-hevc-with-mp4",
      "display_name": "Multiplatform Extended HEVC (CAE) with MP4",
      "description": "Deliver high quality content for a wide range content types and screen sizes including mobile, desktop, large screens, and syndication.",
      "account_id": -1,
      "brightcove_standard": true,
      "date_created": 1581706195164,
      "date_last_modified": 1581706195164,
      "digital_master": {
        "rendition": "passthrough",
        "distribute": false
      },
      "renditions": [
        
      ],
      "packages": [
        
      ],
      "dynamic_origin": {
        "renditions": [
          "default/audio64",
          "default/audio128",
          "default/progressive2000",
          "default/audio96",
          "default/audio192"
        ],
        "images": [
          {
            "label": "thumbnail",
            "height": 90,
            "width": 160
          },
          {
            "label": "poster",
            "height": 720,
            "width": 1280
          }
        ],
        "dynamic_profile_options": {
          "min_renditions": 2,
          "max_renditions": 8,
          "min_resolution": {
            "width": 320,
            "height": 180
          },
          "max_resolution": {
            "width": 1920,
            "height": 1080
          },
          "max_frame_rate": 30,
          "max_bitrate": 4200,
          "max_first_rendition_bitrate": 250,
          "video_codec": "hevc",
          "fixed_frame_rate": true,
          "bitrate_cap_to_bitrate_ratio": 1.5,
          "buffer_size_to_bitrate_ratio": 2,
          "bitrate_cap_offset": 0,
          "buffer_size_offset": 0,
          "sample_aspect_ratio": "1:1"
        },
        "hevc": true
      },
      "id": "5e470e0c4c881c16fffdb88d"
    }

Dynamic Delivery Profiles

Multiplatform Extended Static H.264 + HEVC

{
      "version": 1,
      "name": "multi-platform-extended-static-mixed-codec",
      "display_name": "Multiplatform Extended Static H.264 + HEVC",
      "description": "Deliver high quality content for a wide range content types and screen sizes including mobile, desktop and large screens.",
      "account_id": -1,
      "brightcove_standard": true,
      "date_created": 1581706195164,
      "date_last_modified": 1581706195164,
      "digital_master": {
        "rendition": "passthrough",
        "distribute": false
      },
      "renditions": [
        
      ],
      "packages": [
        
      ],
      "dynamic_origin": {
        "renditions": [
          "default/video1600hevc",
          "default/audio128",
          "default/video550hevc",
          "default/video1000hevc",
          "default/video300hevc",
          "default/video700",
          "default/video3500",
          "default/video2000",
          "default/video2500",
          "default/video2850hevc",
          "default/video450",
          "default/video900",
          "default/audio64",
          "default/video3800",
          "default/audio96",
          "default/video1200",
          "default/video1300hevc",
          "default/audio192"
        ],
        "images": [
          {
            "label": "thumbnail",
            "height": 90,
            "width": 160
          },
          {
            "label": "poster",
            "height": 720,
            "width": 1280
          }
        ],
        "hevc": true
      },
      "id": "5e46e57f305eb2517f27a543"
    }

Multiplatform Extended Static H.264 + HEVC with MP4

{
      "version": 1,
      "name": "multi-platform-extended-static-mixed-codec-with-mp4",
      "display_name": "Multiplatform Extended Static H.264 + HEVC with MP4",
      "description": "Deliver high quality content for a wide range content types and screen sizes including mobile, desktop and large screens, and syndication.",
      "account_id": -1,
      "brightcove_standard": true,
      "date_created": 1581706195164,
      "date_last_modified": 1581706195164,
      "digital_master": {
        "rendition": "passthrough",
        "distribute": false
      },
      "renditions": [
        
      ],
      "packages": [
        
      ],
      "dynamic_origin": {
        "renditions": [
          "default/video1600hevc",
          "default/audio128",
          "default/video550hevc",
          "default/video1000hevc",
          "default/video300hevc",
          "default/video700",
          "default/progressive2000",
          "default/video3500",
          "default/video2000",
          "default/video2500",
          "default/video2850hevc",
          "default/video450",
          "default/video900",
          "default/audio64",
          "default/video3800",
          "default/audio96",
          "default/video1200",
          "default/video1300hevc",
          "default/audio192"
        ],
        "images": [
          {
            "label": "thumbnail",
            "height": 90,
            "width": 160
          },
          {
            "label": "poster",
            "height": 720,
            "width": 1280
          }
        ],
        "hevc": true
      },
      "id": "5e46e59b135b6662f386559d"
    }

Multiplatform Extended HEVC with MP4

{
      "version": 1,
      "name": "multi-platform-extended-static-hevc-with-mp4",
      "display_name": "Multiplatform Extended HEVC with MP4",
      "description": "Deliver high quality content for a wide range content types and screen sizes including mobile, desktop, large screens, and syndication.",
      "account_id": -1,
      "brightcove_standard": true,
      "date_created": 1581706195164,
      "date_last_modified": 1581706195164,
      "digital_master": {
        "rendition": "passthrough",
        "distribute": false
      },
      "renditions": [
        
      ],
      "packages": [
        
      ],
      "dynamic_origin": {
        "renditions": [
          "default/audio64",
          "default/video1600hevc",
          "default/audio128",
          "default/video550hevc",
          "default/video1000hevc",
          "default/video300hevc",
          "default/progressive2000",
          "default/video2850hevc",
          "default/audio96",
          "default/video1300hevc",
          "default/audio192"
        ],
        "images": [
          {
            "label": "thumbnail",
            "height": 90,
            "width": 160
          },
          {
            "label": "poster",
            "height": 720,
            "width": 1280
          }
        ],
        "hevc": true
      },
      "id": "5e46e57e708a441e00a7ba1a"
    }

Appendix 2: HEVC Dynamic Delivery Renditions

Below are the full properties of the HEVC renditions in JSON.

Default HEVC 300

{
      "id": "default/video300hevc",
      "version": 0,
      "name": "Default HEVC 300",
      "kind": "video",
      "account_id": "default",
      "created_at": "2020-02-20T17:57:49.622898302Z",
      "updated_at": "2020-02-20T17:57:49.622898302Z",
      "encoding_settings": {
        "aspect_mode": "preserve",
        "decoder_bitrate_cap": 450,
        "decoder_buffer_size": 600,
        "fixed_keyframe_interval": true,
        "fragment_duration": 2000,
        "height": 270,
        "keyframe_rate": 1,
        "segment_seconds": 2,
        "speed": 3,
        "video_bframes": 3,
        "video_bitrate": 300,
        "video_codec": "hevc",
        "video_codec_profile": "main",
        "video_reference_frames": 6,
        "width": 480
      }
    }

Default HEVC 550

{
      "id": "default/video550hevc",
      "version": 0,
      "name": "Default HEVC 550",
      "kind": "video",
      "account_id": "default",
      "created_at": "2020-02-20T17:58:08.602132077Z",
      "updated_at": "2020-02-20T17:58:08.602132077Z",
      "encoding_settings": {
        "aspect_mode": "preserve",
        "decoder_bitrate_cap": 825,
        "decoder_buffer_size": 1100,
        "fixed_keyframe_interval": true,
        "fragment_duration": 2000,
        "height": 360,
        "keyframe_rate": 1,
        "segment_seconds": 2,
        "speed": 3,
        "video_bframes": 3,
        "video_bitrate": 550,
        "video_codec": "hevc",
        "video_codec_profile": "main",
        "video_reference_frames": 6,
        "width": 640
      }
    }

Default HEVC 1000

{
      "id": "default/video1000hevc",
      "version": 0,
      "name": "Default HEVC 1000",
      "kind": "video",
      "account_id": "default",
      "created_at": "2020-02-20T17:58:24.768036423Z",
      "updated_at": "2020-02-20T17:58:24.768036423Z",
      "encoding_settings": {
        "aspect_mode": "preserve",
        "decoder_bitrate_cap": 1500,
        "decoder_buffer_size": 2000,
        "fixed_keyframe_interval": true,
        "fragment_duration": 2000,
        "height": 432,
        "keyframe_rate": 1,
        "segment_seconds": 2,
        "speed": 3,
        "video_bframes": 3,
        "video_bitrate": 1000,
        "video_codec": "hevc",
        "video_codec_profile": "main",
        "video_reference_frames": 6,
        "width": 768
      }
    }

Default HEVC 1300

{
      "id": "default/video1300hevc",
      "version": 0,
      "name": "Default HEVC 1300",
      "kind": "video",
      "account_id": "default",
      "created_at": "2020-02-20T17:58:51.222403657Z",
      "updated_at": "2020-02-20T17:58:51.222403657Z",
      "encoding_settings": {
        "aspect_mode": "preserve",
        "decoder_bitrate_cap": 1950,
        "decoder_buffer_size": 2600,
        "fixed_keyframe_interval": true,
        "fragment_duration": 2000,
        "height": 576,
        "keyframe_rate": 1,
        "segment_seconds": 2,
        "speed": 3,
        "video_bframes": 3,
        "video_bitrate": 1300,
        "video_codec": "hevc",
        "video_codec_profile": "main",
        "video_reference_frames": 6,
        "width": 1024
      }
    }

Default HEVC 1600

{
      "id": "default/video1600hevc",
      "version": 0,
      "name": "Default HEVC 1600",
      "kind": "video",
      "account_id": "default",
      "created_at": "2020-02-20T18:00:00.347383018Z",
      "updated_at": "2020-02-20T18:00:00.347383018Z",
      "encoding_settings": {
        "aspect_mode": "preserve",
        "decoder_bitrate_cap": 2400,
        "decoder_buffer_size": 3200,
        "fixed_keyframe_interval": true,
        "fragment_duration": 2000,
        "height": 720,
        "keyframe_rate": 1,
        "segment_seconds": 2,
        "speed": 3,
        "video_bframes": 3,
        "video_bitrate": 1600,
        "video_codec": "hevc",
        "video_codec_profile": "main",
        "video_reference_frames": 6,
        "width": 1280
      }
    }

Default HEVC 2850

{
      "id": "default/video2850hevc",
      "version": 0,
      "name": "Default HEVC 2850",
      "kind": "video",
      "account_id": "default",
      "created_at": "2020-02-20T18:00:42.036123319Z",
      "updated_at": "2020-02-20T18:00:42.036123319Z",
      "encoding_settings": {
        "aspect_mode": "preserve",
        "decoder_bitrate_cap": 4275,
        "decoder_buffer_size": 5700,
        "fixed_keyframe_interval": true,
        "fragment_duration": 2000,
        "height": 1080,
        "keyframe_rate": 1,
        "segment_seconds": 2,
        "speed": 3,
        "video_bframes": 3,
        "video_bitrate": 2850,
        "video_codec": "hevc",
        "video_codec_profile": "main",
        "video_reference_frames": 6,
        "width": 1920
      }
    }

Page last updated on 05 May 2020