What's the difference between GPL and LGPL?
The GNU General Public License (GPL) and the GNU Lesser General Public License (LGPL) are two different open-source software licenses published by the Free Software Foundation (FSF). Both licenses share the goal of ensuring that software remains free and open, but they have different levels of permissiveness when it comes to linking or integrating GPL or LGPL code with proprietary software.
Here are the key differences between the two licenses:
GPL (GNU General Public License): The GPL is a "strong copyleft" license. If you use GPL-licensed code in your software, you must also release your software under the GPL or a GPL-compatible license. This means that any derivative work or software that links to GPL code must be open-source, and the source code must be available to users. The users are also granted the freedom to modify, distribute, and use the software for any purpose, as long as they adhere to the GPL's terms.
LGPL (GNU Lesser General Public License): The LGPL, previously known as the "GNU Library General Public License," is a more permissive, "weak copyleft" license compared to the GPL. The LGPL is designed for software libraries, allowing them to be linked with proprietary software without requiring the proprietary software to be released under the LGPL or a GPL-compatible license.
In other words, you can use LGPL-licensed libraries in your proprietary software without making your software open-source. However, if you modify the LGPL-licensed library itself or create a derivative work based on the library, you must release the modified library or derivative work under the LGPL.
To summarize, the GPL ensures that any software using or linking to GPL-licensed code must be open-source, whereas the LGPL allows proprietary software to use and link to LGPL-licensed libraries without becoming open-source, provided the library itself is not modified or turned into a derivative work.
What license does latest version of ffmpeg use? GPL or LGPL?
As of my knowledge cutoff in September 2021, the latest version of FFmpeg can be built under both the GPL and LGPL licenses. By default, it is licensed under the LGPL (GNU Lesser General Public License), which is the more permissive license.
However, when you enable certain GPL-licensed components or configure options during the compilation process, the resulting build of FFmpeg falls under the GPL (GNU General Public License), which is a more restrictive license.
It's essential to be aware of the licensing terms when using FFmpeg in your projects, especially if you plan to distribute your software or include it in commercial products. Make sure to consult the documentation and legal information related to the specific version of FFmpeg you're using. Note that this information may have changed in the newer versions released after my knowledge cutoff.
If I develop a software that partly uses ffmpeg, but only by invoking its pre-compiled, unmodified binary, I can charge in my software and I don't need to make my software open-source, right?
Yes, you are correct. If you develop software that uses FFmpeg by only invoking its pre-compiled, unmodified binary (for example, through command-line calls or a separate process), you don't need to release your software under the GPL or LGPL, and you can charge for your software. This is because your software is not directly linking to or including the FFmpeg source code or libraries.
However, it's essential to comply with the license terms under which FFmpeg is distributed, which typically include providing proper attribution to FFmpeg, mentioning the license (either GPL or LGPL, depending on the specific build), and providing a copy of the license text.
It's always a good idea to consult with a legal expert when dealing with software licenses to ensure compliance with the terms and conditions of the licenses involved in your project.