Yes, you can use FFmpeg in a commercial product
FFmpeg is licensed under the GNU Lesser General Public License (LGPL) version 2.1 or later.
Some features, such as support for some external libraries (libx264 and libx265 for example) and various filters, are covered by the GNU General Public License (GPL) version 2 or later (see commercial x264 license exception below). If those parts get used the GPL applies to all of FFmpeg. See LICENSE.md
in the source to see a list of GPL parts of FFmpeg and which external libraries require GPL.
So, yes, you can definitely use FFmpeg in commercial products, and both licenses allow commercial usage, distribution, and modification. FFmpeg is free but is not available under any other licensing terms.
Which license you use is up to you, and depends on what your needs are and how your FFmpeg build is configured, but you must comply with whatever license you end up using. FFmpeg does not care if you use it for a commercial purpose or not: only that you properly follow the license.
What do I need to do to comply?
If you're just using FFmpeg for private or in-house use, or you are not actually distributing anything from FFmpeg at all then you don't need to do anything. Otherwise, for a very verbose list see the FFmpeg License Compliance Checklist. To summarize you need to:
GPL 2.0+
- Make available the exact FFmpeg source code that you used.
- Provide a copy of the appropriate FFmpeg license with your distributed software (see
COPYING.GPLv2
or COPYING.GPLv3
).
- State changes. If you modify the FFmpeg source code you must document what was changed.
- Use same license. If you modify the FFmpeg source code it must remain under the same license.
LGPL 2.1+
- Make available the exact FFmpeg source code that you used.
- Provide a copy of the appropriate FFmpeg license with your distributed software (see
COPYING.LGPLv2.1
or COPYING.LGPLv3
).
- State changes. If you modify the FFmpeg source code you must document what was changed.
- Use same license. If you modify the FFmpeg source code it must remain under the same license. This does not apply if you are just using linked FFmpeg libraries.
What license is my FFmpeg using?
The ffmpeg -L
command will output a paragraph indicating your license. Example for LGPL v2.1+:
ffmpeg is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
What about the x264 commercial license?
The x264 commercial license is LGPL compatible, but FFmpeg does not have an option that disables the GPL requirement for commerical licensed x264 so you have to do that manually. Therefore, if you purchase a commercial license from x264 licensing then you are permitted to:
- Compile x264 with
--disable-gpl
.
- Modify the
configure
file in the FFmpeg source code to move libx264 from EXTERNAL_LIBRARY_GPL_LIST
to EXTERNAL_LIBRARY_LIST
.
- Compile ffmpeg without
--enable-gpl
and link to your x264 that has been compiled with --disable-gpl
.
The LGPL still applies in this case, so don't forget to make available the exact FFmpeg source code you used and state what changes you made.
Do I need a commercial license from x264?
You do if your application is not GPL-compatible and is being distributed with linked x264. See [x264-devel] Announcing commercial licensing for x264 for additional details.
Also see