除了日志之外,上图还展现了SRS中的错误反馈,错误参考了Go的机制,因为Go中出现错误可以Wrap打包错误,这样大家在反馈错误时就可以粘贴相应日志,就可以知道堆栈是什么 。常规情况下出现错误只会呈现一个错误码,开发者并不知道究竟发生了什么 。但如果有错误相应的堆栈以及给出每一层堆栈的变量,查询定位错误的过程就会变的非常方便 。一般在关注一个新的开源项目时大家不太会关注这个问题 。但当问题出现需要大家去查找问题源头时,堆栈的作用非常关键 。这意味着我们不仅能够确定该问题的源头,也能妥善解决问题 。
5. 高性能
文章插图
性能是一项基础要求,一般情况下SRS的性能是其它服务器的两倍左右 。对性能的要求在RTC中其实会更严苛,因为RTC的性能消耗更多 。
6. SRS发展
文章插图
关于SRS的发展,从2013年开始SRS一直都在稳步发展 。初期由于应用场景相对固定,更新力度并不大 。而现在,随着Original Cluster边缘集群相继得到支持,直播场景的覆盖也愈发完善,RTC也在不断发展 。大家可以看到最近各个视频行业都在互联网化,因此最近SRS的活跃度也非常高 。
文章插图
2019年左右,SRS-Forks超越了NGINX-RTMP,预计未来SRS-Forks的增长是NGINX-RTMP的两倍 。
文章插图
文章插图
回顾SRS的发展脉络,2013年v1.0实现了对直播基础协议的支持如RTMP、HLS等 。随后的v2.0则主要支持FLV等以及移动互联网应用,v3.0则提供了对Original Cluster的支持,同时很早就提供了对边缘集群的支持,边缘集群主要应对很多人播放的场景 。而Original Cluster则主要用于支持流播,例如监控摄像头等 。边缘不会存储流而Original Cluster则会存储流,所以需要集群的存在,目前对直播场景的支持相对完善 。
2020年初SRS支持了SRT,SRT主要用于解决远距离传输 。同样也是用于直播与广电互联网化的综合场景,例如一些专业赛事、海外直播推流等 。包括最近的GB28181、WebRTC等都能得到SRS的支持 。
未来我们需要满足更广泛的互联网直播场景与需求,例如支持SFU、IoT、AI能力与云存储录制、安全以及MCU、SFU、AV1、SIP等 。希望能够在2024年具备基本满足以上所有场景的能力 。
文章插图
感谢以上伙伴的卓越贡献
文章插图
上图展现了我们现有的线上Demo,欢迎大家前来访问 。
推荐阅读
- linux下高并发服务器实现
- CentOS7下部署滴滴云开源运维监控系统-Nightingale
- 开源一个c++ lua服务器框架
- 服务器断电Oracle数据库修复数据过程
- 一台服务器能承载多少人同时访问?
- 云服务器配置 MySQL 远程连接的详细步骤
- 基于centos7部署saltstack服务器管理自动化运维平台
- 服务器软件大扫盲
- 记一次服务器CPU跑满事件
- 用ssh连接服务器吗?这两个替代品了解一下