dovi_meta is a CLI tool for creating Dolby Vision XML metadata from an encoded deliverable with binary metadata.

Overview

dovi_meta

CI Artifacts Github all releases

dovi_meta is a CLI tool for creating Dolby Vision XML metadata from an encoded deliverable with binary metadata.

Building

Toolchain

The minimum Rust version to build dovi_meta is 1.64.0.

Release binary

To build release binary in target/release/dovi_meta run:

cargo build --release

Usage

dovi_meta [OPTIONS] <SUBCOMMAND>

To get more detailed options for a subcommand

dovi_meta <SUBCOMMAND> --help

All options

  • --help, --version

All subcommands

Currently, the only available subcommand is convert

More information and detailed examples for the subcommands below.

  • convert

    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

    • INPUT Set the input RPU file to use.
      • No limitation for RPU file extension.
    • OUTPUT Set the output XML file location.
      • When OUTPUT is not set, the output file is metadata.xml at current path.

    Options

    • -s, --size Set the canvas size. Use x as delimiter.
      • Default value is 3840x2160
    • -r, --rate Set the frame rate. Format: integer NUM or NUM/DENOM
      • Default value is 24000/1001
    • -t, --skip Set the number of frames to be skipped from start
      • Default value is 0
    • -n, --count Set the number of frames to be parsed

    Flags

    • -6, --use-level6 Use 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-frame Drop per-frame metadata in shots
    • -k, --keep-offset Keep the offset of frames when --skip is 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 1920x1080

    The 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.

Notes

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.

You might also like...
A server software designed for fetching Minecraft and Minecraft-related metadata

Minecraft Metadata Server A server software designed for fetching Minecraft and Minecraft-related metadata (such as Forge, Fabric, Quilt and Liteloade

Tooling and library for generation, validation and verification of supply chain metadata documents and frameworks

Spector Spector is both tooling and a library for the generation, validation and verification of supply chain metadata documents and frameworks. Many

subscript metadata to mpeg-ts

tssubscript 元データの MPEG-TS に重畳された メタデータ を エンコード済みの MPEG-TS に張り付けるツールです。 使用方法 tssubscript -i 入力TSファイル -m 貼り付け元メタデータTSファイル -o 出力TSファイル また、パイプを使ってエン

Simple, cross-platform GameMaker lib for getting file metadata

File Metadata Tiny baby library for getting file metadata. Originally written to work for a GameMaker game a friend is creating. Table of Contents Ins

zman is a CLI year (time) progress that small, fast, and just one single binary.
zman is a CLI year (time) progress that small, fast, and just one single binary.

zman zman is a CLI year (time) progress that small, fast, and just one single binary. Features Show year progress Show month, and week progress Show r

A CLI tool to get help with CLI tools 🐙
A CLI tool to get help with CLI tools 🐙

A CLI tool to get help with CLI tools 🐙 halp aims to help find the correct arguments for command-line tools by checking the predefined list of common

🦀️atos for linux by rust - A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols.

atosl-rs 🦀️ atos for linux by rust - A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols. tested on

A tool to easily work with timezone lookups via a binary, a library, or a server.
A tool to easily work with timezone lookups via a binary, a library, or a server.

rtz A self-contained geo lookup library / binary / server for Rust / JS (via WASM) (free server) using data from the Natural Earth and OpenStreetMap d

Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're working with files or directories, this tool simplifies common file operations with ease.

Rust FileOps Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're w

Comments
  • can't build dovi_meta on macOS

    can't build dovi_meta on macOS

    Hello there,

    I'm having some difficulties to build dovi_meta on macOS.

    error: failed to run custom build command for dovi_meta v0.1.0 (/Users/rt/dovi_meta-master)

    Caused by: process didn't exit successfully: /Users/rt/dovi_meta-master/debug/build/dovi_meta-017700cb314f61ba/build-script-build (exit status: 101) --- stderr thread 'main' panicked at 'called Result::unwrap() on an Err value: could not find repository from '/Users/rt/dovi_meta-master'; class=Repository (6); code=NotFound (-3)', build.rs:10:20 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace warning: build failed, waiting for other jobs to finish...

    Any ideas?

    Thanks!

    opened by RaphFLC 3
Owner
Rainbaby
Rainbaby
Anglosaxon is a command line tool to parse XML files using SAX

anglosaxon - Convert large XML files to other formats anglosaxon is a command line tool to parse XML files using SAX. You can do simple transformation

Amanda 8 Oct 7, 2022
decode a byte stream of varint length-encoded messages into a stream of chunks

length-prefixed-stream decode a byte stream of varint length-encoded messages into a stream of chunks This crate is similar to and compatible with the

James Halliday 4 Feb 26, 2022
This project returns Queried value from SOAP(XML) in form of JSON.

About This is project by team SSDD for HachNUThon (TechHolding). This project stores and allows updating SOAP(xml) data and responds to various querie

Sandipsinh Rathod 3 Apr 30, 2023
Language server for Odoo Python/JS/XML

odoo-lsp Features Completion, definition and references for models, XML IDs and model fields Works for records, templates, env.ref() and other structu

Viet Dinh 5 Aug 31, 2023
ufo2nft is a CLI Rust tool to automate creating on-chain SVG NFTs from UFO font sources

ufo2nft is a CLI Rust program created by Eli Heuer at the 2022 Seattle Solana Hacker House event. It uses Norad to create on-chain SVG images from UFO font sources, and prepares them for minting as Solana NFTs. For Ethereum NFTs the program can just export the SVGs and Ethereum NFTs can be built manually.

Eli Heuer 1 Feb 10, 2022
Plexisort is a command-line tool designed to organize your files based on metadata.

Plexisort is a command-line tool designed to organize your files based on metadata. It allows for flexible source and destination directory settings, supports dry-run operations for safe previews of potential changes, and even offers an undo functionality for reversing the last set of file movements.

Richard Chukwu 7 Apr 29, 2024
CarLI is a framework for creating single-command and multi-command CLI applications in Rust

CarLI is a framework for creating single-command and multi-command CLI applications in Rust. The framework provides error and IO types better suited for the command line environment, especially in cases where unit testing is needed.

Kevin Herrera 3 Jan 21, 2022
A simple command line tool for creating font palettes for engines like libtcod

palscii A simple command line tool for creating font palettes for engines like libtcod. Usage This can also be viewed by running palscii --help. palsc

Steve Troetti 2 May 2, 2022
Dreamer is an extensible tool manager and shell for creating small, lightweight, dev environments instantly.

Dreamer ?? Does what you want, not what you say. Dreamer is a universal tool management system for any language, any build system, and any framework.

Luke Davis 4 Oct 23, 2023
niwl - a prototype system for open, decentralized, metadata resistant communication

niwl - a prototype system for open, decentralized, metadata resistant communication niwl (/nɪu̯l/) - fog, mist or haze (Welsh). niwl is an experimenta

George Tankersley 5 Feb 4, 2022