I am currently building a video streaming platform for my school. Because I want to serve videos in different resolutions, I use ffmpeg-static and fluent-ffmpeg. I recently checked the licenses and found that ffmpeg-static is licensed under the GPL 3.0 license, which allows commercial use but requires that I provide my source code. In the near future I might want to distribute my software that includes ffmpeg binaries. Now my question: May I use and distribute FFmpeg? and What do you mean by making the source code available? I don't want to publish my source code as that would give anyone the opportunity to copy my work. Do I have to publish all the source code or is it ok if I only publish the files where I use ffmpeg? If that were the case, it would make a lot of things easier.
May I use FFmpeg in my program and what do they mean by making the source code available?
In this case you probably do not need to publish your code if you use ffmpeg binaries.
The ffmpeg binary code is under GPL but as you are using a staticly built binary of it does not affect the licensing of your code.
You do however need to look at the licences of ffmpeg-fluent and ffmpeg-static. These are MIT and a unique License. So use of ffmpeg-fluent is no problem but the license on ffmpeg-static is not clear. The license file on github does not name a known FLOSS license and does not make sense as it refers to binary and it does not provide binaries (The comment notes it is like BSD 3 clause), however the licence given on https://www.npmjs.com/package/ffmpeg-static is GPL. As the licence is unclear I don't think anyone can use it but having the GPL possibility - if you include ffmpeg-static then you need to release all your code.
I would look for an alternative to fffmpeg-static. Which as it just downloads ffmpeg should be possible.
ffmpeg-static seems to be a downloader tool, so it makes sense that it doesn't directly contain the binaries. I don't see any indication that ffmpeg-static would have an unusual license, could you clarify? I see a BSD-3-clause in the repository, and a GPL-3.0-or-later declared in the package.json metadata, both of which are OSI- and FSF-approved.– amonApr 3, 2022 at 20:21
@amon Thanks for that - so it is possible GPL - or BSD - I think that makes ffmpeg-static totally unusable– mmmmmmApr 4, 2022 at 9:02
Interesting, do you have any proof or something like that, because I need to make sure I that I really may use the static binaries of FFmpeg if I don't use ffmpeg-static Apr 5, 2022 at 19:39
@Green_Lab The only proof is read the license of the ffmpeg binaries - it might also help to look at the Open Source StackExchange and see re GPL and binaries and also ffmpeg– mmmmmmApr 5, 2022 at 21:23
@mmmmmm Ok, but doesn't it clearly say
FFmpeg is licensed under the GNU Lesser General Public License (LGPL) version 2.1 or later? Apr 5, 2022 at 22:31
If you don't want to publish your source code, that's absolutely fine. Just don't use any GPL licensed software as part of your code.
It's very simple: Publishing software that contains GPL licensed code is copyright infringement unless you either provide the complete source code of your software to anyone asking for it for the next three years, or if you accompany every single copy of your software that you distribute with the complete source code. In both cases the source code must also be licensed under the same GPL license.