Skip to content

packages: homebrew-ffmpeg tap build + trust taps before bundle - #12

Merged
ns408 merged 1 commit into
mainfrom
feat/ffmpeg-homebrew-tap
Jun 17, 2026
Merged

packages: homebrew-ffmpeg tap build + trust taps before bundle#12
ns408 merged 1 commit into
mainfrom
feat/ffmpeg-homebrew-tap

Conversation

@ns408

@ns408 ns408 commented Jun 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Switch ffmpeg from homebrew/core to the homebrew-ffmpeg/ffmpeg tap build (libass, drawtext/libfreetype, many extra filters) in developer + cloud-engineer. Default bottled build : fdk-aac is intentionally omitted (it needs args: ["with-fdk-aac"], a from-source build that recompiles on every ffmpeg update). Brewfiles carry a note on how to re-add it.
  • Fix tap-trust ordering: Homebrew's tap-trust enforcement now blocks installing/updating from an untrusted tap, but bootstrap trusted taps after brew bundle. A fresh install would fail on the new tap (and on hashicorp/tap). Now tap + trust declared taps before bundling.
  • Idempotent migration: a pre-bundle step replaces a core ffmpeg with the tap build only when needed, detected via the keg's INSTALL_RECEIPT.json source tap (jq-free, since jq may not be installed yet). No-op if already the tap build.

Why

The tap build's filters (drawtext/libass) are needed for the recording/encoding workflow; core ffmpeg lacks them.

Test plan

  • bash -n install/bootstrap.sh + shellcheck clean.
  • Brewfiles: tap line present, brew "homebrew-ffmpeg/ffmpeg/ffmpeg", no bare brew "ffmpeg".
  • On a machine already running the tap build, the receipt detection takes the no-op path (verified).
  • Filters confirmed present on the installed tap build: drawtext (libfreetype), ass (libass).

Note

fdk-aac trade-off captured in the Brewfile comment; tracking issue to follow.

Switch ffmpeg from homebrew/core to the homebrew-ffmpeg/ffmpeg tap build (richer:
libass, drawtext, many extra filters) in the developer and cloud-engineer profiles.
fdk-aac is intentionally left out: it requires a from-source build that recompiles
on every ffmpeg update; the Brewfile notes how to re-add it.

Fix tap-trust ordering: Homebrew's tap-trust enforcement now blocks installing from
an untrusted tap, but bootstrap trusted taps AFTER bundle, so a fresh install would
fail on the new tap (and hashicorp/tap). Tap + trust declared taps BEFORE bundling.

Add an idempotent pre-bundle migration that replaces a core ffmpeg with the tap build
only when needed (detected via the keg's install receipt), avoiding a binary conflict.
@ns408
ns408 merged commit 75e7b81 into main Jun 17, 2026
3 checks passed
@ns408
ns408 deleted the feat/ffmpeg-homebrew-tap branch June 17, 2026 03:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant