Radiant Media Player

HEVC (H.265 video) support



HEVC support documentation sections


Why we need a new generation of video codecs?

With the advent of UHD (4K), HFR (high frame rate) and HDR content bandwidth requirements to deliver media content over the Internet with classic video codecs (meaning H.264 or VP9) have exploded. Many providers face significant bandwidth-related operational cost increases.

The need for a new generation of video codecs able to encode media content at a reasonable bitrate for 4K (or even 8K) content is blatant. As of mid-2017 two solutions are emerging to address this issue:

  • HEVC which promises to reduce output file sizes by up to 50% for the same quality as AVC (H.264). HEVC adoption has been slow so far and many licensing concerns (mostly due to HEVC being significantly more expensive than AVC) has put HEVC in a tough spot. However things may change with Apple providing support for HEVC with HLS on iOS 11 and macOS High Sierra.
  • AV1 from the Alliance for Open Media which is being finalised (as of June 2017). AV1 is an open and royalty free video codec (much like VP9) and backed by many Internet giants like Google, Amazon and Microsoft. Many wishes for AV1 to become the new standard for online video codecs but we can bet the road to significant adoption is going to be a bumpy ride especially that HEVC-capable devices are already shipping.

HEVC support in Radiant Media Player

Radiant Media Player relies on the device it runs on to provide HEVC decoding support in order to render HEVC encoded content with HTML5 video. This is true for native HTML5 video rendering (e.g. progressive download) or through media source extensions (HLS, DASH).

As of October 2017 HEVC support in Radiant Media Player is available with HLS-fmp4 on iOS 11+, Safari 11+ for macOS High Sierra and MS Edge for Windows 10 (assuming a HEVC-capable graphic card is available). For MP4 progressive download or DASH only MS Edge for Windows 10 is currently supported.

We recommend using HLS-fmp4 for better HEVC support. Because HEVC is still not widely available we need to use a combination of HEVC & AVC encoded content to reach a large range of devices. We have 2 options:

Option 1: HLS/DASH manifest holding both HEVC & AVC variants. When both HEVC & AVC variants are available in a HLS/DASH manifest the player will automatically pick the appropriate format based on device capabilities. However this option may not always be available among streaming service providers and may restrict support for older devices that do not support HLS-fmp4.

Option 2: use a combination of hls & hlsHevc (or mp4 & mp4Hevc) properties of the bitrates object. For newer devices that support HLS-fmp4 with HEVC the bitrates.hlsHevc URL will be used and for devices that do not support HLS-fmp4 with HEVC but do support classic HLS-ts with AVC the bitrates.hls URL will be used.


Player setting examples for HEVC support

Example of bitrates object for HLS with option 2:

var bitrates = {
  hlsHevc: 'https://www.rmp-streaming.com/media/hls/fmp4/hevc/playlist.m3u8',
  hls: 'https://dqwp3xzzbfhtw.cloudfront.net/vod/smil:bbb.smil/playlist.m3u8'
};

Example of bitrates object for MP4 progressive download with option 2:

var bitrates = { 
  mp4Hevc: [
    'https://www.rmp-streaming.com/media/ed-hevc-360p-2m.mp4'
  ],
  mp4: [
    'https://www.rmp-streaming.com/media/bbb-360p.mp4'
  ]
};

In the above examples content is different to clearly identify which is HEVC-encoded and which is not.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License.