-
Notifications
You must be signed in to change notification settings - Fork 0
Licensing
Four of the eight free artifact names are LGPL-3.0; the four -gpl variants are GPL-3.0. The difference matters for your own app's licensing obligations — read this before picking an artifact.
| Artifact | License |
|---|---|
ffmpeg-kit-min |
LGPL-3.0 |
ffmpeg-kit-https |
LGPL-3.0 |
ffmpeg-kit-audio |
LGPL-3.0 |
ffmpeg-kit-video |
LGPL-3.0 |
ffmpeg-kit-full |
LGPL-3.0 |
ffmpeg-kit-min-gpl |
GPL-3.0 |
ffmpeg-kit-https-gpl |
GPL-3.0 |
ffmpeg-kit-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 the non--gpl artifacts are practical for commercial closed-source apps.
The -gpl artifacts link in x264, x265, xvidcore, and vid.stab — 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 a -gpl artifact over its non-GPL counterpart.
The -gpl artifacts exist specifically for cases where you need x264/x265 themselves (the reference H.264/H.265 encoder implementations) rather than the LGPL-compatible alternative (kvazaar for H.265) that the non--gpl full/video artifacts use instead. See Compatibility for exactly which encoder each artifact uses.
Independent of the encoder question, FFmpeg also has several GPL-licensed filters only available in the -gpl artifacts — see GPL Filters.
FFmpeg's own configure refuses to enable GnuTLS and OpenSSL at the same time ("GnuTLS and OpenSSL must not be enabled at the same time"), so which one an artifact ships depends on what it needs to stay faithful to the upstream artifact it replaces: ffmpeg-kit-https and ffmpeg-kit-https-gpl use GnuTLS + gmp (matching upstream Arthenica's own https variant); Pro uses OpenSSL. Neither is a licensing concern for LGPL/GPL purposes here — it's purely a build-time exclusivity constraint.
Every .aar bundles the applicable license as an Android raw resource (res/raw/license.txt), generated by the build script based on which artifact it is — you can extract and ship that file yourself if your own app needs to display licensing info to end users.