The demining of JavaCV's gpl v2 license agreement is written at the moment when TikTok uses OBS source code in violation of the GPLv2 license

TikTok Live Studio appears to have used OBS' source code without following the GPL license. The GPLv2 open source license used by OBS is highly contagious: as long as a software product uses the GPL agreement, the software product must also use the GPL agreement and must also be open source. But apparently, TikTok did not open source its live streaming software "TikTok Live Studio".
At present, TikTok has removed the release/download page of TikTok Live Studio, and has not responded further to the matter. The OBS team is actively contacting TikTok stakeholders to negotiate OBS's GPL license.

To be honest, I am not at all surprised by the thunderstorm of Tiktok. Everyone seems to have forgotten Bao.fengyingyin, kuaibo, Xun.lei player, tenxun qq player, and of course kmPlayer and potPlayer from South Korea, which are very popular on the Internet. These are all violations of the gpl v2 agreement. A frequent visitor to the ffmpeg shame column in the last issue.

I won't mention these first. I believe that many small partners are more concerned about the issue of whether the gpl v2 license is included in the project we are working on, and whether javaCV also has a gpl v2 license agreement. After all, this involves existing software products and hardware. Product patent licensing, today we will talk about the license agreements of openjdk, javafx, openjfx, javacv and ffmpeg.

Javacv License Agreement Mine

We can see from javacv official that javacv uses apache and gpl v2 with Classpath exception multi-license agreement.

Since 1.5.6, JavaCV has not included the code base licensed by gpl v2 by default, so it is not affected by the gpl v2 license. For the JavaCV source code, as long as the source code is not modified, it will not be affected by the gpl v2 license.

If it is a previous version or your codebase uses the gpl codebase from FFmpeg, it is affected by gpl v2.

After JavaCV 1.5.6, if you continue to use the code base of the gpl v2 license agreement, you need to add this dependency, so 1.5.6 is not affected by the GPL v2 license agreement by default:

    <!-- Optional GPL builds with (almost) everything enabled -->
    <dependency>
        <groupId>org.bytedeco</groupId>
        <artifactId>ffmpeg-platform-gpl</artifactId>
        <version>4.4-1.5.6</version>
    </dependency>

Friends who use the latest version of JavaCV can rest assured. If you used the old version, that is, JavaCV before 1.5.6, you need to pay attention. Your projects have been infected by the gpl v2 license agreement and can be upgraded to the latest version. to avoid risks.

What are the gpl v2 codebases in JavaCV?

The gpl v2 codebase in JavaCV is mainly concentrated in ffmpeg.
The ffmpeg shame column mentioned above knows that ffmpeg contains a large number of gpl v2 licensed code bases inside

ffmpeg license agreement: https://github.com/FFmpeg/FFmpeg/blob/master/LICENSE.md

List of codebases in ffmpeg using the gpl v2 license:

avisynth

frei0r

libcdio

libdavs2

librubberband

libvidstab

libx264

libx265

libxavs

libxavs2

libxvid

In addition, in addition to the OBS of this thunderstorm, the VLC player most commonly used by our audio and video developers is also the player software under the GPL v2 license agreement.

It can be said that there is currently no audio and video player on the market that is not a GPL v2 license agreement. Unless it does not support h265, GPL v2 cannot be bypassed.

About javafx and openjfx demining used internally by javacv

In fact, the gpl of openjdk and openjfx are also not gpl v2 licenses, but gpl v2 with the classpath exception .
insert image description here
So it is not affected by gpl v2 without modifying the openjfx source code.

How FFmpeg excludes GPL v2 license agreement code base

Through the above analysis, we know that the gpl v2 minefield in JavaCV is mainly concentrated in FFmpeg audio and video, which is the gpl code base in FFmpeg. Of course, FFmpeg itself is not a gpl license, but some of the libraries it uses internally contain gpl v2 licenses. We have listed all these libraries above, and you just need to check them one by one.

FFmpeg itself is LGPL licensed, but part of the codebase is GPL v2 licensed

ffmpeg的license:https://github.com/FFmpeg/FFmpeg/blob/master/LICENSE.md

How to exclude gpl v2 dependency in FFmpeg

What if I use FFmpeg and exclude the GPL v2 license code base?
This can also be done. FFmpeg has officially provided this method. As long as the gpl code base is not compiled without adding –enable-gpl when compiling, the FFmpeg we use will not receive gpl v2. Pollution.
insert image description here

I believe that when you see this, you should already know the twists and turns in your heart. All in all, the development of the software industry still has a long way to go.

If you think the blogger's writing is not bad, welcome to "Follow, Like, Favorite" to support the blogger's original work!

Guess you like

Origin blog.csdn.net/eguid_1/article/details/122109204