SRS为何加入木兰社区孵化?

article/2025/8/23 10:36:11

凌云时刻

SRS正式加入木兰开源社区孵化,我想很多朋友只是大概知道木兰社区是国家级的开源社区,是一件很值得荣耀的事情,其他的事情可能就了解不多了。

这次和大家分享下我对这个事情的理解和思考,如果有疑问欢迎评论区留言,我以后有机会再解答。

就从我知道一部分疑问开始吧。

自己玩开源不是挺好么?


Q: 自己玩开源不是挺好么?为什么一定要加入一个开源组织?

A: 自己玩开源没有什么不好,加入开源组织可以做得更好,而且不妨碍继续贡献。

开源项目如果只是要活下来,完全不需要特别大的投入,只要不放弃持续投入就能继续做开源。

SRS已经活了8年,再持续活8年也不是什么问题,我考虑的不是活下来或被使用,而是如何能做得更好。

先分享下做开源项目都有哪些事情,以及大概需要多久时间投入,按一个版本计算:

 方向规划,哪些功能该做哪些不该做。由于人比较少,大概1周。

 功能实现,比如源站集群可能2周左右,WebRTC大概8周。

 写PPT,LVS和GOTC分享,平时公众号分享,大概4周。

 文档更新,一个版本的文档更新,双语Wiki,逻辑更新,大概4周。

 UTest测试,一般投入4周左右。

 Bugfix,一般8周。

这样算下来,SRS 3.0大概23周,SRS 4.0大概29周。一年我能投入的时间大概是10周,这就是SRS一般的版本发布都在2年左右。

一年法定假期是11天,加上可用年假大约20天左右,周末按每周投入1天,一共可投入70天也就是10周。

很明显,这里有些事情是大家比较愿意做的,有些并非是必须我做的,如果有更多的人参与,质量会更高。

由于音视频的门槛很高,这几年业务发展非常快,目前主要的矛盾已经是抢不到人了,开发者跟不上市场的需求。

如何让更多的开发者能入手音视频?开源项目是唯一途径,开发者只能从代码开始学习,代码都没有怎么学。

音视频的开源,真的对新开发者很友好吗?我认为非常不友好,太难了。

或许你觉得SRS的文档还比较容易上手,但学会推拉流并不是音视频的入门,而是要落地到业务场景,比如用开源自己做个直播产品,或者做一个开会的产品,或者做一个在线教育产品。涉及的就是多个开源产品的组合了,如下图所示:

如果有更多的活跃的贡献者,我就可以往开源方案做一做,结合多个开源项目,让音视频开发更简单。

为何不加入Apache?

Apache基金会是一个知名和开放的基金会,能加入Apache基金会孵化也是很值得骄傲的事。

SRS一直是一个中文社区,主要的用户也是在国内,音视频的业务规模也是国内更大,走得更先进。

木兰社区也是非常重量级的社区,也是开放的开源社区,我认为音视频项目,在国内开源社区孵化的优势更大。

木兰开源社区[1]是2018年国家重点研发计划“云计算和大数据开源社区生态系统”项目重点成果,由中国电子技术标准化研究院牵头,联合北京大学、国防科大、联想、腾讯云,以及开源中国、北航、中科院软件所、西南大学、华为、阿里云、浪潮、新华三、中电标协、中科院东莞育成中心、湖南酷得共16家单位共同承担。木兰开源社区立足中国,面向国际,联合汇聚国内开源生态圈相关方,共同打造国内开源生态,推动本土开源项目孵化,在推动培育开源贡献文化的同时,与国内外各开源社区融合发展。

