Does libsvtav1 Support HDR10 and HDR10+?
This article provides a direct answer regarding whether the SVT-AV1
encoder (libsvtav1) supports HDR10 and HDR10+ metadata
insertion. It outlines the capabilities of the encoder for both static
and dynamic high dynamic range (HDR) metadata and explains how to apply
these settings during the video encoding process.
HDR10 Metadata Support in libsvtav1
Yes, libsvtav1 fully supports HDR10 metadata insertion.
HDR10 relies on static metadata, specifically Mastering Display Color
Volume (MDCV) and Content Light Level (CLL) data, to instruct the
playback display on how to render HDR highlights.
When encoding with libsvtav1 (typically via FFmpeg), you
can pass this static metadata using standard parameters. To ensure HDR10
compatibility, you must also set the appropriate color space properties:
* Color Primaries: BT.2020
(-color_primaries bt2020) * Transfer
Characteristics: SMPTE ST 2084 / PQ
(-color_trc smpte2084) * Matrix
Coefficients: BT.2020 non-constant
(-colorspace bt2020nc) * Pixel Format:
10-bit depth (-pix_fmt yuv420p10le)
HDR10+ Metadata Support in libsvtav1
Yes, libsvtav1 also supports HDR10+ dynamic metadata.
Unlike HDR10, which uses a single set of mastering values for the entire
video, HDR10+ uses dynamic metadata to adjust brightness and contrast on
a frame-by-frame basis.
SVT-AV1 supports the insertion of HDR10+ metadata natively. In the
standalone SVT-AV1 encoder CLI, this is achieved using the
--dynamic-hdr10-metadata parameter, which points to a
structured JSON file containing the frame-by-frame HDR10+ metadata.
If you are using FFmpeg with libsvtav1, modern versions
of FFmpeg can automatically extract HDR10+ metadata from an input source
(such as an HEVC HDR10+ video) and pass that dynamic metadata directly
to the libsvtav1 encoder during transcoding.
Implementation Summary
To successfully encode HDR10 or HDR10+ content using
libsvtav1, ensure your source file is 10-bit and that you
explicitly define the color container parameters. For HDR10+, ensure you
have generated the dynamic metadata JSON file or are utilizing an FFmpeg
build capable of mapping dynamic side data from the source stream
directly to the SVT-AV1 encoder.