本来写了20380个字的年终总结,后来画了一张图差不多就说清楚了,压缩到了4131字,是下图大图哈,不是上面小图哈哈哈:

Note: 我本来准备了一堆的具体数字,后来我仔细想了想,数字似乎看起来挺有说服力,可惜不能证伪,所以并没有实际价值,干脆用这张定性的图更好点。

•伸手党:不能自理的用户,往往可能不是水平差,而是不想自己花时间,不看文档就提问,抓住一个人溺水式提问——问死你,伸手党是绝对的贬义词,社区未来重点打击对象。•白嫖党:开源大部分都是白嫖,也无可厚非,我并不觉得这个是贬义词,就像我自己又反馈过多少开源项目呢,Google过多少答案自己又回答过多少。•开发者:从使用到反馈,不管是提交Patch,还是反馈问题,还是测试新功能,还是回答问题,还是提交Issue,还是吐槽,对项目有反馈的朋友都统称为开发者。•活跃开发者和TOC:比较持续发挥作用的活跃开发者,以及核心功能和模块的维护者,在SRS技术委员会的就是这群同学,这是火车头,质量大于数量。

删掉总结中的不痛不痒的话,最终还是留下了一些失败的故事,请大家别对号入座,失败的故事都是说的我本人而已。

故事一:从同类项目中导流,往往没有什么效果

大约在2015年左右,SRS发展2年了,各方面都觉得自己比NginxRTMP强。而且NginxRTMP也大概在这时候不维护了,还有个Issue问是否NginxRTMP这个项目是不是死了,我就在这个Issue里面兴高采烈的给大家介绍,可以用一个更牛逼的开源项目SRS。

结果就被大家鄙视和喷得不行,NginxRTMP的粉丝回复说“在其他开源项目中打广告是非常非常不礼貌的行为,而且绝对不可取”,我只好灰溜溜的删除了评论。

被批评当然是很难受的,当然人家也是非常不高兴。别的项目不维护,并不能成为迁移到新项目的理由,NginxRTMP不维护了,难道SRS就能一直维护?难啊,相当的难。

其实NginxRTMP有fork在维护,而且还有NginxFLV,NginxTS等项目,因为Nginx是个庞大的生态,RTMP这个不维护了,不代表大家就立刻不能用了,还是可以继续使用的,代码大家都有,可以自己改的。

另外,对于服务器是否应该要提供全一点的功能,还是只提供单一的比如RTMP+HLS功能,其实大家有不同看法。只是我以为SRS的方式是最好的,只是一厢情愿而已。

这个失败的故事,我明白了,做好自己的事情才是最重要的。别的开源社区的开发者,并不能直接转移过来。社区的开发者转移,是有很高成本的,这也是开源项目值得投入的原因吧。

详细的故事,请参考 NginxRTMP #605[1]

故事二:全球大饼很大,牙口不好也啃不动

SRS在线的实例中,有接近一半是海外的量,其实SRS的用户是全球化的了。但是SRS的核心开发者一直没有国外朋友,如果搜索英文的流媒体服务器,包括各种Wiki和媒体上,还是国外的开源项目的介绍。也就只有少量的华人在介绍SRS的用法。

为何国外这么广阔的市场,SRS不去重点攻这个市场呢?因为搞不定。

首先是语言的问题,SRS其实是有英文WIKI的,但水平一看就肯定是中国人写的,都是我自己写的,语病很多。这天然就造成了没那么信任了,特别是Issue中大家沟通有障碍,比如有个国外朋友问了个问题,我没听明白是什么意思,我就回他说:“I don't understand what's your problem.”

中国人都很了解,意思是我没听懂。而其实这句英文翻译过来应该是:“你丫这是什么毛病”。因为problem并不是我们理解的问题,而是毛病的意思。这无异于是鸡同鸭讲了,还怎么愉快的玩耍呢。

其实也有各种国家的朋友,通过Skype咨询,不过那信号太差了,聊不起来。而且不同国家的口语差别还挺大,基本上整不明白。经常Yeah一会儿了就挂了,头痛得不得了。

