Skip to content

Licensing

ffmpegkit-maintained edited this page Jun 23, 2026 · 1 revision

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

What LGPL-3.0 means for your app

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.

What GPL-3.0 means for your app (Full GPL tier)

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.

GPL-licensed filters

Independent of the encoder question, FFmpeg also has several GPL-licensed filters only available in Full GPL — see GPL Filters.

Why GnuTLS is never included

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.

Where the actual license text ships

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.

Clone this wiki locally