quietvoid / hdr10plus_tool

CLI utility to work with HDR10+ in HEVC files.
MIT License
301 stars 33 forks source link

hdr10plus_tool extract metadata format #47

Closed lashgar closed 2 years ago

lashgar commented 2 years ago

I use hdr10plus_tool_extract to convert the stream's metadata bytes to json using following command:

ffmpeg -i content.m2ts -map 0:v:0 -c copy -vbsf hevc_mp4toannexb -f hevc - | ./hdr10plus_tool extract -o metadata.json -

the resulting metadata.json includes fields that are not part of HDR10+ standard (ST 2096-40:2020). For example, LuminanceParameters is not defined in ST 2096-40:2020. What is the metadata format generated by hdr10plus_tool? Is this a standard format that I could look up?

quietvoid commented 2 years ago

The JSON format is for HDR10+ LLC, which is supported by x265. As far as I know, the specification is not public and requires being a HDR10+ LLC adopter.

The code to convert from JSON to the ST2094-40 semantics is defined here: https://github.com/quietvoid/hdr10plus_tool/blob/main/hdr10plus/src/metadata_json.rs#L268

You can find an example from x265's repo: Tool_Verification_new_hdr10plus_llc.json