从这事我算是明白了,无论别的项目海外做得多好,吃饼还需自己牙口好。最近开始猥琐发育,在StackOverflow上回答SRS的相关问题。

详细的故事,请参考 SRS #1092[2]

故事三:开源不是商业PK,口水仗无益

开源社区是一个繁荣的社区,轮子非常多。新的用户往往不知道如何选择,所以会有比较常见的问题就是想知道开源产品的差异,也有好事之徒喜欢看社区之间互喷,还有新的开源项目为了吸引流量喜欢对比来凸显自己的优势。

常见的商业产品之间的PK对比,在开源项目之间也有,个人认为是不可取的,口水仗无益。

我就经常干这种不可取的错事。

我认为对比开源项目的合理原因包括:

•新的开发者想快速了解开源项目,通过对比和PK,是比较容易,也比较方便了解这个领域的大概功能,以及要解决的问题是什么。•开发者喜欢看PK,这是一种更具备娱乐性的互动,喜欢争论哪个是最好的语言,哪个是最好的框架。争强好胜的心理,大概是与生俱来的吧。•能简单粗暴的客观的对比出目前的水平,能快速做出判断,选择哪个开源项目是更合适的。能提高开发者的效率,不需要花大量时间调研就能做出选择。

我认为对比开源项目的坏处是:

•数据是客观的,也具有误导性,没有准确的真相。PK的结果有时候来源于自己的项目的了解程度,就好像我们评测汉语和英语一样,总觉得汉语更博大精深一些(我也如此认为),而汉语中自己的方言听起来更舒服一些,评测并不客观。•只能对比到表象,而无法对比根本。表象就是现状,根本就是社区的活跃开发者。我们能对比性能和功能,却不可能评估出社区的开发者的状态,他们之间的关系以及是否能持续贡献,这是开源项目的根本。评测可能会把有坑的开源项目推荐给开发者。•优势就是劣势,是优势还是劣势要看开发者的情况。对于解决问题的能力很弱的开发者,所有开源项目都是坑。比如C++11,对于有些开发者是信仰,是高效率的关键,而对于C语言的开发者就是糟糕的根源。开发者的水平才是决定性的根本。

开源项目对比,是个错误,却停不下来。

详细的对比,请参考 如何选择音视频开源项目,避坑指南,入坑躺平 以及 SRS Compare[3]

故事四:开源要征得老板同意,悄悄做不可取

这个话题比较敏感,这是多个真实的故事,混淆之后的一个半真半假的故事。

开源最难处理的就是和老板或上级的关系,因为开源最直接的受益者是自己,对公司有什么好处?对直接上级又有什么好处?现在都很难讲清楚。

坏处倒是很明显。

•有可能泄漏公司商业代码吧,不是故意的也可能是不小心的,这是数据安全事故的风险。对领导来说,只有风险没有收益,这也太难为人了。•是不是花了太多的时间了,KPI完成了么。要做好开源不容易,你肯定花了很多时间吧。如果这些时间都投入在产品上,公司业绩肯定会更好啊。•是不是会让竞争对手更强大,至少让他起步更快了吧。而且开源的质量可能比商业产品还高,比如改WebRTC改来改去的,最后还不如WebRTC。

每次开发者提交了比较多的代码,或者大块的功能,或者需要投入时间来参与到SRS,我总要仔细盘问:和你领导商量过了么?领导同意么?

从法律上来说,我们的产出全部属于公司,当然需要征得公司同意才能开放自己的代码。

•业余时间写的代码也属于公司的么?是的。•不拿公司代码,自己全部写的也是公司的么?是的。•用自己的个人电脑写的代码,也是公司的么?是的。

当然,开源对公司也不见得只是坏处,也能有好处。

故事五:开源社区和商业化,真的不一样

SRS在2016年左右尝试过商业化,那时候我们觉得好的代码,高性能的服务器,一定会有市场,所以就提供了开源版本和商业版本,当然后来没有做成:不一定好就买单,何况当年还远不算不上多好。