隆重介绍下SRS的三位重量级导师:

 陈绪,江湖人称绪总,开源资深领袖,网上一搜一大堆的介绍。阿里云智能技术战略总监,主要负责战略规划、技术生态、投资评估、前沿技术等方向。同时任中国开源软件推进联盟常务副秘书长,从事开源软件工作超20年,对云计算产业有较深刻理解。过往经历主要涵盖开源社区,市场合作,战略规划,投资分析等。曾任Sun中国工程院工程师,北京泰宇科技技术总监,英特尔云计算战略总监等职。师从中国科学院高庆狮院士,2002年毕业于北京科技大学信息工程学院,获工科博士学位。2012-2014在清华经管学院学习,获EMBA学位。

 周明辉,北大计算机科学与技术系教授,在软件工程领域顶级国际期刊和会议 TSE、TOSEM、ICSE 和 FSE 等发表多篇论文,获 FSE 2010 ACM SIGSOFT 杰出论文;入选2012年教育部新世纪优秀人才计划;获2018年国家杰出青年科学基金。多次担任著名国际会议 ICSE、FSE、ASE、ICSME、SANER 和 MSR 等的 PC 和 PC Chair。主持制定了首个中英双语开源协议“木兰宽松许可证”并获得OSI 认证[2]

 单致豪,腾讯开源联盟主席,TARS 基金会董事主席。十余年互联网大规模系统研发、运营、管理经验,先后在百度、新浪、腾讯任职。负责过公司操作系统、应用安全、全球负载均衡平台、消息中间件、公共登陆、流程系统、运营平台、运营规划、资源及预算管理等。负责 TARS 开源的技术发展以及社区运营工作,把腾讯应用十多年的微服务架构体系推向开源之路,并且成为腾讯捐赠 Linux 基金会的第一个开源项目。

做开源还需要导师?那必须的,子曰“独自开源而无导师,则孤陋而寡闻”。

在中国做开源,国外的各种经验和模式不见得在中国能行得通,中国的开源一定要走出中国特色的开源道路。这已经不是想不想的问题,也不是愿意不愿意的问题,是必须得走的路。

要走出自己的开源的道路,靠自己摸索得走多少弯路,导师作用就非常大了,视野和格局都完全不一样,太重要了。

是否要换木兰协议?

协议肯定要换的,但会有个过渡期。预计SRS 4.0依然使用MIT协议,SRS 5.0使用MIT+木兰协议[3],预计SRS 6.0切换到木兰协议不再使用MIT协议。

其实MIT[4]协议,和MulanPSL-2.0[5],都是OSI认证的协议,都是国际认可的开源协议。而木兰协议也是BSD兼容[6]的协议,在开放性和商业友好上完全没有问题,基本上可以认为使用木兰协议,和使用BSD协议差不多。

至于为什么不用BSD而要用木兰协议,具体可以看为什么我们国家要搞自己的开源协议。我学习了下,一方面在语言上英文的协议有些不清晰的,特别是对于非英语母语的开发者来说;另外,木兰协议避免了互诉的漏洞。总之,中国开发者,用木兰协议就对了,阿里的重量级数据库OceanBase[7]也用的是木兰协议。

如何使用双协议,以及如何在代码中使用开源协议,Linux基金会定义了一个SPDX[8]的规范,Linux内核[9]也是遵守这个规范的。比如:

// SPDX-License-Identifier: GPL-2.0 OR MIT

POCO[10]使用的是Boost协议BSL,但也是遵守了SPDX规范,它在LICENSE[11]中加了说明:

Boost Software License - Version 1.0 - August 17th, 2003......---------------------------------------------------------------------------
Note:
Individual files contain the following tag instead of the full license text.SPDX-License-Identifier:    BSL-1.0This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/

这样在代码中就只需要简单的按照SPDX说明下用的协议,可以是单协议,也可以是双协议了,比如:

// Copyright (c) 2012, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier:    BSL-1.0

SRS 4.0使用MIT协议,也遵守了SPDX规范,参考67272f0[12],这样后续切多协议会更方便。

会不会沦为KPI项目?

KPI大法好啊,开源项目如果用上了KPI大法,那发展速度还不杠杠的。

来一起围观下SRS十年的KPI,现在一般改头换面叫OKR了,其实本质上没有差别,就是鞭策自我前行的大法:

SRS的目标(O)是:提升视频开发者的创造力。SRS的关键结果(KR)定义了三个:

 公众号100K关注:只有足够多的开发者关注,SRS才能反过来影响足够多的开发者,才能算提升创造力,如果只提升了一百个开发者的创造力,显然是不能算达到目标的。

 SRS 100K star:只有达到足够多的Star,才能说明开发者是认同SRS的方向,只有不断更新和把握了互联网视频的方向,才有可能提升开发者的创造力,如果拥有的能力是淘汰的能力,比如是赶马车的能力,影响足够多的开发者又有什么意义呢。

 100万开发者:音视频开发者太少,严重阻碍了各行各业的应用,而开源最大的贡献就是让开发者多起来。只有开发者多了,行业的应用才会繁荣,产生巨大的价值,社区和音视频的商业化也才会更有价值。

SRS将持续努力,不避锋芒,不媚逢迎,不辞风雨,不患得失,不畏将来,不念过往。

