dovi_meta is a CLI tool for creating Dolby Vision XML metadata from an encoded deliverable with binary metadata.
The minimum Rust version to build dovi_meta is 1.79.0.
To build release binary in target/release/dovi_meta run:
cargo build --releasedovi_meta [OPTIONS] <SUBCOMMAND>To get more detailed options for a subcommand
dovi_meta <SUBCOMMAND> --help--help,--version
Currently, the available subcommand is convert and edl.
More information and detailed examples for the subcommands below.
-
Convert a binary RPU to XML Metadata (DolbyLabsMDF).
- Currently, it should support RPU with any Dolby Vision profile using PQ as EOTF.
- Supported XML Version: CM v2.9 (v2.0.5), CM v4.0 (v4.0.2 and v5.1.0)
- The output version is determined by input automatically.
Arguments
INPUTSet the input RPU file to use- No limitation for RPU file extension.
OUTPUTSet the output XML file location- When
OUTPUTis not set, the output file ismetadata.xmlat current path.
- When
Options
-s,--sizeSet the canvas size. Usexas delimiter- Default value is
3840x2160
- Default value is
-r,--rateSet the frame rate. Format: integerNUMorNUM/DENOM- Default value is
24000/1001
- Default value is
-t,--skipSet the number of frames to be skipped from start- Default value is
0
- Default value is
-n,--countSet the number of frames to be parsed explicitly-o,--offsetSet the number of frames to be added to the index- Default value is
0
- Default value is
Flags
-6,--use-level6Use MaxCLL and MaxFALL from RPU, if possible- It's not a default behavior, as ST.2086 metadata is not required for a Dolby Vision deliverable.
-d,--drop-per-frameDrop per-frame metadata in shots-k,--keep-offsetKeep the offset of frames when--skipis set
Example to get metadata for RPU from a 29.97 fps HD video, dropping first 24 frames:
dovi_meta convert RPU.bin metadata.xml --skip 24 --rate 30000/1001 --size 1920x1080The default color encoding is BT.2020 PQ 16-bit RGB Full Range.
The default color space of mastering display and target displays (except the anchor target) is P3 D65 for CM v2.9 XML, also for CM v4.0 XML when it can't be determined by input.
-
Convert a binary RPU to EDL (Edit Decision List).
- Currently, the per-frame metadata in RPU is not parsed to transition.
Arguments
INPUTSet the input RPU file to use- No limitation for RPU file extension.
OUTPUTSet the output XML file location- When
OUTPUTis not set, the output file ismetadata.edlat current path.
- When
CLIP_NAMESet the clip name in EDL- If there are too many cuts to be saved in a single file, multiple files will be saved with a suffix added to the file name.
Options
-r,--rateSet the frame rate. Format: integerNUMorNUM/DENOM- Default value is
24000/1001
- Default value is
-s,--start-timecodeSet the starting timecode in timeline. Format:HH:MM:SS:FFor integerFRAMESoffset- Default value is
01:00:00:00
- Default value is
-t,--skipSet the number of frames to be skipped from start- Default value is
0
- Default value is
-n,--countSet the number of frames to be parsed explicitly
Flags
-f,--forceForce output even if per-frame RPU is detected
The current build only support RPU as input. To extract RPU from an HEVC file, see dovi_tool for more info.
Build artifacts can be found in the GitHub Actions.
More features may or may not be added in the future.
Please report an issue if you have any question.