基于标准 WebRTC 低延迟直播的开源实践

本文探讨了低延迟直播的现状和挑战,尤其是延时问题对用户体验的影响。作者提出了一种基于标准WebRTC的低延迟直播开源实践,包括开放的信令协议和媒体协议,以降低直播延迟并提高流畅性。通过GOP缓存、Pacer平滑发送等技术优化首屏时间和延迟,同时利用WE-CAN全球智能路由网络提升传输效率。此外,还介绍了全链路延时监控和卡顿率优化策略。文章分享了开源的WebRTC播放器项目以及网易会议的相关开源代码。
摘要由CSDN通过智能技术生成

自上世纪末,流媒体直播技术兴起以来,伴随着网络基础设施的发展脚步,直播也同频共振般地起势。而近年来 AI、云计算、音视频等技术日趋成熟,以及新冠肺炎疫情带来的“宅经济”刺激,使直播行业的发展势头被进一步激活。

通过网络直播,你可以轻松观看到大洋彼岸正在进行的紧张体育赛事,也可以足不出户就阅尽祖国的大好河山、日出日落,甚至与 6000 万陌生人一起“云监工”火神山医院建设进度,为疫情防控力量点赞。

直播是个好东西,但,直播延时并不是。

或许你曾熬夜守在电商直播间,在秒杀倒计时中,因延时被人捷足先登;也或许在上网课时,因延时错过了重要的知识点;还或许在体育比赛关键时刻,因延时被提前“剧透”了结果。

凡此种种的破坏性体验,皆是「延时」惹的祸,市场对低延时的直播方案提出了需求。

在介绍低延时直播方案前,我们先来看看当下典型的直播架构。

1、典型的直播架构

在典型直播架构中,左边是推流客户端,协议上才采用RTMP上行。右边是拉流客户端,支持不同的拉流协议拉流,比较常见的是:RTMP, FLV, HLS。

现有架构的优点

这套框架很好的利用了CDN厂商或者说云厂商的能力。尽管拉流协议没有统一,但由于rtmp/flv/hls等拉流协议是比较成熟的流媒体协议,经过多年的发展,各家CDN厂商广泛支持。在云端能力的支持下,服务端并发能力和拉流端加速能力大大增加了,直播行业蓬勃发展。

2、低延迟直播的现状

直播行业里卡顿和延迟就像是天平的两端。延迟做的越短,卡顿越高。延迟越长,卡顿越少。

一般场景下都是客户端用更大的buffer时长,牺牲延时来满足流畅性。随着行业的发展,在某一些应用场景对延时时间的要求越来越苛刻,比如体育比赛直播,教育场景下老师学生互动等,这时候现有常见的直播流媒体协议的缺点就体现出来了。

一般rtmp协议直播延时在3-10s,如果经过层层CDN的缓存和转发,超过10秒也是常有的事,flv和hls协议的延时更高。就拉流端来说,延迟很大一部分源自网络传输:

rtmp在传输媒体前的tcp 3次握手和c0/c1/c2握手协议,无端引入了好几个RTT的延迟;由于rtmp/flv/hls的传输层都是基于tcp协议的,在网络不稳定的情况下,受限于tcp协议的拥塞控制不能充分利用网络带宽,客户端为了保持流畅性,只能加大缓存时间,更进一步加大了延迟。

其实认识到现有流媒体直播协议的局限性,各大友商也纷纷推出了自己的低延时直播,也比较好的起到了对抗弱网和加快首屏的作用。

**但目前大家大都基于私有的信令协议和基于私有的UDP的流媒体传输协议,各大云厂商没法互相兼容,这就限制了低延迟直播的大规模发展。

3、基于标准 WebRTC 的低延迟直播的开源实践

我们在探索如何能做一个开放的低延时直播方案,将来各家云厂商也能够比较方便的实现,就像现有rtmp/hls协议一样,推动整个直播行业低延迟化。

要实现这种方案需要做两件事情:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值