Repository navigation
Releases
v0.1.3
Features
apply,removeandstaticreport progress, as regrain 0.3.2 does. With--progress jsonthey begin with astartevent, andprogressevents name thestagethey are in:readcounts the frames forapply,writewrites the output, andverifydecodes it with dav1d.frames,total,fpsandeta_secondsare for the stage, andpercentis for the whole command, with verifying taking 80% of it.removeandstaticwrite without counting first, so theirtotalandpercentarenull. 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
Changes
--fix-colorinapplyandstaticonly 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 withnot_hdr10unless--force-fix-coloris given as well. HLG is never retagged.
v0.1.1
Features
measureandconvertreport their progress. With--progress jsonthey write astartevent with the expected frame count and picture size, then aprogressevent twice a second withframes,total,percent,fps,elapsed_secondsandeta_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 forconvertand from the container formeasure.
v0.1.0
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
measureanalyses an HDR10 or HLG video and writes HDR10+ metadata, one set of values per sceneconvertwrites HDR10+ metadata for a Dolby Vision video (HEVC, AV1 or a dovi_tool RPU file), with the scenes following the colourist's Dolby Vision shotsapplywrites HDR10+ metadata into an AV1 video, with--verifyto read it back and decode it with dav1d, and--fix-colorfor PQ encodes that lost their colour tagsexport,removeandstatsread, remove and show HDR10+ metadatastaticwrites the mastering display, MaxCLL and MaxFALL, which it can take from the HDR10+ metadatacheckfinds what the HDR10+ AV1 specification, ST 2094-40 and CTA-861 forbidinfoshows 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:
checkpasses the valid ones and finds the problem of every invalid one. - The libaom test vectors: HDR10+ written into each passes
checkand decodes to the same pictures. - Netflix's 4K HDR10+ conformance stream:
measurefinds 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.