-
Notifications
You must be signed in to change notification settings - Fork 0
Licensing
Three of the four tiers are LGPL-3.0; one is GPL-3.0. The difference matters for your own app's licensing obligations — read this before picking a tier.
| Tier | License |
|---|---|
| Free | LGPL-3.0 |
| Basic | LGPL-3.0 |
| Full | LGPL-3.0 |
| Full GPL | GPL-3.0 |
LGPL permits linking (statically or dynamically) from a proprietary/closed-source app without that app itself becoming GPL-licensed, as long as you comply with LGPL's terms (provide access to the LGPL component's source/modifications, allow relinking against a different version, etc.). This is why Free, Basic, and Full are practical for commercial closed-source apps.
The Full GPL tier links in x264, x265, xvidcore, libvidstab, and rubberband — all GPL-licensed. Unlike LGPL, GPL's copyleft is much stronger: linking a GPL component into your app generally obligates your entire app to also be distributable under GPL-compatible terms. This has real implications for closed-source/commercial apps — review what GPL-3.0 requires for your specific distribution model (and consult your own legal counsel if it matters commercially) before choosing Full GPL over Full.
The Full GPL tier exists specifically for cases where you need x264/x265 themselves (the reference H.264/H.265 encoder implementations) rather than the LGPL-compatible alternatives (openh264, kvazaar) that Basic/Full use instead. See Compatibility for exactly which encoder each tier uses.
Independent of the encoder question, FFmpeg also has several GPL-licensed filters only available in Full GPL — see GPL Filters.
All four tiers use OpenSSL (Apache-2.0) for TLS instead of GnuTLS (LGPL-3.0-or-later with some GPL-incompatibility edge cases historically) — not a licensing concern in this case, but a build one: FFmpeg's own configure refuses to enable both at once ("GnuTLS and OpenSSL must not be enabled at the same time"), so a choice had to be made. OpenSSL avoids any GPL-adjacent licensing questions entirely.
Every .aar bundles the applicable license as an Android raw resource (res/raw/license.txt), generated by the build script based on which tier it is — you can extract and ship that file yourself if your own app needs to display licensing info to end users.