想想当年我们做SRS商业化,失败主要的原因包括:

•开源社区太小,商业化的用户就没有了。SRS其实是发展非常慢的一个社区,因为社区不只是有代码,不只是高性能,不只是功能。当时开源一年左右,SRS除了一些用户,连提交代码的开发者都没有几个。•音视频的市场比较分散,服务器的细分市场也不大。比如Adobe AMS咋样了,Real的Helix又咋样了,Apple的Darwin是不是也咋样了。活得比较滋润的是Wowza吧,也开始弄云平台了。SRS是服务器,用户更多是用来做私有化部署,以及学习用的,这个市场就更小了。•混淆了开源文化和开源商业化。开源没有经验,开源商业化也没有经验。只是觉得好东西就有市场,当然要挂掉了。好东西,有市场买单,中间差得千山万水太远了。

开源的基础是开发者,包括开发者的能力、习惯和协作方式,国内目前相对比较初级的阶段。从国内发起的开源项目,还比较少能算上成功的。

我的感觉,目前国内做开源,就好像王婆在盐碱地里种西瓜,不仅收成不好,还要自卖自夸。当然,盐碱地也是我们自己的土地,除了坚持做持续做,没有第二条路可以走。

这个话题不敢多聊,主要是自己真的不懂商业化,只知道SRS目前的定位还是做开源社区,目标并不是商业化。

故事六:为什么做开源,难以启齿的理由

到底为什么做开源?这不是我第一次回答,回答过很多次了,都是些冠冕堂皇的理由,列下我记得的理由吧:

•觉得自己能造个更圆的轮子,证明自己牛逼。•做技术的人,一定曾经受益于开源,想回馈开源社区。•中国要有自己的开源的路径,走出自己的开源之路。•开源是长期主义者,猛攻行不通,要细水长流,容易建立时间壁垒。•能认识很多优秀的开发者,能避免独学而无友。•开源是和开发者沟通的桥梁,能建立持久而广泛的影响力。•开源能解决钱解决不了的问题,开源的社会协同价值更高。

我说下不那么好意思讲的,难以启齿的理由:

•已经被打上了开源的标签,骑虎难下,不如发挥自己优势,持续投入开源,挖掘更多价值。•羊毛出在猪身上,不一定在开发者身上直接赚钱,Github不也是大部分白嫖党,不一样也有很高的商业价值。•目前开发者中白嫖党多,下一代越来越有钱了,未来趋势是付费意愿越来越强,未来搞不好可以找到盈利点。•心理反噬:以前家里太穷,一直都是为了赚更多钱,不想赚钱的想法在潜意识越来越强大,开源各方面都很好就是不赚钱。•一直都活得太一本正经了,其实自己本质上就是个屌丝,潜意识中充满了娱人娱己的精神,因为最初音视频和最大的场景是互动娱乐,现在大家不也觉得开直播当主播很LowB么。

缘起我就来做开源,缘灭时我就不做了。

References

[1] NginxRTMP #605: https://github.com/arut/nginx-rtmp-module/issues/605
[2] SRS #1092: https://github.com/ossrs/srs/issues/1092
[3] SRS Compare: https://github.com/ossrs/srs/tree/2.0release#compare


本文转载自公众号SRS开源服务器:


扫描图中二维码或点击阅读原文

了解大会更多信息

