Skip to content
Mattias Carlsson edited this page Sep 3, 2026 · 4 revisions

mediaforge

A POSIX shell build system that compiles FFmpeg from source, together with ~110 modular dependency recipes, into an isolated prefix. Nothing outside the checkout is touched until you explicitly install.

This wiki carries the explanatory material: worked sequences, the reasoning behind a default, and the things that are true about a build but do not fit in a flag description.

The reference lives in the repository and stays there:

That split is deliberate. The flag reference is checked on every push by a gate that reads the in-tree files, and it is readable in an offline checkout at the version you actually have. A wiki is a separate repository with no gate and no version — so it may grow freely, but it never becomes the place a flag is defined. Pages here link to usage.md rather than restating it.

Pages

  • Worked examples — start here. Goal-shaped sequences: a first build, the codecs most people want, a debuggable build, a portable static binary, pinning to an FFmpeg release, retrying one failed package.
  • Choosing implementations — the six mutex groups, the six-rung precedence ladder, where your choices get stored, and the one exception that jumps the ladder.
  • Debug builds and split DWARF — what --debug actually produces, why the installed prefix is no longer self-contained, and the quiet way to lose your debug information.

Quick start

git clone https://github.com/crippledgeek/mediaforge.git
cd mediaforge
./mediaforge.sh build          # free codecs only, into ./workspace
./mediaforge.sh install        # interactive prefix menu

Prefer an isolated prefix such as ~/.local/mediaforge, and do not wrap install in sudo for a prefix you own — the installer elevates itself only when the destination needs it. See Worked examples for why that matters.

Clone this wiki locally