本文来自即构科技技术副总裁冼牛在LiveVideoStackCon 2019上海大会的演讲,详细介绍了即构科技在实时流媒体传输协议选择,抖动处理,拥塞控制等多方面的实践。
文 / 冼牛
整理 / LiveVideoStack
大家好,我是冼牛,此次分享和实时音视频、流媒传输的思考与实践有关。主要会为大家介绍实时音视频的超低延迟架构并简要阐述实时视频调度系统,同时结合拥塞控制策略和信道纠错策略,进一步探索解决网络延迟的最优方法。
分享内容包括四个方面,第一方面简要说明一下低延迟的架构,第二是关于实时视频调度系统方面的问题,第三和第四点是拥塞控制和信道纠错方面对于解决延迟重要性的问题。
1. 实时音视频的超低延迟架构
1.1 实时架构的关键点
在讨论实时语音和视频通讯的问题时,怎样做到低延迟便是其中不可回避的问题之一。延迟的产生包括网络传输,网络渠道不良的原因,同时也不能忽略整个视频传输的链条包括采集,前处理,编码,推流,拉流,解码和渲染,这其中各个环节出现问题都有可能带来延迟的增加。
实时架构可以简单的分为两个方面。其中负载均衡、就“近”接入、质量评估和动态路由这四点属于调度方面的问题,算法流控属于流媒体传输方面的问题。前四点又可以划分为两个方面,第一个方面,负载均衡和就“近”接入属于第一公里和最后一公里的处理,质量评估和动态路由属于网络调度与路由。
负载均衡指的是对包括网络边缘节点和传输终节点的容量管理,确保每一个节点的容量不会出现空置或被挤爆。就“近”接入指的是网络逻辑上的就近接入,我们可以从两个纬度来考虑,一个是确保用户接入了同一个运营商的网络,另外要确保用户接入的地域。
质量评估是一种事后的做法,根据网络长期运营下来的数据积累作为策略来指导写入的路由。如果这些基建综合起来还是不能够实现良好的用户体验时,我们就会在上行的推流和下行的拉流做一些算法上的流控。
1.2 调度系统&传输算法
流媒体传输之中包含调度系统与传输算法,那么两者相比谁更加重要?简单的说调度系统所做的事情就是告诉每一个节点传输的方向。在实时网络传输中,调度系统相当于一个Leader,能够指导每一个节点往哪去传,该怎么去传,采取什么样的策略。调度系统与传输算法两者之间的关系我通过下图来做一个简单的比喻。
调度系统能够充分利用基建资源,在优质的基础条件下保证相对较好的传输质量,从而提供更好的用户体验,此时对于算法的要求就没有那么苛刻。但在实际情况下,网络资源并不能够实现良好的传输质量,因此用户体验也无法保证,那么在这种情况下传输算法就变得尤为重要。
2. 实时视频调度系统
2.1 调度系统的拓扑图
实时调度系统中需要关注的有几个方面。上行的推流,其中比较重要的两个部分之前