NOTICETools listed with owners and licences so credits stay easy. Free to use as a reference; credit what you ship.
Concordance · how-tos · tools & licences
Shipping media stacks cleanly
A practical FFmpeg-adjacent toolbox: encoders, decoders, muxers, filters and bindings worth embedding, with the owner, the licence, and the one-line credit that keeps your build clean.
- Know what's inside. List every library and file you didn't write yourself.
- Keep their notices. Their copyright and licence lines travel with their code, even when yours is closed.
- Say what your own licence is. And let it match what's actually inside.
- Why this list
- The toolbox
- FFmpeg's own licence
- How to credit
- A notices file
- Two ways to ship
- Gotchas
- Sources
Why this list
Most media apps are assembled, not written from scratch: an encoder here, a muxer there, a wrapper on top. This is the shelf of good parts we keep coming back to, with links so you can plug them in fast, and the minimum notice each one asks for, so what you ship matches what's inside.
MIT is the default for a lot of app-friendly packages, so there's an MIT filter below. Even MIT asks for a copyright line in your notices, and some MIT wrappers bundle code under other licences, so the notice column still matters.
Licences were read from each project's LICENSE/COPYING on its default branch in October 2026. A practitioner's map, not legal advice.
The toolbox
| Tool | Role | Owner | Repo | Licence | Minimum notice / ship tip |
|---|
FFmpeg's own licence, on one screen
| Build | Resulting licence | What it means for you |
|---|---|---|
| Default configure | LGPL-2.1+ | Linking from closed code works if you link dynamically (or ship relinkable objects), include the LGPL text, and point to the source. |
| --enable-version3 | LGPL-3.0+ | Needed for Apache-2.0 or LGPL-3 libs (e.g. mbedTLS, OpenCORE, libaribb24). Same obligations, v3 flavour, including the install/replace rules. |
| --enable-gpl | GPL-2.0+ | Needed for x264, x265, libxvid, frei0r, rubberband, avisynth, and the GPL filters (hqdn3d, delogo, eq…). Everything linked must be GPL-compatible. |
| --enable-gpl --enable-version3 | GPL-3.0+ | e.g. for smbclient. GPL-3 terms apply to the whole binary. |
| --enable-nonfree | Not redistributable | fdk-aac, DeckLink, cuda-nvcc / CUDA SDK. Fine on your own machine, but don't ship it. |
Check what you actually shipped: ffmpeg -L prints the licence of that build, and ffmpeg -buildconf prints the configure flags. Paste both into your notices. FFmpeg's own checklist lives at ffmpeg.org/legal.html.
Codec patents (H.264, HEVC, AAC, VVC) are separate from copyright licences. The source licence doesn't settle them, so look into it before you ship commercially.
How to credit, by licence
| Licence | Minimum you ship | Plain-language note |
|---|---|---|
| MIT / Old MIT | Copyright line + permission notice | Paste it into your notices file or About screen. That's it. |
| ISC | Copyright line + permission notice | MIT's shorter cousin. Same handling. |
| BSD-2-Clause | Copyright + 2 conditions + disclaimer | Binaries must reproduce it in docs or another shipped file. |
| BSD-3-Clause | Same as BSD-2 | Plus: don't use their name to endorse your product. |
| BSD-3-Clause-Clear | Same as BSD-3 | Explicitly grants no patent rights. Check for a separate PATENTS file. |
| BSD-2-Clause-Patent | Same as BSD-2 | Includes an express patent grant. Nice. |
| zlib / libpng | Keep the notice in source | Don't misrepresent origin; mark altered versions. Binary credit is appreciated but optional. |
| IJG (libjpeg) | Credit line in docs | Binary-only? Say it's "based in part on the work of the Independent JPEG Group". |
| Apache-2.0 | Licence text + their NOTICE file (if they have one) | Mark files you modified. Comes with a patent grant. Not compatible with GPL-2 or LGPL-2.1 (fine with v3). |
| MPL-2.0 | Licence notice; source of modified MPL files | File-level copyleft: your own files stay yours. |
| LGPL-2.1 / 3.0 | Licence text + source (or written offer) + relinkability | Dynamic linking is the easy route. v3 adds install/replace rules on locked devices. |
| GPL-2.0 / 3.0 | Licence text + complete corresponding source for the whole linked work | If it's linked in, your program ships under GPL terms. A separate CLI process is usually treated as a separate program. |
| Unlicense / CC0 / public domain | Nothing required | Credit is still kind and makes provenance clear. |
| WTFPL | Nothing required | Some legal teams won't approve it. A credit line still helps. |
| Dual (GPL or commercial) | Pick one path, on purpose | x264, x265, Bento4, libimagequant, Rubber Band: GPL for open apps, a paid licence for closed ones. |
A notices file that travels with the code
- Inventory what's actually linked or bundledUse
ffmpeg -buildconffor native builds,npx license-checker(old but still works) orpip-licensesfor packages, andcargo aboutfor Rust.reuse lintchecks your own repo. - Collect full texts into one file
THIRD_PARTY_NOTICES(orNOTICE) at the repo root, one block per component: name, version, URL, licence text. - Make it visible in the productAn "Open-source licences" screen, an About dialog, or
--licenseson a CLI. Ship the file next to binaries and inside installers. - Match the top-level LICENSE to realityIf a GPL component is linked in, a lone MIT LICENSE at the root no longer tells the whole story. Say what applies to what.
- Copyleft extrasFor LGPL/GPL parts, add a source link or written offer for the exact version and build flags you shipped.
Two ways to ship
Fully open stack
- Top-level licence
- GPL-3.0 or GPL-2.0+ works with almost everything here
- Unlocks
- x264, x265, Rubber Band, libimagequant, frei0r, GPL FFmpeg filters
- Notices
- One file with every licence text + a source link
- Avoid
- fdk-aac (non-free); Apache-2.0 libs with GPL-2-only code
Proprietary layer on top
- Top-level licence
- Yours, plus a clear third-party notices file
- Stick to
- Permissive libs + LGPL FFmpeg linked dynamically, or spawn the ffmpeg CLI as a separate process
- Swap in
- OpenH264 or HW encoders (NVENC/QSV/VA-API/AMF) for x264; SVT-AV1/rav1e; Kvazaar for HEVC
- Or
- Buy the commercial licence (x264, x265, Bento4, libimagequant, Rubber Band)
Gotchas worth knowing
Sources
- FFmpeg LICENSE.mdcode.ffmpeg.org
- FFmpeg legal checklistffmpeg.org
- OpenH264 binary licenceopenh264.org
- SPDX licence listspdx.org
- REUSE (machine-readable licensing)reuse.software
- choosealicense.com appendixchoosealicense.com
Plus each project's own LICENSE/COPYING, linked from its row in the toolbox.
Practitioner notes, checked line by line against each project's own licence files and repos on 28 October 2026. Not legal advice. For a commercial launch, a quick review by someone qualified is still worth it. Spot something new or changed? Edit the TOOLS list at the bottom of this file.