来源:来自 Twitter-X2Rtc
开源究竟有多难
据相关机构统计,SourceForge 上托管的项目失败率达到了80%, GitHub 上超过85%的项目是无效项目。
失败的原因大致有:
01.开发了一个没有任何用处的软件项目;
02.没有吸引到任何的开发者;
03.技术设计过于集中;
04.开发者之间的协作有问题;
05.需求不够明确;
06.不能得到更多人的认可和信任。
为什么会有开源软件?
广义上讲,开源软件指所有公开源代码的软件,包括某些商业软件也可能是开源的。但我们通常所说的开源软件,是狭义上的,指任何人可以通过极低的成本 (如仅仅访问互联网而无需其他额外费用)获得该软件源代码的软件,也就是其源代码向公众开放。和狭义上的开源软件相对应的,就是那些不向公众公开源代码的软件,通常就是商业软件。
实质上,在计算机出现的最初年代,几乎所有的软件都是开源的。那时的计算机企业,主要是以销售硬件产品为主,软件几乎都是附送的,加上那时的软件规 模都不大,以源代码形式提供给用户还可以缓解一定的技术支持压力——有问题由用户自己修改解决。所以,最初的软件几乎都是以开源的方式提供的。因此,对着迷于计算机编程的工程师来讲,获得软件的源代码几乎是天经地义的事情。这样,当以微软为代表的企业开始实践纯软件产品的商业模式(核心思想是提供二进制可 执行程序的使用许可,而不提供源代码),就引起了许多计算机编程爱好者的不满:给我一堆二进制程序,我如何才能按我自己的想法改进程序?在这种背景下,真 正意义上的开源软件就自然而然地产生了。
开源软件发展历程
开源软件的发展,和互联网的发展密不可分。真正有规模的开源软件,应该是从上个世纪 90 年代开始进入公众视线,也就是互联网开始兴起的年代。我们大致可以将开源软件的发展分为如下三个阶段:
开源0.0——“自由软件”时代
开源始于70年代中期,科研人员和业余爱好者开发软件,而那时候的宗旨是:免费赠送软件,加上当时互联网取代了高级研究计划局网(Advanced Research Projects Agency Network,ARPANET,美国国防部高级研究计划局组建的计算机网),使得协作和交换代码变得更加容易。
开源1.0——技术支持和服务时代
1991年,Linux面世,开源对企业的重要性愈发显著,它是一种能够更好、更快开发核心软件技术的方法。越来越多的基础开源技术应运而生,于是,开源社区和企业开始尝试推进商业化。
1998年,“开源”这一术语诞生于开放软件倡议书(the Open Software Initiative),大约在那时,第一个真正的商业模式出现了:RedHat、MySQL和许多其他公司为免费软件提供付费技术支持和服务。
开源2.0——SaaS和开放核心(Open Core)时代
在开源软件一开始商业化时,业内很多人认为,其潜能远远无法与专有软件公司比肩,然而到了2000年之后,云计算为开源软件插上了起飞的翅膀,让公司们能够运行开源的软件即服务(Software-as-a-service,SaaS)。
开源是大势所趋?
从政策侧来说,在《国民经济和社会发展第十四个五年规划和2035年远景规划纲要》明确提出,支持数字技术“开源”发展。其中“深度学习框架等开源算法平台构建”被列入新一代人工智能科技前沿领域攻关内容,“支持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务”被列为加强关键数字技术创新应用的重要举措。
从市场侧来说,谷歌的 Android 操作系统,从 2007 年开源发布第一个版本起,到今天已经发展到 4.1 版本,占据了智能手机操作系统一半以上的市场份额,谷歌也通过 Android 操作系统在移动互联网这一新兴行业中占据了领先和主导地位。再比如在服务器端广泛使用的关系型数据库 MySQL,在以开源软件和商业许可并行的模式下,得到了快速发展,并在 2008 年作价 10 亿美金由 Sun 收购(后者又在 2009 年被 Oracle 公司以 74 亿美金的高价收购)。
相反,以前一直和开源软件做斗争的微软公司,却因为无法快速推出适应市场的 Windows Phone 操作系统,在移动互联网竞争中处于下风。为顺应潮流,微软也开始拥抱开源,比如向Samba项目贡献代码,放弃自己研发多年的大数据项目而选择 Hadoop为其大数据的核心等。
正是在这种大趋势和鱼龙混杂的音视频背景下,X2Rtc才应运而生,X2Rtc正是基于这种市场需求下诞生的一款开源的流媒体服务平台。
扫码上方图中二维码,即可抢先体验X2Rtc
X2Rtc是基于WebRTC技术堆栈,拓展GB/T28181协议以及其他通信协议,支持 RTSP、RTMP、WebRTC、H.323、SIP、HTTP-FLV、SRT等。
此外,X2Rtc可以广泛应用于视频会议、互动直播、应急安防、在线教育、远程医疗、物联网等六大场景中。