support Contact Support | system status System Status
Page Contents

    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 about 20% 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 reduced 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

    The main disadvantage is that 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.

    In addition, HEVC video takes about 2-4 times longer to transcode than H.264.

    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 comprehensive 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 renditions during transcoding (with optional creation of MP4 for progressive download in addition)
    • Generation of manifests that contain references to both HEVC and AVC 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 optimal subset of 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.

    Custom CAE profiles

    The standard CAE ingest profiles do no include mixed HEVC/H.264 renditions. However, you can create a custom theme that does so. Currently, you must use the Ingest Profiles API to create these custom CAE profiles for HEVC.

    The fields (under dynamic_origin > dynamic_profile_options) that are essential are:

    video_codecs
    An array of codecs to create renditions for. The only codec values currently supported are h264 and hevc
    video_codec_options
    Options for outputs for each of the codecs specified in video_codecs. The properties of video_codec_options are objects with name of an included codec (currently h264 or hevc). The allowed properties for each of these objects are
    • min_renditions required
    • max_bitrate
    • max_first_rendition_bitrate
    • min_resolution
    • max_resolution
    • max_first_rendition_resolution

    Sample

    Below is a sample CAE profile with mixed renditions:

    {
      "name": "multi-platform-extended-dynamic-hevc-mixed-codec",
      "display_name": "Multiplatform Extended HEVC (CAE) mixed-codec",
      "description": "Deliver high quality content for a wide range content types and screen sizes including mobile, desktop and large screens.",
      "account_id": 1486906377,
      "digital_master": {
        "rendition": "passthrough",
        "distribute": false
      },
      "renditions": [],
      "packages": [],
      "dynamic_origin": {
        "renditions": [
          "default/audio64",
          "default/audio128",
        ],
        "images": [
          {
            "label": "thumbnail",
            "height": 90,
            "width": 160
          },
          {
            "label": "poster",
            "height": 720,
            "width": 1280
          }
        ],
        "dynamic_profile_options": {
          "max_renditions": 10,
          "min_renditions": 2,
          "max_bitrate": 12000,
          "max_first_rendition_bitrate": 1000,
          "max_first_rendition_resolution": {
            "width": 1280,
            "height": 720
          },
          "video_codecs": [
            "h264",
            "hevc"
          ],
          "video_codec_options": {
            "h264": {
              "min_renditions": 2,
              "max_resolution": {
                "width": 1280,
                "height": 720
              }
            },
            "hevc": {
              "min_renditions": 2,
              "max_resolution": {
                "width": 1920,
                "height": 1080
              }
            }
          }
        }
      }
    }

    Limitations

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

    1. Standard 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. Custom profiles can be created to include both HEVC and H.264 renditions. See the Custom CAE profiles section above.
    2. Only AAC audio is supported, no support for EAC3 or AC3 audio codec with HEVC.
    3. HDR and 10-bit video is not supported.
    4. Media UI currently displays all the renditions and does not display the codec info next to each rendition.

    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"
            ],
            "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"
            ],
            "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": 3200,
              "max_first_rendition_bitrate": 200,
              "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/video450",
              "default/video700",
              "default/video900",
              "default/video1200",
              "default/video2000",
              "default/video2500",
              "default/video3500",
              "default/video3800",
              "default/video300hevc",
              "default/video550hevc",
              "default/video1000hevc",
              "default/video1300hevc",
              "default/video1600hevc",
              "default/video2850hevc",
              "default/audio64",
              "default/audio128"
            ],
            "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/video450",
              "default/video700",
              "default/video900",
              "default/video1200",
              "default/video2000",
              "default/video2500",
              "default/video3500",
              "default/video3800",
              "default/video300hevc",
              "default/video550hevc",
              "default/video1000hevc",
              "default/video1300hevc",
              "default/video1600hevc",
              "default/video2850hevc",
              "default/progressive2000",
              "default/audio64",
              "default/audio128"
            ],
            "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/video300hevc",
              "default/video550hevc",
              "default/video1000hevc",
              "default/video1300hevc",
              "default/video1600hevc",
              "default/video2850hevc",
              "default/progressive2000",
              "default/audio64",
              "default/audio128"
            ],
            "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 13 Oct 2020