共计 7558 个字符,预计需要花费 19 分钟才能阅读完成。
直播,曾经成为了“剁手党”们最脍炙人口的一种购物模式。对直播体验的极致谋求,也是淘宝技术人们长期的致力方向。为了晋升用户购物体验,让直播更加丝滑,让剁手更快一些,在 2020 双十一期间,淘宝首次启用了阿里云 CDN 的 GRTN 寰球实时传输网络。数据显示,和传统的 HTTPFLV/RTMP 形式相比,在启用了 GRTN 后,直播端到端的延时升高了 83%。那么,GRTN 到底是什么?其背地到底暗藏了哪些核心技术?
这篇文章会通过回顾互联网直播技术的倒退历程,深度分析直播延时的技术挑战,并解读阿里云寰球实时传输网络 GRTN 的设计思路、技术原理、特质与利用实际,以及 GRTN 在解脱传统直播技术所面临的内卷化(Involution)困境所作出的尝试。GRTN 不单单是为互联网直播而设计,诸如时音视频 RTC 等流媒体技术的使用者,比方云会议、云游戏、云桌面等,在将业务迁徙至 GRTN 后能够有什么新玩法和翻新时机?本文将为您解答。
作者:子融,阿里云高级技术专家,负责阿里云视频直播产品和流媒体实时减速平台研发
互联网直播技术的进化趋势
互联网直播技术的倒退大抵能够被分为了 4 个阶段:别离是翻新期、演进期、量产期和瓶颈期。
互联网上的第 1 场比拟有名的直播还要追溯到 20 多年前,那是 20 世纪的最初一年,维多利亚机密(Victoria Secret)在线上直播了她们的时尚走秀,也就是大家明天比拟熟知的维密秀,只管画面及其不清晰,但也吸引了数以百万级的观众,充沛展示了直播这个新物种微小的吸引力,要晓得明天寰球驰名的流媒体公司 Netflix 奈非过后还是在靠 DVD 租赁来维持生计。这段期间咱们称之为直播技术的翻新期,它革命性的将观众的观影体验从离线文件下载和 DVD 租赁降级到了线上,但这个期间的直播体验还是比拟差的,体现在时延和卡顿上就是分钟级的延时并且常常卡顿。
接下来,随同着互联网的基础设施的演进,流媒体技术也失去了长足的倒退,这其中典型的代表是流媒体技术演进出了一种对 CDN 十分敌对的模式,即媒体流切片模式,媒体流被宰割成 2 -10s 不等的切片文件,并通过 CDN 来进行散发,这种个性很好地适应了互联网延时抖动,从而提供了一种绝对晦涩的观影体验,并且将时延从数分钟压缩到了数十秒。这一时期咱们称之为互联网直播的演讲期,这一时期的直播利用次要以电视台体育赛事为主。
工夫来到 2016 年,随着挪动互联网迎来 4G 时代,美女主播、游戏主播等利用的衰亡,互动直播开始暴发,各种直播 App 如雨后春笋般涌现,这一时期,网红们曾经能够通过本人的手机随时随地的开播,此时国内支流的协定有耳熟能详的 RTMP、HTTPFLV、HLS 等,因为底层的传输依然采纳 TCP,延时广泛在 5 -10s 之间,但画面曾经比拟清晰和晦涩了。
时至今日,互联网直播经验了 4 年的高速期倒退,用户对体验的要求越来越高,传统的 5 -10s 延时很难进行实时互动,比方时下很火的直播带货和在线教育业务,主播和观众、老师和学生的实时互动体验还是有很大的改良空间的,另外随着 5G 时代的到来,新的场景,比方 AR/VR 沉迷式直播、4K 全息投影近程直播都要求更高带宽和更低延时。但直播技术近几年却未能有本质性的冲破,各家直播 CDN 厂商都投入了大量的精力在对现有基于 TCP 的 RTMP/FLV 直播体系的品质优化上,次要优化伎俩有精细化的调度、精准的笼罩、优质的资源、优化缓存命中率、TCP 协定栈优化、直播业务行为剖析等,品质优化零碎做得越来越粗劣,但在时延的晋升上也就是在几百 ms 左右,甚至就是在扣那几十 ms,卡顿的升高也都是在几个百分点左右,对理论用户体验的晋升曾经是十分无限了,互联网直播技术开始遇到了瓶颈,这种内卷化的倒退其实是肯定水平上制约了业务的倒退。
互联网直播延时散布和技术挑战
那么如何能力在延时上有所突破呢?要解决这个问题,首先须要分析一下直播延时的整体散布,互联网直播全链路能够分为 7 个步骤:别离是采集、编码、发送、散发、接管、解码和渲染。
其中采集 + 编码,解码 + 渲染总体延时比拟固定,共 100ms 左右,变动比拟大的局部是散发和接管,从数十毫秒到数秒不等,次要取决链路时延抖动、协定栈的优化状况,以及 CDN 资源的笼罩状况。
在传统的架构里,这个 7 个环节互相独立,互不相干,这样做的益处是团队分工比拟明确,但问题就是优化伎俩很难做到跨界交融,导致无奈做到零碎级优化。比方,编码器如果能够思考发送时的拥塞状况来实时调整码率就能够肯定水平上缓解拥塞,从而升高延时;再比方传统的流媒体传输中媒体数据发送和底层的传输是互相独立的,底层 TCP 传输的拥塞控制算法是个通用算法,不会思考媒体的个性,这样的一个分层构造是很难造成即时反馈系统的,那么为了保障晦涩度,缓存区的大小设计会绝对激进,从而就义了端到端的时延,如果传输层和应用层是一体化的,QoS 管制针对媒体个性来专门设计,同时配合编码侧的码率管制,就能通过组合拳的形式,大大地升高延时。
所以上述各个环节应该是环环相扣,做到全链路互相感知能力将延时压缩到极致。
业界支流低延时直播计划比照
业界支流的 5 种流媒体协定和技术,其中包含 WebRTC、QUIC、SRT、CMAF、LLHLS。这里的比照从下述 8 个维度来开展:
提出工夫:WebRTC 是最早被提出的,QUIC 紧随其后,最晚的是去年 Apple 新公布的 LLHLS
齐备度:这里的齐备度次要关注这项技术是否波及咱们后面提到的直播全链路中的各个环节,比方 WebRTC 咱们认为是全笼罩的,它波及了从采集、编解码、传输和渲染的全副环节,所以严格来讲 WebRTC 并不是一个协定,而是一个凋谢的实时流媒体通信框架;那咱们再来看 QUIC,它是一个正在被 IETF 标准化的新一代传输协定;SRT 在 2017 年刚开源的时候的只是一个视频传输协定,但随着很多编码器厂商的反对,也开始能够影响编码侧的码率,从而放弃绝对稳固的时延。
底层传输协定和类型:WebRTC、QUIC、SRT 都是基于 UDP 的而且都是流式的传输,而 CMAF 和 LLHLS 都是切片形式的,底层基于 HTTP。
规范和终端反对:WebRTC 曾经是 W3C 规范,并且应用了大量的 IETF RFC 标准,目前简直所有的浏览器以及手机操作系统都反对 WebRTC;QUIC 预计在今年年底会正式成为下一代 HTTP 规范即 HTTP/3,目前 Chrome 曾经反对。
场景和延时:WebRTC 是为实时音视频通信场景设计,端到端延时是在 400ms 以内,250ms 左右;而其它几个协定要做到 2s 以内,都还须要很多的额定技术投入。
综合各方面因素,阿里云的新一代传输网络抉择了 WebRTC 技术,不仅延时低,而且反对单通道全双工,能够做到真正意义上的低延时 + 互动。
GRTN 的定位
为了可能升高直播的端到端延时,阿里云 CDN 与视频云联结手淘技术、达摩院 XG 实验室在先后从直播、短延时直播拓展到 RTC 畛域,并在 QoS 和 AAA 方面发力,最终胜利构建了 GRTN(Global Realtime Transport Network)寰球实时传输网。
GRTN 的定位是基于核心云和边缘云的异构节点,构建超低延时、全分布式下沉的通信级流媒体传输网络。GRTN 目前交融了互联网直播和 RTC 等多种业务场景的音视频流传输和替换。基于 GRTN 的短延时直播 RTS 能够反对规范 H5 WebRTC 推播,在千万级并发状况下延时能够管制在 1s 以内;RTC 端到端延时能够管制在 250ms 左右。
GRTN 架构
下图是一个传统互动直播零碎的典型架构,这个架构的特点是:
• 树状层级构造
• 上行推流支流协定:RTMP/WebRTC
• 上行播放的支流协定:HTTPFLV/ RTMP/HLS
• 直播散发和 RTC 推流零碎拆散
• 端到端延时~6s
传统架构的次要毛病是:
• 老本高,次要是媒体数据通过的链路长、直播散发和 RTC 推流零碎孤立
• 延时大,因为采纳的基于 TCP 的 RTMP/HTTP-FLV 协定,而且媒体数据通过的链路长
• 扩大难,因为 RTMP/HTTP-FLV 协定在传输上不是全双工的,所以业务状态是只能反对单向直播,视频互动须要借助旁路的连麦零碎。
相比于传统的直播架构,GRTN 架构的技术特点是:
• 混合组网:树状层级构造 + 对等图形网
• 能力下沉:协定边缘卸载 + 外部传输协定归一化
• 管制和数据拆散:动静门路布局 + 全分布式 SFU
架构降级所带来的外围价值是:
• 降老本,GRTN 是一个多业务交融的网络,能够反对直播、RTC 和视频上云等多种场景,业务复用率高,另外 GRTN 外部链路更短,节点内的老本也更低。
• 提品质,GRTN 外部组网反对采纳动静选路的形式来构建的网状结构,外部链路延时能够做到 20ms 左右,并且外部链路采纳了公有协定来进行高效传输。另外客户端的推流和散发都是基于 WebRTC 来构建的,QoS 拥塞管制是专门针对流媒体个性来进行设计的,并且还在基于线上数据建设进行继续迭代和打磨。
• 易扩大,GRTN 反对了 WebRTC 协定,能够在单个连贯通道上进行全双工的通信,从而能够很自在的进行公布和订阅媒体流,在业务的扩展性上带来了更大的设想空间。
GRTN 核心技术 – 对等组网和门路动静布局
传统的直播架构是一种层级的树状构造,因为媒体流的链路绝对比拟固定,这种构造的在产品初期能够把研发资源更多的投入在媒体协定的解决上,对于疾速构建产品能力是绝对危险可控的。但随着业务的倒退,这种架构的缺点也会越发显著,比方延时高、老本高,而且扩展性也比拟差等,在肯定水平上是妨碍业务倒退的,比方延时很难冲破到 6s 以下,视频的互动只能借助旁路连麦零碎等。
为了基本上解决这一系列问题,并联合层级构造有助于零碎运维和容量评估,而网状结构有益于构建高质量和低成本的网络的个性,GRTN 采纳了混合组网形式,即层级构造和对等图形形式相结合的组网的形式。选路核心会周期性收集外部链路探测的后果,为了配合动静组网,流媒体大脑模块须要对流信息进行治理,同时还须要反对门路切换、容量布局以及在老本和品质之间做综合的调度。
GRTN 核心技术 – 多路径传输
为了可能进步 GRTN 外部链路传输的可靠性,以及思考在老本和品质间的平衡,GRTN 反对如下 3 种外部链路多路径传输模式:竞速模式、备选模式和智能模式,能够在高牢靠,品质,老本等诸多因素管制下进行适配和自适应的切换。
GRTN 核心技术 – 能力下沉
流媒体技术向来以协定多著称,次要是因为业务的多样性导致,上面是流媒体行业的技术进化趋势比照表:
上表中只整顿了绝对比拟通用的协定,能够看到流媒体协定纷繁复杂,在传统的架构里这些协定的解决在核心实现,边缘次要做透传散发,这样的问题就是协定解决的链路太长,不仅老本高而且延时大,那么很天然的一个想法就是将协定和媒体解决能力下沉到 CDN 的边缘,核心只是做管控,从而做到相似 Service Mesh 的设计思维,将管制与数据拆散,因为这些协定的实质都是在传输音视频的根本流 ES(Elementary Stream,比方常见的 H.264/H.265/AAC/OPUS/VP8/VP8/AV1 等),不同的协定解决的是不同的封装格局的传输问题,比方有 TS(Transport Stream)、PS(Program Stream)、MP4、fMP4(fragment MP4)、FLV 等,而不同的封装格局实质上就是针对不同场景下如何封装 ES 流的问题,因而在边缘设计一种通用的针对不同 ES 流的传输协定和缓存零碎是齐全可行的。GRTN 将协定解决能力下沉到了边缘节点,目前能够反对 RTMP、HTTP-FLV、WebRTC、GB28181 等流式协定。
GRTN 核心技术 – 双向实时信令网
后面提到 GRTN 外围价值之一是高质量,高质量除了延时低以外,还须要思考疾速容灾切换能力,以及晋升首屏秒开率等外围指标。
在 RTC 场景下有一个比拟罕用的性能是客户端网络的 Mobility,比方用户在散会的过程中回家或是来到家的时候手机网络须要在 4G 和 wifi 之间切换,另外思考客户端接入的 CDN 节点出现异常的时候,这两种状况都会造成客户端在和 GRTN 通信过程中切换接入节点,GRTN 构建的双向的实时信令网可能做到切网音讯的毫秒级传递,当有一个公布端的媒体流产生网络切换后,订阅的客户端对 GRTN 外部产生的切换行为是齐全无感知的。
GRTN 核心技术 – 继续迭代的 QoS
GRTN 之所以可能做到在直播延时由 6s 升高到 1s 以内,RTC 通信延时做到 250ms 左右,除了图形网的构造的革新以及协定下沉等技术外,最外围的还是有采纳了有媒体个性感知的 QoS,这和 TCP 或 QUIC 这类通用 QoS 策略在实质上是不一样。
WebRTC 的 QoS 是一个针对流媒体个性的多维决策体系,波及到的算法和策略参数十分多,为了不便业务层对底层 QoS 算法和参数的择优,GRTN 设计了一套可插拔的的 QoS 集成框架,联合 GRTN 数据化的品质评估体系,能够做到一次集成继续迭代,不同的算法和参数都能够利用 GRTN 的 A / B 品质评估体系进行线上评估,造成赛马机制。
同时 QoS 和文章后面提到的动静门路布局也是有很多结合点的,QoS 钻研中的一个很重要课题就是须要辨别出网络的抖动和拥塞,如果是拥塞那就须要反馈给上游进行信源带宽调配(比方降码率,流切换等),但如果只是短暂的抖动,就能够启用绝对激进的抗丢包策略,动静门路布局也面临相似的问题,如果是只是短暂的拥塞,能够放弃以后链路并借助 QoS 的抗丢包策略来扛,但如果是链路拥塞了,则须要尽快切换链路。
GRTN 核心技术 – 流媒体孪生
GRTN 降级到网状结构后也会面临一些新的挑战。家喻户晓,在 618 和双 11 等大促流动期间确保 CDN 资源的短缺供给是至关重要的,在传统的层级构造下能够通过业务命中率来别离对 L1/L2/ 核心别离进行评估,而在网状结构下外部链路是动静布局进去的,也就意味着流量的散布也是动静的,这对于如何评估 CDN 的整体容量提出了新的挑战;再比方动静选路算法如何在品质和老本之间找到均衡点,以确保 GRTN 零碎的低成本高质量?为了解决此类问题,GRTN 借鉴数字孪生 (Digital Twin https://en.wikipedia.org/wiki/Digital_twin)) 的思维设计了一个流媒体孪生 (Streamimg Media Digital Twin) 零碎,用于容量评估、算法训练、事件复盘和模仿压测等。
GRTN 核心技术 – 可编程
流媒体技术的下层业务场景十分丰盛,比方电商直播、视频会议、在线教育、企业直播、新批发等,因而有很多定制化开发的需要。可编程化革新是 GRTN 在晋升零碎稳定性上的一次尝试,目前 GRTN 的核心流媒体大脑,节点侧的业务模块,媒体数据发送模块、媒体信令解决模块等都曾经进行了可编程化革新,大部分状况下都能够防止二进制的公布。
阿里云超低延时直播产品 RTS
为了更加不便客户和行业拥抱 GRTN,阿里云基于 GRTN 打造了超低延时直播服务 RTS,其有四个技术个性:
一、秒级延时和卓越的抗弱网能力,在雷同卡顿率下延时能够升高 80%,相比于传统的 RTMP 和 FLV 的 5 -10s 延时,RTS 的延时能够达到 1s 以内,并且还在基于线上的大数据,在自我学习和继续迭代中。
二、成熟稳固,RTS 历经 2 年多工夫的潜心研发,并经验了淘宝直播 618 大促的线上考验,目前曾经在淘宝直播上线。
三、凋谢规范,为了可能不便自研播放器的客户应用咱们的 RTS 服务,阿里云的 WebRTC 接入的信令协定的齐全凋谢的、通明的。
四、广覆盖和高并发,RTS 服务是构建在阿里云 2800+ 边缘节点之上,能够反对千万级并发播放。
客户接入 RTS 的两种解决方案
一、对于应用云厂商播放 SDK 的客户,降级播放 SDK 后可依据业务灵便选择网络传输协定,打造更高性价比组合。
1. 在现有的直播业务新增一个 RTS 播流域名,一个推流两种形式拉流。
2. 主播端无需革新,仅降级播放 SDK,播放端自动识别不同 URL 参数。
二、对于自研播放器的客户,阿里云凋谢与规范 WebRTC 协定对接代码示范,客户自行降级网络模块,底层网络对接更通明
1. 在现有的直播业务新增一个 RTS 播流域名,一个推流两种形式拉流。
2. 主播端不必革新,仅降级播放器网络模块,拉取超低延时流播放。
对于低延时 + 互动体验降级门路的将来瞻望
在流媒体业务的用户体验降级上,GRTN 明天所带来的不仅仅是延时的升高,另外一个很重要的能力就是 GRTN 所提供的灵便的互动能力,GRTN 让直播和 RTC 的边界含糊,让连麦和会议的界线含糊。在 GRTN 的世界里只有媒体流的公布和订阅关系,
• 直播:1 人公布多人订阅
• 1v1 客户端连麦 + 直播:3 人公布多人订阅,这里的第 3 个公布是来自主播侧的合屏流。
• 1v1 服务侧连麦 + 直播:3 人公布多人订阅,这里的第 3 个公布是来自于服务侧的合流公布,当合流公布上来的时候,能够利用 GRTN 的切流能力做到在连麦切换的时候观众无感。
• 视频会议:多人公布多人订阅,GRTN 的切流能力能够用于会议中的视频大小流(高清晰度和低清晰度)切换。
再配合 GRTN 基于老本和稳定性所提供的分级的时延能力 50ms/250ms/800ms/6s/…,就能够勾兑出不同的场景和产品化能力。
在线教育体验降级
在过来,在线教育比拟典型的架构是旁路直播模式,即云端有个基于 WebRTC 的 RTC 媒体核心,老师以及须要实时互动的学员会接入到 WebRTC 频道中,而后由 RTC 媒体核心,转推一路 RTMP 流到直播 CDN,进行旁路直播,因为直播时延大且协定的不一致性,在这种状况下观看直播的学员如果要切入到 RTC 频道中进行互动,体验是比拟差的,有时还会有黑屏中断。
如果心愿升高延时并齐全解决黑屏问题,那就须要将云端的 WebRTC 双向通信频道的能力也下沉到 GRTN 上,由 GRTN 来承载,将互动和散发进行交融,从而造成一体化的超低延时互动大频道,通过业务层来管制 WebRTC 流的订阅关系,直播和互动频道间不再有明确的界线,能够灵便的依据业务状况按需在 2 种模式间进行切换,而且这种切换对学员和老师都是齐全无感的,
电商直播体验的降级
当下的直播带货整体架构和下面讲的在线教育没有本质区别,在架构降级门路上也是能够采纳上述同样的思路。这里值得一提的是在应用了 GRTN 后,业务方的技术团队能够将精力更多的集中在做很多翻新的事件上,比方在小主播的带货房间里,以前的互动只有文字或是 1v1 的连麦,接入到 GRTN 后,很容易就能够将这个单向带货介绍的房间革新成一个相似视频会议的多人互动探讨房间,用户互动体验晋升后是否也能像时延升高一样带来 GMV 的转换呢?
本篇文章重点介绍的是 GRTN 的服务侧外围能力,心愿能给做流媒体技术的同学带来些许启发。感激大家的浏览。
原文链接
本文为阿里云原创内容,未经容许不得转载。