41

Not sure if I am correct posting my question here and I will of course delete this question if appropriate.

I have a C# desktop app using FFmpeg.
I have a web service using FFmpeg.

I sell both products.

I want to know — can I distribute my desktop app with FFmpeg without paying a fee to FFmpeg people and without releasing my source code?

I also want to know whether I can use FFmpeg on my server for users to convert images to a video file to be emailed them. This service is also a payable product.

I have read the links to the FFmpeg licensing info and I read many questions here on these boards.

The closet I have got to an answer is that I can use it on my web server because I am not distributing it to client PCs and I can use FFmpeg on my desktop app if I only use certain features of FFmpeg — whatever they are.

However, this is not definitive enough for me and I cannot afford a lawyer and you would think this question/dilemma would have been resolved somewhere by someone considered how popular FFmpeg is.

Thanks.

14
  • @LordNeckbeard hi, 'many questions ' mis-spelt. Yes I have read all that before and is still not black and white. the compilations flags.. I am using Windows build for C# app. there is only 1 download for that build so I still do not know what to do. Reading the other questions to FFMPEG licensing I cannot see clear answers.. just guesses... hence my question :) Feb 6 '15 at 17:55
  • just saw the build request - thanks Feb 6 '15 at 18:41
  • I'm voting to close this question as off-topic because it is about licensing for producing software, not video production.
    – AJ Henderson
    Feb 7 '15 at 0:30
  • 7
    well in-directly it is about video production. FFMPEG seems to be a big mystery in terms of licensing and is a popular question by people. You ought to leave it up as an exception. These boards are all about helping people and this answer helps me and will other people. The trouble with SO boards is that they can become elitism. Pls do not take that as an insult. You have helped me with some of my question and I am v grateful Feb 7 '15 at 7:18
  • 3
    I'm voting to reopen this question because of the vast prevalence of need for this to be answered. The 22 upvotes indicates this. This is a special case, only because of the great need for this specific question to be answered accurately.
    – user24601
    Feb 15 '19 at 19:41
55

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.

  • It is also available under the General Public License (GPL) version 2 or later.

    • Some features, external libraries (libx264 and libx265 for example), and various filters, require GPL. If those parts get used the GPL applies to all of FFmpeg.
    • See LICENSE.md in the source for a list of GPL parts of FFmpeg and which external libraries require GPL.
  • The (L)GPL, and therefore FFmpeg, does not restrict commercial usage. You only need to properly comply with the license.

  • FFmpeg is not available under any other licensing terms. There is no commercial license available (but see the x264 & x265 commercial license info below). FFmpeg does not accept or charge any fees.

…but the (L)GPL is copyleft

If you include FFmpeg in your software, under the General Public License (GPL) version 2 or later, you may be required to make available the source code of your software to anyone requesting it.

Make sure your software license is compatible with the (L)GPL. This is an important and often confusing aspect of the (L)GPL. I can only suggest that you carefully read the license, the FAQ, and contact a lawyer or your legal department if you need counsel.

What if I am only using FFmpeg but not distributing it?

You do not have to do anything if you are not distributing anything from FFmpeg.

What about the x264 & x265 commercial licenses?

x264 and x265 are available under the GPL for free or a commercial license that you have to pay for. The commercial licenses are LGPL compatible. FFmpeg does not have an option that disables the GPL requirement for these commercial licenses so you have to do that manually. Therefore, if you purchase a commercial license from x264 licensing or x265 licensing then you are permitted to:

  • Compile x264/x265 with --disable-gpl.
  • Modify the configure file in the FFmpeg source code to move libx264/libx265 from EXTERNAL_LIBRARY_GPL_LIST to EXTERNAL_LIBRARY_LIST.
  • Compile ffmpeg without --enable-gpl and link to your x264/x265 that has been compiled with --disable-gpl.

Don't forget to document and provide these changes with the FFmpeg source code that you are making available.

Do I need a commercial license from x264/x265?

You do if your application is not GPL compatible and is being distributed with linked x264/x265. See [x264-devel] Announcing commercial licensing for x264 for additional details specific to x264.

Also see

10
  • 1
    wow! What a great answer! Feb 6 '15 at 19:21
  • 1
    @AJ Henderson would you like to open this? it seems a popular question and answer :) Jun 27 '17 at 16:18
  • Great answer! Could you please clarify what "distributed with linked x264" means? What if I distribute software that relies on ffmpeg being installed and calls it, e.g. via shell or subprocess? What if I install ffmpeg (without modyfing it) silently and subsequently call it from my software? Oct 18 '18 at 9:32
  • 1
    @NikolaLukic You are not distributing anything from FFmpeg, you are making the user get it, so there is nothing you need to do.
    – llogan
    May 13 at 21:40
  • 1
    @NikolaLukic It is up to you, although it is always nice to credit any open source software that your project uses.
    – llogan
    May 17 at 20:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.