Product
关于SRS的来源,定位,愿景和计划。
- Release6.0, 2023~至今,开发代号:Hang。
- Release5.0, 2022~至今,开发代号:Bee(蜜蜂)。
- Release4.0, 2020~2021,开发代号:Leo(付亮)。
- Release3.0, 2018~2019,开发代号:OuXuli(欧旭理)。
- Release2.0, 2015~2017,开发代号:ZhouGuowen(周国文)。
- Release1.0, 2013~2014,开发代号:HuKaiqun(胡开群)。
详细功能列表,请参考FEATURES。
History
简单介绍下SRS的历史吧,我们倒着说。
2023年1月,Star超过20K,开通付费星球,Oryx支持虚拟直播, 确定6.0开发代号为Hang,推出新的TOC规则。
2022年11月,组建了SRS的TOC和开发者社区,活跃开发者人数达到47人。SRS 5.0功能完成,新增功能包括Forward增强, GB28181,Windows, AppleM1,RISCV,MIPS, 龙芯,DASH增强, AddressSanitizer,Prometheus Exporter, SRT增强,Unity WebRTC, WHIP,WebRTC over TCP。
2021年1月,开源技术委员会成立, 4月在LVS分享SRS在阿里云的最佳实践并支持AV1, 5月完善RTC文档包括RTC和RTMP转换、一对一通话、 直播连麦和多人会议, 5月改善SRT。
2020年,SRS4.0开始开发,1月支持SRT, 2月支持K8S,3月支持WebRTC, 6月发布SRS 3.0, 10月官方App上线和Flutter, 11月支持HTTPS,12月成为全球Top1开源视频服务器。
2019.12,SRS3核心协议HTTP/RTMP覆盖率95%,总体覆盖率42%,稳定性工作有了关键进展。开始进入Alpha发布阶段。 SRS全面支持Docker。
2018.02,支持源站集群,直播集群(源站集群和边缘集群)完善。
2017.3.3, SRS2.0 r0正式发布,足足延期了2年,主要是工作太忙了, 没有大块的时间维护SRS。2017年初换工作了,中间有2个月时间撸起袖子加油干的时间,就把r0给刨出来了。一共挣扎了869天(+100%),234次(+5%)更新, 新增1550次(+80%)提交,平均每天1.78次(-60%)提交,新增了2.69万行(+45%)代码,解决了229个(+27%)ISSUE。 参考微信文章.
2017.02,支持录制为MP4和MP4格式。 4月支持Haivison编码器,6月支持DASH。
2016.05,对比了SRS/BMS/NGINX和CDN的区别。 当时尝试过开源商业化方案,提供SRS开源免费版本,BMS是商业化收费版本,但这条路在国内不好走;中国的开源要走出中国特色的道理, 国外的模式搬过来不一定行得通。
2014.10,启动SRS2.0研发,预计6个月左右的研发周期,主要目标是完全了解和掌握st,简化服务器的客户端模型, 以及其他小功能的完善。比较大的方向在3.0+支持。
2014.10,SRS1.0beta发布。从0到1.0,SRS花了1年时间,17个里程碑, 7个开发版,223个修订版,43700行功能代码,15616行utest代码,1803次提交,161个bug和功能, 解决了117个,可在1个平台运行(linux),支持4种cpu(x86/x64/arm/mips),11个核心功能(origin、 edge、 vhost、 transcode、 ingest、 dvr、 forward、 http-api、 http-callback、 reload、 tracable-log),35个功能点,58篇wiki,SRS的QQ群有245位成员,活跃成员141人, 2位主作者,12位贡献者,14位捐赠者,至少有蓝汛、VeryCloud、VeryCDN、 清华电视台在使用或基于SRS改自己的服务器,数百个各种行业的公司在使用SRS主要包含视频监控、移动端、在线教育、 秀场和KTV、互动视频、电视台、物联网、学生。
2014.3,进入反馈期,树莓派,极路由,cubieboard等嵌入式设备上有人问是否能支持。我自己买了树莓派,在上面运行成功, 改了st的一个bug。从这个时候开始,是功能爆发的时期,得到群里童鞋们的反馈 。转码,转发,采集,录制都是这个时期的工作。
2013.11,加入观止负责研发管理工作。后来观止创想做编码器,编码器需要输出到rtmp服务器,nginx-rtmp又经常出问题, 就打算用我的SRS替换nginx-rtmp。后来编码器上线过程中,我也逐步完善了SRS,这是SRS的快速成长期。开放服务器, 就让客户可以更好的用我们编码器,而且我们编码器可以支持拉模式。这个阶段主要是源站阶段。
2013.10,SRS创建。SRS是2013.9我从蓝汛离职后,我参考nginx-rtmp写了个简洁直播源站服务器。蓝汛接我工作的同事也可以看到服务器如何一步步构建。 蓝汛的客户也可以用这个源站,那些乱七八糟的源站对接太麻烦。我想用业余时间构建不受客户随意影响的产品,只遵循核心价值而加入功能, 而不会因为赚钱或者客户头脑发热,总之,实现我对于产品价值和质量,真正实现客户核心要求,定位清晰,一个实践现代软件工程和研发理念的服务器。
Vision
SRS是全球TOP1的开源视频服务器,支持直播和WebRTC,可应用于多种视频场景和行业。
- Mission:用音视频无门槛赋能小微企业和开发者。
- Vison:每个小微企业都具备音视频能力。
- Values:简单、开放、务实。
详细解读请看欢迎关注SRS:使命、愿景、价值观。
Release6.0
开发代号:Hang。预计6.0会在2023年底完成主要功能开发,预计2024年底发布。
Note: 开发代号
Hang
,由TOC John命名,具体含义由大家品,仔细品。
Release5.0
开发代号:Bee(蜜蜂),代表SRS正式开始开源社区驱动,协作是主要的特点,也不 断提示我们做开源项目需要像蜜蜂那样,持续的每天都付出时间,才能做好开源项目。 感谢所有三百多位开发者,以及技术委员会的核心开发者,特别感谢 TOC 持续的努力, 大家一起在不断做出自己的贡献。2021年6月,SRS进入 木兰开源社区 孵化,感谢导师阿里云陈绪、周明辉教授、腾讯单致豪,感谢木兰社区杨丽蕴主任的大力支持。特别感谢腾讯Tommy(李郁韬)、Eddie(薛迪)、Leo(刘连响)、Vulture(李志成)、Dragon(兰玉龙),以及各位开发者领导对于SRS的认可和对开发者参与开源贡献的支持。特别感谢社区经理耿航和刘歧,对社区推广和发展做出的贡献。
- 支持amd/armv7/aarch64多CPU架构的Docker镜像。#3058
- Forward增强,支持动态Forward,可以灵活定制转发策略。#2799
- GB28181,支持GB2016标准,内置SIP信令,TCP复用端口传输。#3176
- Windows,支持Cygwin编译,流水线打安装包,GITEE镜像下载。#2532
- Apple M1,支持Apple M1芯片,新的MacPro编译和调试。#2747
- RISCV架构支持,修改ST汇编支持RISCV CPU架构。#3115
- MIPS架构支持,Cygwin平台支持,另外ARMv7和AARCH64早已经支持。
- Loongarch,支持龙芯架构,支持Loongarch64服务器平台。#2689
- DASH增强,解决DASH卡死问题,达到可正式商用标准。#3240
- 支持Google Address Sanitizer,解决野指针定位问题。#3216
- Prometheus Exporter,支持云原生可观测能力,另也支持腾讯云CLS和APM对接。#2899
- SRT增强,协程原生的SRT改进,更便捷的维护和稳定性。#3010
- Unity WebRTC,支持Unity平台对接SRS,使用WHIP协议。srs-unity
- 支持WHIP协议,推流和拉流,#2324
- WebRTC over TCP,支持TCP传输WebRTC,支持TCP端口复用。#2852
- 支持HTTP API、HTTP Stream、HTTP Server、WebRTC TCP端口复用。 #2881.
SRS 5.0是在2023.12发布的,请参考5.0-r0.
Release4.0
开发代号:Leo(付亮)。感谢我流媒体和管理生涯的Leader,蓝汛前VP付亮(Leo),在当年研发流媒体时给了坚定的支持,在刚开始带团队时亲自辅导和交流。 感谢我十几年职业生涯中遇到的Leader,包括大唐的何力和朱晖,微软的舒适,蓝汛的付亮、张玮、Michael、刘岐、苗权和文杰,快手的于冰,观止的杨默涵和雷健, LVS的包研,阿里的叔度、致凡、华大、文景、士豪和还剑。感谢一起成长和码代码的同学们。
- 支持WebRTC推流和播放,参考 #307
- 支持RTMP转RTC,低延迟直播场景,参考 #307
- 支持RTC转RTMP,会议录制,参考 #307
- 支持RTC单端口复用,避免开多端口问题,参考 #307
- 完善HTTP-API,支持WebRTC和HLS,参考#2578, #2483, #2509
- 增强HTTPS,支持HTTPS-FLV, HTTPS-API, HTTPS-Callback
- 支持Docker和K8S对接,云原生改造,参考 #1579, #1595
- 支持RTC客户端切网,多网卡切换问题,参考 #307
- 支持回归测试,RTC自动测试,参考 srs-bench
- [experimental]支持SRT推流,广电广泛支持的新协议。参考:#1147.
- [feature]支持GB28181推流,摄像头通过国标协议推流。参考:#1500.
SRS 4.0是在2022.06发布的,请参考4.0-r0.
Release3.0
开发代号:OuXuli(欧旭理)。感谢我的大学老师欧旭理老师(欧工),他创建的中勤在线让我可以在大学学习软件理论时还能实践出真知。 感谢中勤的同学们,陈哲、刘小婧、盛谢华、易念华、马琰以及中勤的其他同学,希望SRS能带着我们最初的梦想越行越远~
SRS release 3.0,研发阶段。主要的目标是:
- 支持NGINX-RTMP的EXEC功能。参考:#367.
- 支持NGINX-RTMP的dvr control module功能。参考:#459.
- 支持安全的可读写的HTTP API(HTTP Security Raw Api)。参考:#470, #319, #459.
- 支持DVR 为MP4文件。参考: #738.
- 支持截图,HttpCallback和Transcoder两种方式。参考:#502.
- 重写错误和日志处理,使用复杂错误,简化日志。参考:#913.
- 重写错误处理的工作流,准确定义异常情况。参考:#1043.
- 学习英语,重写English WIKI。参考:#967.
- 支持源站集群,负载均衡和热备。参考:#464,RTMP 302.
- 增加UTest,覆盖核心关键逻辑代码。参考:#1042.
- [experimental]支持MPEG-DASH,可能的未来标准。参考:#299.
SRS Release 3.0预计在2019年年底发布。
Release2.0
开发代号:ZhouGuowen(周国文)。感谢我的高中老师周国文老师,教我成人自立,为我翻开一个新的篇章。
SRS release 2.0,预计研发周期为1年左右。主要的目标是:
- 翻译中文wiki为英文。
- 提升性能,支持10k+播放和4.5k+推流。参考:#194,#237和#251
- srs-librtmp支持发送h.264和aac裸码流。参考:#66和#212
- 学习和简化st,只保留linux/arm部分代码。参考:#182
- srs-librtmp支持windows平台。参考:bug #213, 以及srs-librtmp
- 简化握手,使用模板方法代替union。参考:#235
- srs-librtmp支持劫持IO,应用于srs-bench.
- 支持实时模式,最低支持0.1秒延迟。参考:#257
- 支持允许和禁止客户端推流或播放。参考:#211
- DVR支持自定义文件路径和DVR http callback.
- 可商用的内置HTTP服务器,参考GO的http模块。参考:#277.
- RTMP流转封装为HTTP Live flv/aac/mp3/ts流分发。参考:#293.
- 增强的DVR,支持Append/callback,参考:#179.
- 增强的HTTP API,支持stream/vhost查询,参考:#316.
- 支持HSTRS(HTTP流触发RTMP回源),支持HTTP-FLV等待,支持边缘回源,参考:#324.
- [experimental]支持HDS,参考:#328.
- [experimental]支持Push MPEG-TS over UDP to SRS, 参考:#250.
- [experimental]支持Push RTSP to SRS,参考:#133.
- [experimental]支持远程控制台,链接: console.
- 其他小功能的完善。
SRS Release 2.0于2017.3.3正式发布。
Release1.0
开发代号:HuKaiqun(胡开群)。感谢我的初中老师胡开群和高昂老师,教育我热爱自己所做的事情。
SRS release 1.0,预计研发周期为1年左右。主要的目标是:
- 提供互联网直播的核心业务功能,即RTMP/HLS直播。能对接任意的编码器和播放器,集群支持对接任意的源站服务器。
- 提供丰富的外围流媒体功能,譬如Forward,Transcode,Ingest,DVR。方便开展多种源站业务。
- 完善的运维 接口,reload,HTTP API,完善和保持更新的wiki。另外,提供配套的商业监控和排错系统。
- 完备的utest机制,还有gperf(gmc,gmp,gcp)和gprof性能以及优化机制。提供c++层次足够满意的性能和内存错误查找机制。
- 在ARM/MIPS等嵌入式CPU设备Linux上运行。另外,提供配套的内网监控和排错,cubieboard/raspberry-pi的嵌入式服务器。
- 高性能服务器,支持2.7k并发。
SRS Release 1.0已经在2014.12.5如期发布。
Beijing, 2014.3
Winlin