Skip to content

Releases

v0.1.3

Choose a tag to compare

@zigazajc007 zigazajc007 released this 23 Oct 17:44

Features

  • apply, remove and static report progress, as regrain 0.3.2 does. With --progress json they begin with a start event, and progress events name the stage they are in: read counts the frames for apply, write writes the output, and verify decodes it with dav1d. frames, total, fps and eta_seconds are for the stage, and percent is for the whole command, with verifying taking 80% of it. remove and static write without counting first, so their total and percent are null. On a terminal the progress line shows the stage.

Other changes

  • Uses rabbit-av1 0.1.2, whose decoder check reports the frames it has decoded.

v0.1.2

Choose a tag to compare

@zigazajc007 zigazajc007 released this 23 Oct 09:28

Changes

  • --fix-color in apply and static only retags video without a transfer tag, or PQ video with wrong primaries or matrix. Video tagged with another transfer, such as BT.709 SDR, is a different picture that looks washed out as PQ, so it fails with not_hdr10 unless --force-fix-color is given as well. HLG is never retagged.

v0.1.1

Choose a tag to compare

@zigazajc007 zigazajc007 released this 23 Oct 08:44

Features

  • measure and convert report their progress. With --progress json they write a start event with the expected frame count and picture size, then a progress event twice a second with frames, total, percent, fps, elapsed_seconds and eta_seconds, the same events regrain writes. On a terminal the text progress shows the total and the time left. The total comes from the Dolby Vision metadata for convert and from the container for measure.

v0.1.0

Choose a tag to compare

@zigazajc007 zigazajc007 released this 23 Oct 08:18

First release of retone: HDR10+ and HDR10 metadata for AV1 video.

AV1 encoders cannot measure HDR10+ themselves, and converting or remuxing a video often loses it. retone measures it from the source, converts it from Dolby Vision, and writes it into the encode where the HDR10+ AV1 Metadata Handling Specification places it.

Commands

  • measure analyses an HDR10 or HLG video and writes HDR10+ metadata, one set of values per scene
  • convert writes HDR10+ metadata for a Dolby Vision video (HEVC, AV1 or a dovi_tool RPU file), with the scenes following the colourist's Dolby Vision shots
  • apply writes HDR10+ metadata into an AV1 video, with --verify to read it back and decode it with dav1d, and --fix-color for PQ encodes that lost their colour tags
  • export, remove and stats read, remove and show HDR10+ metadata
  • static writes the mastering display, MaxCLL and MaxFALL, which it can take from the HDR10+ metadata
  • check finds what the HDR10+ AV1 specification, ST 2094-40 and CTA-861 forbid
  • info shows the HDR formats and metadata of an AV1 video

Metadata files use the JSON layout of hdr10plus_tool, so they work with hdr10plus_tool and HEVC workflows too.

Typical use

retone measure source.mkv -o hdr10plus.json        # or: retone convert dolby-vision.mkv -o hdr10plus.json
retone apply encode.mkv -m hdr10plus.json -o hdr10plus.mkv --verify
retone static hdr10plus.mkv -o final.mkv --mastering-display p3,1000,0.0001 --cll-from hdr10plus.json

Tested against

  • The AOM HDR10+ AV1 conformance streams: check passes the valid ones and finds the problem of every invalid one.
  • The libaom test vectors: HDR10+ written into each passes check and decodes to the same pictures.
  • Netflix's 4K HDR10+ conformance stream: measure finds the same scenes as Netflix's metadata, the same values for the two luminance statistics HDR10+ keeps in its 5% and 10% slots, and the other values within 2%.

Downloads

Pick linux-x86_64-v3 on most Linux PCs, macos-aarch64 on Apple silicon and windows-x86_64 on Windows. The README lists every archive. SHA256SUMS has the checksum of each one.

measure and convert need ffmpeg and ffprobe. The other commands read IVF, OBU and Annex B on their own and use ffmpeg only for MKV, WebM and MP4.