How to tell if my video file is HDR video content?

Radiant Media Player Blog

Last updated on October 13, 2023 - Back to blog home page

My video is HDR video ... I guess

This blog post is assuming you have basic knowledge about online video, video encoding and HDR video. If not, you can start with our blog post: Demystifying HDR Video.

Now let's say we have a video file - a random video file (MP4, MOV, MKV ...) - it could be a master file coming from a studio or a video shot from a smartphone. You were told or you are suspecting this video file is HDR video but how can you make sure of it? If you do not have a HDR video on hands you can download a sample here.

Only proper exploration of the video file metadata will tell us if this file is holding HDR video content. This will not tell us if this is "good art" in HDR video content, only a visual inspection of content can tell us that, but at least we can now tell for sure if this video file is indeed HDR video content.

MediaInfo to the rescue!

This free video tool MediaInfo is no secret for those working in the online video industry, but it can tell us if a video is a HDR video ... assuming we are looking at the right field(s)! Example:

MediaInfo data for a HDR video

The key field we want to look at is Transfer characteristics (orange in the above image). This field is the HDR king maker (or not). If you have HDR video content, this field should read:

  • PQ (or SMPTE ST 2084): it is the basis of HDR video formats (such as HDR10, HDR10+ and Dolby Vision)
  • or HLG (most commonly found in broadcasting)

This is the key takeaway here: HDR is not about bit depths, color primaries or resolution - it is about transfer functions.

ITU-R Recommendation BT.2100 (Rec. 2100 or BT.2100) introduced high-dynamic-range television (HDR-TV) by recommending the use of the perceptual quantizer (PQ) or hybrid log–gamma (HLG) transfer functions instead of the traditional "gamma" previously used for SDR-TV. Note: we are talking about BT.2100 not BT.2020 - so to answer your question, yes there can be SDR video content with BT.2020 color primaries. While BT.2020 could be a hint that we are dealing with HDR Video content, it is not enough to conclude so.

Those are the other fields in MediaInfo output (dotted blue in the above image) that you may want to look at to rapidly identify HDR video content:

  • Format: know that HDR video is not tied to a specific video codec, you can have HDR video encoded with H.264, H.265, ProRes, VP9 or AV1. Modern codecs like H.265, AV1 or Apple ProRes are however more commonly found with HDR video content.
  • Resolution: BT.2100 specifies three resolutions of 1920×1080 ("Full HD"), 3840×2160 ("4K UHD"), and 7680×4320 ("8K UHD"). Technically you can have SD content (like 640x360 resolution) in HDR, but this would generally be part of an ABR ladder when streaming with HLS or MPEG-DASH - HDR video content is not meant to be delivered in SD resolutions
  • Color primaries: it has to be BT.2020 for HDR video content (if you see BT.709 then this is SDR video content)
  • (Color) Bit depth: it has to be 10-bits or 12-bits for HDR video content - if you are seeing 8-bits, then this is SDR video content
  • Encoding settings: in our example x265 was used to encode content. The following x265 settings can tell us about HDR specifics:
    • --hdr10, --no-hdr10: Force signalling of HDR10 parameters in SEI packets.
    • --hdr10-opt, --no-hdr10-opt: Enable block-level luma and chroma QP optimization for HDR10 content as suggested in ITU-T H-series Recommendations Supplement 15. Source video should have HDR10 characteristics such as 10-bit depth 4:2:0 with Bt.2020 color primaries and SMPTE ST.2084 transfer characteristics.
    • --dhdr10-info <filename>: Inserts tone mapping information as an SEI message. It takes as input, the path to the JSON file containing the Creative Intent Metadata to be encoded as Dynamic Tone Mapping into the bitstream.
    • --dhdr10-opt, --no-dhdr10-opt: Limits the frames for which tone mapping information is inserted as SEI message. Inserts SEI only for IDR frames and for frames where tone mapping information has changed.

ffprobe to the rescue of the rescue!

But what if MediaInfo does not tell us anything about HDR? Or what if we want a second opinion? You can try ffprobe instead! Again, I am assuming you know the basics of FFmpeg and its media exploration tool called ffprobe. Here is the command line we used to output metadata about our video:

ffprobe -v quiet -show_streams -select_streams v:0 video.mp4

Here is the actual output:

MediaInfo data for a HDR video

The main field we want to look at (orange in the above image) is color_transfer. This is the HDR king maker (or not). If this field holds smpte2084 (PG) or arib-std-b67 (HLG) then you are indeed facing HDR video content.

These other fields (dotted blue in the above image) can hint at HDR video content but remember unless you can confirm the exact nature of the transfer function PG (smpte2084) or HLG (arib-std-b67) you cannot tell for sure if it is HDR video content:

  • codec_name: HDR video content generally uses modern video codecs (H.265/HEVC, AV1 or Apple ProRes)
  • width/height: typical video resolutions for HDR video content are 1920×1080 ("Full HD"), 3840×2160 ("4K UHD") and 7680×4320 ("8K UHD").
  • pix_fmt: pixel format - in our example this is yuv420p10le - this means YUV color model with 4:2:0 chroma subsampling (this is the most common chroma subsampling found in online video but note that studio master files can be encoded with 4:2:2 or 4:4:4 chroma subsampling) and planar 10 bits color depth (the "p10" part)
  • color_primaries: for HDR video this will be bt2020 (if you see bt709 then this is SDR video content)

Now that I have HDR video content what comes next?

You are going to need a HDR-compatible display to enjoy the HDR features held in the video. This could be a computer display or TV. Note that your HDR display is likely having a VESA HDR rating. Delivering HDR video content is not just about authoring or encoding your video with HDR metadata, it is also making sure that those HDR metadata will be properly presented to the viewer. A studio-grade master file can be authored in HDR at 1000 nits, but a HDR display may only be able to display up to 500 nits. Therefore, making true HDR video content is really a work that starts with the cam-corder and ends with the viewing device. This is why delivering HDR video is so "complex" those days because all participants in the video delivery chain must be fluent with HDR technology.

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

©2015-2023 Radiant Media Player. All Rights Reserved.