开源流媒体服务器:为何一定得再撸个新的


开源流媒体服务器:为何一定得再撸个新的

文章插图
 
作为开发者,我们需要有一个服务器来支持新视频行业的互联网化,有哪个开源方案能支持新爆发的业务?该方案需要支持哪些关键的能力或需求?本文由自阿里云RTC服务器团队负责人杨成立在LiveVideoStack线上分享的内容整理而成 。
文 / 杨成立
整理 / LiveVideoStack
视频回放:
https://www2.tutormeetplus.com/v2/render/playback?mode=playback&token=7955f5f3e1c942fa9ae4314b991beb1c
大家好,我是来自阿里云的杨成立,本次分享将会和大家详细介绍开源流媒体服务器的关键技术及未来发展 。
我从2009年开始从事FFmpeg流媒体相关工作,2012年开始参与流媒体服务器的开发,2013年开始做开源流媒体服务器SRS,至今也有七年多的时间了 。在这短短几年间,随着视频直播的爆发,SRS也迎来了快速增长 。2017年我来到阿里云之后换成了WebRTC方向 。我们可以看到目前Live WebRTC在整个视频的应用非常广,包括在线办公、在线教育、在线娱乐等各个行业都大展拳脚,音视频已经成为当前互联网交流与信息传播不可或缺的媒介手段 。
这次的分享内容将主要围绕SRS的诞生与历程、SRS接下来的发展计划等,带领大家深入研究SRS存在的价值与意义 。
得益于我国通信基础设施的日趋完善,尤其是Wi-Fi、4G网络的下沉普及,我国互联网市场音视频产品服务在2015~2018年经历了爆发式增长 。当时消费者普遍拥有的可以观看视频的带宽大约为1M,网络环境较为稳定 。
直播背后的技术早在功能机时代就落地成熟 。例如2010~2012年,消费者主要通过PC上的Flash来观看网络直播视频,因为Flash可以跨主流PC端浏览器 。而移动端尽管也支持Flash,但效果很不好 。移动端如Android或IOS则主要支持HLS,早期Android对HLS的支持效果并不佳,后面有明显改善 。
开源流媒体服务器:为何一定得再撸个新的

文章插图
 
无论是传统PC时代还是现在的移动互联网时代,流媒体中主要使用的协议都是RTMP/FLV与Apple的HLS,流媒体播放器主要有Red5、Nginx-RTMP、CRTMP、Wowza、AMS等 。大约是从2017年开始,Chrome中的Flash播放器就已经处于默认禁用的状态,后续Flash也会逐渐退出互联网历史舞台 。
随着互联网的发展,移动端直播逐渐兴起并且成为主流 。例如当前移动办公平台中的互联网直播:主要调用的是Native播放器,使用FLV协议 。浏览器端则多采用HLS,二者共同构成了较为成熟完善的互联网直播协议体系 。
【开源流媒体服务器:为何一定得再撸个新的】随着移动基础网络的建设不断升级,移动端和IoT/5G时代来临,实时通信互联的需求日趋旺盛,Flash被禁用之后出现了更加完善的替代方案——H5播放器,其所使用的技术规范是MSE 。H5播放器现可被绝大多数PC浏览器支持,同时H5也能播放FLV等格式 。MSE扩展和Flash比较相似,提供的是JS接口,将FLV或HLS等解封装,然后打包为MP4后,送到MSE接口中播放 。H5是替代Flash的标准方案,FLV、HLS、DASH等都可以直接通过MSE播放 。
除此之外,大家所追求的另一个方向是低延迟直播,一般传输协议其延迟可达十几秒,而RTMP可以将延迟降低到3~5秒,公网上的TCP有时会出现抖动,此时延迟会变大 。
目前大家都在探索更好的降低直播延迟的方法,在此方面WebRTC是大家公认的理想解决方案 。尽管5G可以带来更低的延迟,但从通信角度来说可用性更加重要 。5G网络的盛行意味着整个网络基础设施的稳定,有更多的通信设备可以达到相应要求 。例如疫情期间使用视频直播的用户出现井喷式增长,而现有网络直播服务依旧未因此而出现重大宕机,这主要是得益于过去十多年的通信网络基础设施建设,以及整个开源环境、商业、云计算等领域的保障与进步相关 。
目前SRT、IoT等的发展仍需面临很大挑战,特别是现在国内互联网的可能性不断丰富,直播产业生态环境也会趋于向好,新场景层出不穷 。
首先,不同场景对网络基础设施以及整个商业环境的要求是完全不一样;其次,业务与开源往往是相互促进的,业务驱动新开源方案的不断落地实施,而开源方案也为业务提供技术支持;最后,不同行业之间往往存在很深的代沟,例如监控行业往往不会需要APP,而直播行业也不会用到私有协议 。我们需要SRT做远距离传输、GB28181支持物联网接入,WebRTC开展互动和在线沟通 。


推荐阅读