I have written a compression codec that I am releasing under the AGPL.

I would like to link it with FFmpeg, a video streaming application. FFmpeg is licensed under the LGPL, but since it supports some GPL v2 codecs, it can also be licensed under GPLv2. But not GPLv3.

So, in order to link my codec with FFmpeg, I will re-release FFmpeg under AGPL.

My question is : how to set up the license for this.

FFmpeg has two different license files to cover both LGPL and GPLv2.

I will now add a third AGPL license, which shall apply to all of the code (Of course, the LGPL and GPLv2 licenses continue to be in force)

So, how do I word the AGPL to acknowledge the other two licenses ?


  • i truly applaud the initiative! but i couldn't find any link to your beautiful work. do you even still work on this today?
    – cregox
    Mar 19 at 7:43

3 Answers 3


Quoting https://www.gnu.org/licenses/license-list.en.html#AGPLv3.0 :

Please note that the GNU AGPL is not compatible with GPLv2. It is also technically not compatible with GPLv3 in a strict sense: you cannot take code released under the GNU AGPL and convey or modify it however you like under the terms of GPLv3, or vice versa. However, you are allowed to combine separate modules or source files released under both of those licenses in a single project, which will provide many programmers with all the permission they need to make the programs they want. See section 13 of both licenses for details.

Emphasis mine. According to http://ffmpeg.org/legal.html, ffmpeg is licensed under "GNU General Public License (GPL) version 2 or later." So, I believe it is possible to make the bolded line relevant. Quoting the GPLv2 license,

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation.

I am not a lawyer and I make no promises that anything I said or emphasized is accurate, relevant, or trustworthy. Consult a lawyer for legal advice.

  • Thanks, Brian. So, in my case, I can license FFmpeg as GPLv3, and then combine it with my AGPL code.
    – Jacko
    Mar 29, 2016 at 12:25
  • @Jacko: Maybe? If you want a confident answer, consult a lawyer.
    – Brian
    Mar 29, 2016 at 12:56
  • @Brian not 100% correct - FFmpeg is licenced under the LGPL, but some (optional) parts are GPL.
    – gbjbaanb
    Mar 29, 2016 at 13:04
  • @gbjbaanb: Per ffmpeg.org/legal.html, "If those parts get used the GPL applies to all of FFmpeg." See also, the section 3 of LGPL 2.1: "You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. "
    – Brian
    Mar 29, 2016 at 15:14
  • I checked with FFmpeg, and they actually have a configure option "--enable-gpl3", so l can distribute FFmpeg under GPLv3, and then link with my AGPL component.
    – Jacko
    Mar 30, 2016 at 12:32

You may not re-release Ffmpeg under AGPL, as doing so imposes new restrictions on distribution, which is in violation of the original GPL license the software was distributed to you by.

Only the copyright holders of ffmpeg may create an AGPL licensed release.

  • +1, Though the argument is wrong. It is not because his license would impose new restrictions or not. It simply is because only the licencor can decide what licenses apply to the products (s)he has licensed for use to other people. Mar 29, 2016 at 5:57
  • @MarjanVenema: The argument is right, but this does not contradict your statements. The licensee can decide what licenses apply on condition that the licensor gave him permission to do so.
    – Brian
    Mar 29, 2016 at 12:56
  • @MarjanVenema: no, it is because the AGPL would impose new restrictions. There are many licenses, such as MIT license, that do permit distributing it with additional restrictions, as the original terms set by the copyright holder only requires inclusion of the copyright notice and disclaimer of warranty. That's why MIT licensed software can be used in closed proprietary softwares, because the license permits the addition of further restrictions. Mar 29, 2016 at 16:05
  • Unless the original licencor specifically allowed re-licensing under equal or more restrictive terms, you are not allowed to re-license anything. Even though the GPL allows re-distribution with software licensed under the same level of restrictions, this is not the same as re-licensing the GPL'd software itself. Mar 30, 2016 at 9:26
  • @MarjanVenema: that is not true. I can re-license MIT licensed code as I see fit as long as my new license also complies with the terms set by the original MIT license. It even explicitly says so in the body of the license: "the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"". Again, the numerous examples of MIT software in proprietary software supports my claim even if you don't want to bother reading and understanding the licenses. Mar 30, 2016 at 15:54

FFmpeg is released under the LGPL, however some optional parts are GPL licenced, so you have a choice as a user of FFmpeg: to use the LGPL parts in a LGPL product, or to incorporate the GPL parts in a GPL product.

If you release under AGPL your codec will become part of the GPLd parts of FFmpeg, and will possibly confused the bejeesus out of people. This is probably not a good thing at all (just see the answers you've gotten already!)

I would say the nest approach would be to licence your codec as LGPL and then it will fit nicely into FFmpeg without any hassle. GPL would be clearer but then you'd be in the same category as x264 codec etc. AGPL will just cause confusion - is it really worth insisting on AGPL licencing given this?

Note if FFmpeg takes your codec, they will have to modify the build to exclude your codec when someone builds it in its default LGPL state.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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