具体怎么孵化?

这次主要是给大家介绍下,为何要加入木兰社区孵化。我们已经开始探讨孵化的详细计划和时间表,初步暂定孵化SRS 5.0,因为SRS 4.0已经差不多在Release阶段了。

给大家再介绍下SRS的吉祥物,莲藕战神,打不死活得久:

以及木兰社区设计的LOGO,是我们孵化的第一个成果哦:

这个LOGO的含义如下,满满的文化和艺术气息:

后续消息敬请期待。

References

[1] 木兰开源社区: https://mulanos.cn/
[2] OSI 认证: https://www.163.com/dy/article/F9M6RV5N0511CUMI.html
[3] 木兰协议: https://license.coscl.org.cn/MulanPSL2
[4] MIT: https://opensource.org/licenses/MIT
[5] MulanPSL-2.0: https://opensource.org/licenses/MulanPSL-2.0
[6] BSD兼容: https://www.apache.org/legal/resolved.html#category-a
[7] OceanBase: https://gitee.com/oceanbase/oceanbase/blob/master/LICENSE
[8] SPDX: https://spdx.org
[9] Linux内核: https://www.kernel.org/doc/html/latest/process/license-rules.html#license-identifier-syntax
[10] POCO: https://github.com/pocoproject/poco/blob/master/LICENSE
[11] LICENSE: https://github.com/pocoproject/poco/blob/master/LICENSE
[12] 67272f0: https://github.com/ossrs/srs/commit/67272f0721db044d98e324df23bc0d2a3e8817c8#commitcomment-51515520

来源|SRS开源服务器

END

长按扫描二维码关注凌云时刻

每日收获前沿技术与科技洞见

投稿及合作请联系邮箱:lingyunshike@163.com


http://chatgpt.dhexx.cn/article/bcMEs9Vu.shtml

相关文章

陈绪:被疫情加速的云计算 | 凌云时刻

