27

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 fmpeg 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 becuase I am not distributing it to client PCS and I can use FFMPEG on a 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 considering how popular FFMPEG is.

Thanks

closed as off-topic by AJ Henderson Feb 7 '15 at 0:30

  • This question does not appear to be about video recording and production within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

  • @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 :) – Andrew Simpson Feb 6 '15 at 17:55
  • just saw the build request - thanks – Andrew Simpson 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
  • 6
    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 – Andrew Simpson Feb 7 '15 at 7:18
  • 1
    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 at 19:41
35

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

  • 1
    wow! What a great answer! – Andrew Simpson Feb 6 '15 at 19:21
  • 1
    @AJ Henderson would you like to open this? it seems a popular question and answer :) – Andrew Simpson 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? – Georgii Oleinikov Oct 18 '18 at 9:32

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