Open kingslay opened 5 months ago
有很多人发现KSPlayer的License改了,并通过邮件跟我进行了授权协议的讨论。所以我就在这个帖子里讲下背景和授权方案。大家可以对授权方案提出更多的建议。
背景
KSPlayer目前引入了libsmbclient, libsmbclient的协议是GPL。并且编译的FFmepg产物里面有包含GPL代码。所以按照要求应该是GPL。
目前这个项目主要的维护人太过单一。 所以为了保护这个项目,并让更多人贡献代码回馈KSPlayer,让这个项目能够有更好的发展。我决定把这个项目默认的协议改成是GPL,只有经过授权才能变成是LGPL。
KSPlayer的优势:
因为KSPlayer是针对Apple平台来开发的,使用的也是现代化的苹果官方语言Swift。 所以在代码层级对Apple开发者是很友好的。能够很方便的进行debug排查问题和增加功能。上手程度应该是会比mpv和vlc简单很多。
KSPlayer 对于苹果平台的一些特有功能支持的比较好,例如 Picture in Picture 、 Spatial Audio。
因为渲染完全使用苹果最新的API,所以能够享受到部分苹果系统播放器的能力,例如支持HDR10+。 但是KSPlayer也有很多问题,例如兼容性和稳定性比mpv和vlc差。
目前我们确定的授权个人开发者LGPL协议的方案如下:
授权LGPL需要开发者支付授权费,或开源贡献部分代码。目前默认用github sponsor来支付费用,可以一年支付一次,也可以每个月支付一次。github sponsor支持开发票。所以公司需要发票的话,可以通过github sponsor来开。
项目的README会有一个LGPL协议授权的APP列表。可以自由选择要不要出现在这个列表上。默认不出现,需要的可以提出诉求给我们。
KSPlayer 会分为两个版本: LGPL版本和GPL版本,GPL版本会是LGPL版本的子集,某些功能只会存在LGPL版本。并且bug会优先在LGPL版本修复。如果GPL版本有严重bug的话,那会同步修复bug。LGPL版本是闭源的,只有经过授权的人才能访问。
这个收费只是用于LGPL版本的授权,不包含技术支持的费用。
需要在APP的页面上,能够让用户知道使用的播放器内核是KSPlayer。例如APP里面有多个播放器内核,那在让用户设置播放器内核的时候需要显示KSPlayer这个名字,不能用其他的名字来代替。
授权分为三个方案,开发者只要任选其中一个就可以:
改成GPL协议之后,可能还是会有人不遵守GPL协议。但是至少我们拥有了起诉对方,保护自己的权利。可以认为这是一个防御性措施,具体的实现需要靠大家的自觉。授权协议里面的第一个和第二个方案,也是类似的,我们无法知道某个App的App Store收益,无法知道APP里面有哪些文件调用了KSPlayer代码。这些都需要App的开发者自觉的遵守合同。
对于后续KSPlayer的发展规划,我也稍微进行思考下,大家有什么好的想法也可以提出来,因为里面的有些事项是要靠大家来完成:
完善播放器界面(KSVideoPlayerView)的UI交互。用SwiftUI写一个功能丰富的苹果全平台的播放器UI,UI交互争取能够达到IINA的水平。这个播放器UI后续可能会独立出一个项目出来,主要是看大家的参与度怎么样。
完善KSPlayer对于各种视频流的兼容,争取跟mpv对齐。
优化KSPlayer内部的架构,对外提供更多能力,方便开发者进行定制开发。
围绕苹果平台的新能力,持续丰富播放内核的功能。例如XR
这个项目的开发版本和闭源版本都会有技术支持。对于bug或是crash的技术支持都是免费的。但是对于参数配置,或是功能使用上的一些疑问,是需要收费。有两个收费方式:
大家可以提功能改进或是新功能,我会按照自己的优先级先在LGPL版本免费实现,后续才会合入到GPL。如果开发者有功能定制的诉求,或是希望某个功能被快速实现,那开发者可以跟我提赏金功能,流程如下:
有很多人发现KSPlayer的License改了,并通过邮件跟我进行了授权协议的讨论。所以我就在这个帖子里讲下背景和授权方案。大家可以对授权方案提出更多的建议。
背景
KSPlayer目前引入了libsmbclient, libsmbclient的协议是GPL。并且编译的FFmepg产物里面有包含GPL代码。所以按照要求应该是GPL。
目前这个项目主要的维护人太过单一。 所以为了保护这个项目,并让更多人贡献代码回馈KSPlayer,让这个项目能够有更好的发展。我决定把这个项目默认的协议改成是GPL,只有经过授权才能变成是LGPL。
KSPlayer的优势:
因为KSPlayer是针对Apple平台来开发的,使用的也是现代化的苹果官方语言Swift。 所以在代码层级对Apple开发者是很友好的。能够很方便的进行debug排查问题和增加功能。上手程度应该是会比mpv和vlc简单很多。
KSPlayer 对于苹果平台的一些特有功能支持的比较好,例如 Picture in Picture 、 Spatial Audio。
因为渲染完全使用苹果最新的API,所以能够享受到部分苹果系统播放器的能力,例如支持HDR10+。 但是KSPlayer也有很多问题,例如兼容性和稳定性比mpv和vlc差。
目前我们确定的授权个人开发者LGPL协议的方案如下:
授权LGPL需要开发者支付授权费,或开源贡献部分代码。目前默认用github sponsor来支付费用,可以一年支付一次,也可以每个月支付一次。github sponsor支持开发票。所以公司需要发票的话,可以通过github sponsor来开。
项目的README会有一个LGPL协议授权的APP列表。可以自由选择要不要出现在这个列表上。默认不出现,需要的可以提出诉求给我们。
KSPlayer 会分为两个版本: LGPL版本和GPL版本,GPL版本会是LGPL版本的子集,某些功能只会存在LGPL版本。并且bug会优先在LGPL版本修复。如果GPL版本有严重bug的话,那会同步修复bug。LGPL版本是闭源的,只有经过授权的人才能访问。
这个收费只是用于LGPL版本的授权,不包含技术支持的费用。
需要在APP的页面上,能够让用户知道使用的播放器内核是KSPlayer。例如APP里面有多个播放器内核,那在让用户设置播放器内核的时候需要显示KSPlayer这个名字,不能用其他的名字来代替。
授权分为三个方案,开发者只要任选其中一个就可以:
改成GPL协议之后,可能还是会有人不遵守GPL协议。但是至少我们拥有了起诉对方,保护自己的权利。可以认为这是一个防御性措施,具体的实现需要靠大家的自觉。授权协议里面的第一个和第二个方案,也是类似的,我们无法知道某个App的App Store收益,无法知道APP里面有哪些文件调用了KSPlayer代码。这些都需要App的开发者自觉的遵守合同。
对于后续KSPlayer的发展规划,我也稍微进行思考下,大家有什么好的想法也可以提出来,因为里面的有些事项是要靠大家来完成:
完善播放器界面(KSVideoPlayerView)的UI交互。用SwiftUI写一个功能丰富的苹果全平台的播放器UI,UI交互争取能够达到IINA的水平。这个播放器UI后续可能会独立出一个项目出来,主要是看大家的参与度怎么样。
完善KSPlayer对于各种视频流的兼容,争取跟mpv对齐。
优化KSPlayer内部的架构,对外提供更多能力,方便开发者进行定制开发。
围绕苹果平台的新能力,持续丰富播放内核的功能。例如XR
这个项目的开发版本和闭源版本都会有技术支持。对于bug或是crash的技术支持都是免费的。但是对于参数配置,或是功能使用上的一些疑问,是需要收费。有两个收费方式:
大家可以提功能改进或是新功能,我会按照自己的优先级先在LGPL版本免费实现,后续才会合入到GPL。如果开发者有功能定制的诉求,或是希望某个功能被快速实现,那开发者可以跟我提赏金功能,流程如下: