Repository navigation
Tag blurred and HyperFrames masters BT.709 correctly on current ffmpeg - #3
Open
ThomasKirst wants to merge 1 commit into
Open
ThomasKirst wants to merge 1 commit into
ThomasKirst wants to merge 1 commit into
Conversation
- accumulate.py: tag the raw pipe on the input. On the output side ffmpeg 9 reads the untagged pipe as BT.601, converts it to BT.709 and still writes unknown primaries and transfer. - hf-finish.sh: end the sharp encode's -vf chain in setparams so the tags survive (refs Leonxlnx#2). - finishing.md: the corrected recipe; probe.py's hint points to it.
This was referenced Oct 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi, and thanks for cinetic! We used 1.0.0 to make a 29 s product film for our app: a 16:9 master plus 9:16 and 1:1 re-layouts. The probe check caught a colour problem on the way, and this PR fixes it. It is small and self-contained. A second PR with two smaller things (#4) and an issue with notes from the project (#5) are separate.
The film, the debugging and these texts were made together with Claude (Opus 5.5) in Claude Code. Each measurement below comes from a small ffmpeg test that is easy to rerun; happy to share the commands.
Blurred masters: shifted colours and missing tags (
accumulate.py)With ffmpeg 9.0.2 (the current Homebrew version), every
render.sh --blurmaster failedprobe.py's colour check withbt709/unknown/unknown/tv.The cause is the encoder call:
accumulate.pypipes finished BT.709 planes as-f rawvideo -i -and gives the colour tags only as output options.auto_scale_0in-v verbose).unknown.The fix moves the four tags before
-i, so they describe the planes as they are.#00C2E0, piped as BT.709 yuv420p,crf 0On
accumulate.pyitself (8 testsrc2 PNGs,--uniform 2) the tags go frombt709/unknown/unknowntobt709/bt709/bt709.Sharp
hf-finish.shencodes: missing tags (refs #2)This is point 3 of #2, and I could reproduce it on ffmpeg 9.0.2 as well: the PNG → H.264 encode comes out
bt709/unknown/unknown/tv, because the filter graph's frame properties override the output-side tags. Following the suggestion in #2, the-vfchain now ends insetparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709:range=tv. The decoded pixels are identical before and after (same MD5); only the tags change.Points 1 and 2 of #2 (bash 3.2, BSD
wc) are not part of this PR. For reference:bash -n scripts/hf-finish.shalready fails under macOS's/bin/bash3.2 onmain.Docs
references/finishing.md§4: the corrected recipe, with a short note on both cases (filter graph vs. raw pipe).probe.py: the hint now points to that recipe.CHANGELOG.md: two entries under[Unreleased].Checks
lint-film.test.mjspasses.pick.test.pypasses.py_compilepasses for all scripts.probe.pywith these changes.