SRS的2021,盐碱地里种西瓜的王婆相关推荐

  1. AAAI 2021:一种跨城市迁移的新冠肺炎高危社区发现框架

    新冠肺炎已经在世界范围内广泛传播,严重影响着人们的日常生活.面对新冠肺炎,人为干预的空间隔离手段(如限制出行或集中隔离)已经被证明其有效性.但是,确诊病例的统计往往是滞后且粗粒度的,比如对于尚未确诊的 ...

  2. sdut4259种西瓜 [原题: 2018西安邀请赛K题]【线段树】

    种西瓜 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 现在郭小冉决定在瓜场种m年西瓜. 首先他有n块西瓜地. 第i块西 ...

  3. sdut 4295 种西瓜 (2018西安邀请赛K)【线段树】

    种西瓜 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 现在郭小冉决定在瓜场种m年西瓜. 首先他有n块西瓜地. 第i块西 ...

  4. NKOI 1385 笨笨种西瓜

    笨笨种西瓜 Time Limit:10000MS  Memory Limit:165536K Total Submit:163 Accepted:82 Case Time Limit:1000MS D ...

  5. 2021年12种高级UX / UI设计趋势

    互联网产业格局每天都在变化,新的趋势用户和竞争对手中源源不断地出现. 这些趋势中,有的只是一些只是空想而已,有的可以被沿用一段时间,而有的却可以影响甚至改变UX / UI设计的范式,打开一个新时代,同 ...

  6. 2021年10种手机app界面设计用户体验趋势

    幸运的是,当2020年即将结束时,这是探索2021年我们将拥有的完美时机.这里列出了2021年将形成的10种移动用户体验设计趋势. 1.超级应用程序的兴起 在过去的二十年中,移动应用程序开发模型保持不 ...

  7. 打工人的健康修炼记:2021卷里求生(附报告下载)

    2020年,哪一类产品在直播间突然火爆起来了?可能是"内卷"打工人们最绕不开的--健康养生系列. 防疫新常态,保持身心健康已成为生活第一要义.80/90后已成为当下社会中坚力量,一 ...

  8. 弹指间计算机协会 2021“千里码”程序设计竞赛 题面

    A.Hello World! Description 为保证所有参赛人员在比赛中都能拿到分数,本题只考察c++的输出. 算法比赛不仅考察思考问题的能力,也需要一定的细心程度. 直接输出" H ...

  9. NKOJ——P1385——笨笨种西瓜

    时间限制 : 10000 MS 空间限制 : 165536 KB 原题 问题描述 输入格式 输出格式 样例输入 样例输出 题解 原题 问题描述 笨笨种了一块西瓜地,但这块西瓜地的种植范围是一条直线的- ...

最新文章

  1. 白领职场必懂的22条潜规则(转载)
  2. 常用代码整理(重要)
  3. leetcode3 无重复字符最长子串
  4. 安卓学习笔记09:常用布局 - 帧式布局
  5. python小老鼠编程_Python小老鼠编程,Python入门到精通(非常详细)
  6. Ojbect-C     NSArray和NSMutableArray数组的使用   有关API查询
  7. C#设计模式之一单例模式(Singleton Pattern)【创建型】
  8. python替换文件中的字符串_Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)...
  9. 云智慧获 D 轮数 2500 万美元投资:全力推动智能运维落地
  10. php继承 重写方法吗,PHP中的继承与重写
  11. 翻译: Keras 标准化:TensorFlow 2.0 中高级 API 指南
  12. 虚拟机系统iso镜像下载_[原版镜像]macOS Mojave 10.14.1 原版 iso 镜像- 虚拟机专用
  13. 软件质量管理-复习总结
  14. chrome源码国内下载
  15. java 停止定时器_Java/Android计时器(开始,暂停,恢复,停止)
  16. Windows平台chrome webdriver的下载与安装
  17. 电脑开机黑屏,只有鼠标箭头(windows无法加载桌面)?
  18. 全国计算机水平考试技巧,备考计算机等级考试的技巧
  19. Android高级工程师面试题-字节跳动,含BATJM大厂
  20. 用php造了一个地址自动识别功能

热门文章

  1. MAX3222/MAX3232/ MAX3237/MAX3241/串口通信中文_技术文档
  2. 01LaTeX学习系列之---TeX的介绍与认识
  3. 前端js实现字符串/图片/excel文件下载
  4. 硬盘的原理以及SQL Server如何利用硬盘原理减少IO
  5. AntDB上使用表空间
  6. React版本更新及升级须知(持续更新)
  7. 解决appium安装app时某些手机弹出的提示框
  8. Android 应用 之路 百度地图API使用(3)
  9. mac osx wine 1.7.5 源码编译方法及中文乱码的解决
  10. log4j 配置文件_Log4j系列教材 (三)- log4j.xml