凌云时刻 导读:"疫情是云计算腾飞的一个推动力,只是突然而来的肺炎病毒,在给所有人带来损失的同时,也为云计算的生态格局创造了一个全新的变化。" 作者 | 陈绪 来源 | 凌云时刻(微信号:linuxpk…

申通上云?技术详解! | 凌云时刻

凌云时刻 技术 导读:如果说,快递行业上半场的竞争拼的是规模、服务乃至价格,进入下半场,快递企业们还需要比拼硬核的技术实力。 作者 | 周金龙(遥方) 来源 | 凌云时刻(微信号:linux…

eBPF Internal: Instructions and Runtime | 凌云时刻

凌云时刻 技术 导读:eBPF 是最近几年异常火爆的一门内核技术,从2011年开发至今,eBPF 社区依然非常活跃。eBPF 可以通过热加载的方式动态的获取、修改内核中的关键数据和执行逻辑,避免内核模块的方式可能会引入宕机风险&#xff0…

乘风破浪的中国数据库 | 凌云时刻

凌云时刻 洞见 导读:从80年代萨师煊教授的一行板书,到今天国产数据库的百花齐放,四十年科技自研,中国数据库都经历了什么? 作者 | 丹如 来源 | 杭派工程师 前言 “科技行业已经没有什么惊心动魄的大事了!”…

harmonyos开发者社区,HarmonyOS开发者创新大赛结果公布,社区渠道参赛队伍战果斐然...

HarmonyOS开发者创新大赛是华为HarmonyOS开发者生态建设的重要一环,致力于挖掘优秀的应用创新人才及项目。参赛队伍基于HarmonyOS的创新特性,结合应用场景,开发出具有全新体验、全新交互的终端应用。对有市场前景的项目,华为不吝帮…

凌云抒志 星海航帆 | 汇佳学校MYP社区设计展隆重举办

毕业,一个带着憧憬、喜悦和不舍的复杂字眼。在那些不曾预料的挑战和困难中,拥有不寻常经历的2022届MYP毕业生,通过为期一年的社区服务与行动,为这个词增添了新的注解:毕业,还需要“勇气”与“坚毅”&#x…

YOLOv2相比于yolov1的改进

1.Batch Normalization Batch Normalization可以提升模型收敛速度,而且可以起到一定正则化效果,降低模型的过拟合。在YOLOv2中,每个卷积层后面都添加了Batch Normalization层,并且不再使用droput。使用Batch Normalization后&…

YOLOv1,YOLOv2,YOLOv3解读

本文依次讲解YOLOv1,v2,v3。博客地址https://blog.csdn.net/hancoder/article/details/87994678 文章目录 YOLOv11.1 Introduction1.2 Unified Detection1.3 网络框架1.4 Loss解读LOSS: 1.5 test附:NMS示例: 1.7 YOLOv1结语待解决问题 YOLOv22.1 Better更…

Yolov2模型——pytorch实现

论文传送门:YOLO9000: Better, Faster, Stronger Yolov2的改进: 1.批标准化(Batch Normalization):在conv后加入BN(conv不再使用bias),改善模型的收敛性,同时去掉dropout; 2.高分辨率分类器(High Resolut…

【YOLO系列】--YOLOv2超详细解读/总结

本章论文: YOLOv2论文(YOLO9000: Better, Faster, Stronger)(原文+解读/总结+翻译) YOLO系列解读直通车🚀: YOLO系列-【YOLOv1】🚀 YOLO系列-【YOLOv2】&a…

YOLOv1、YOLOv2和YOLOv3对比

YOLOv1、YOLOv2和YOLOv3对比 R-CNN系列YOLOv1结构目标输出网络训练YOLOv1的局限性和R-CNN系列的对比 YOLOv2结构目标输出网络训练关于YOLO9000 YOLOv3结构目标输出网络训练YOLOv3系统做过的不成功的尝试 未来 YOLO深度卷积神经网络已经经过原作者Joseph Redmon已经经过了3代4个…

YOLOv2 论文笔记

论文地址:YOLO9000: Better, Faster, Stronger 项目主页:YOLO: Real-Time Object Detection (最近博客下很多人请求Caffe 代码,受人所托,已经不再提供,且关闭本文评论,望请见谅) …

YOLO - v1

先理解预测阶段: 1)一个448*448*3的图像经过YOLO这个黑箱输出一个7*7*30矩阵; 2)7*7*30的矩阵中的30维是5520;5是预测的bbox的x,y,w,c;20是20个类别的条件概率; 解释c: 解释条件概率:它的意义是…

YOLOV2网络模型

目录 资料 网络模型原理 网络框架 相对于yoloV1的改进 Batch Norm High Resolution Classifier Convolutional With Anchor Boxes Dimension Clusters New Network:Darknet-19 Direct location prediction PassThrough Multi-Scale Training Loss YOLOV2的训…

YOLOv3

YOLOv3 论文信息论文标题:论文作者:收录期刊/会议及年份: 论文学习YOLOv3 网络架构:YOLO 输出特征图解码(前向过程):训练策略与损失函数(反向过程):精度与性能…

从YOLO到YOLO v2再到YOLO v3

配置相关博客链接: YOLO V3-GPU版本在Windows配置及注意事项 YOLO v3在Windows下的配置(无GPU)opencv3.2.0VS2015 前不久YOLO v3出来了,就迫不及待的想试一下。以前装过darknet所以我把整个darknet的文件夹全部删掉。 然后按照…

yolovx

1.输入端 (1)Strong augmentation Yolox主要采用了Mosaic、Mixup两种数据增强方法 有两点需要注意: (1)在训练的最后15个epoch,这两个数据增强会被关闭掉。 而在此之前,Mosaic和Mixup数据增…

史上最通俗易懂的YOLOv2讲解

博主本来想自己写一篇关于YOLOv2的论文笔记的,在找资料的过程中看到这篇天秀的博客,就“据为己用”了。不得不出,很多大佬写的都太深刻了,还是转载比较舒服点~~~~~~ 本文转自目标检测|YOLOv2原理与实现(附YOLOv3) 前 言 在前面的…

【目标检测】YOLOV2详解

前言 前面我们已经讲解过了YOLOV1,因此在这里我会接着前几天的讲解,进一步写一下YOLOV2的基本思想和改进。 YOLOv2的论文全名为YOLO9000: Better, Faster, Stronger,它斩获了CVPR 2017 Best Paper Honorable Mention。在这篇文章中&#xf…

YOLOv2目标检测算法——通俗易懂的解析

目录 YOLOv2目标检测算法前沿一.YOLOv2的改进1.1.BN1.2.High Resolution Classifier1.3.anchor1.4.Fine-Grained Features(细粒度特征)1.5.Multi-Scale Training 二.损失函数三.检测更多类别 YOLOv2目标检测算法 前沿 前面我们讲过了YOLOv1目标检测算法,不了解的小…