Repository navigation
Fix #184: accept only verified FFmpeg builds; fix installer bootstrap - #195
Merged
Merged
Conversation
Windows now accepts only verified tag-exact 8.1.2 full builds (BtbN tag and
gyan full). Any other build (nightly, development, essentials, or too old) is
rejected and routed to one-click Repair FFmpeg. A verified build already on
PATH is used without forcing a switch. Repair only ever writes into the app's
own tools/ffmpeg and never touches the system PATH.
The previous approach parsed a gyan development nightly banner
("2026-07-09-git-...") as release major "2026" and let it pass validation, so
Repair reported nothing to fix while export failed on the removed -apply_trc
option. Validation is now an allowlist of builds actually run through the full
operation matrix, not a blacklist of known-bad shapes.
1-install.bat now installs the same pinned verified build the in-app Repair
uses; it previously downloaded a rolling FFmpeg master nightly. Its extraction
step is pinned to System32 bsdtar so it no longer silently fails on machines
where Git's GNU tar wins the PATH lookup and rejects Windows drive paths.
check_ffmpeg.py gains --print-pin-url and --print-pin-asset so the installer
and Repair share one source of truth for the pinned build.
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.
Follow-up hotfix for #184, folded into the 2.1.4 release (no version bump).
Problem
After 2.1.4, a user on a gyan.dev FFmpeg development nightly (
2026-07-09-git-...) still failed export withUnrecognized option 'apply_trc', and Repair FFmpeg reported "No repair is needed." The version parser read the date-prefixed banner as release major "2026", so the nightly passed validation. The blacklist approach could only catch build shapes we anticipated.Separately,
1-install.batdownloaded a rolling FFmpeg master nightly, and its extraction used baretar.exe, which resolves to Git's GNU tar on many machines and readsC:\...as a remote host, so extraction silently failed and no bundled FFmpeg was installed.Fix
☼ Windows validation is now an allowlist of verified tag-exact 8.1.2 full builds (BtbN tag and gyan full), each run through the full FFmpeg operation matrix. Every other build is rejected and routed to one-click Repair. A verified build already on PATH is used without forcing a switch. Repair only ever writes into the app's own
tools/ffmpeg, never the system PATH.☼
1-install.batinstalls the same pinned verified build Repair uses, and extraction is pinned to System32 bsdtar.☼
check_ffmpeg.pygains--print-pin-url/--print-pin-assetso the installer and Repair share one source of truth.Verification
☼ Full suite: 789 passed, 2 skipped
☼ Build matrix (6 real builds): all verdicts correct; both accepted 8.1.2 full builds pass all 8 FFmpeg operations (probe, cuda EXR extract + DWAB readback, all 6 export codec paths)
☼ Option B PATH e2e, Repair e2e (real download/swap), and installer bootstrap e2e all pass