解密时刻:Agora融合CDN直播卡顿率低于1%的秘笈

在全球疫情仍在持续的当下,越来越多的业务逐步转移到了线上。不到2年时间里,直播的应用从电商扩展到泛娱乐并继续渗透到各行各业,随着时间的发展,用户对直播体验的要求也越来越高。然而,高质量的直播依然存在诸多的挑战,终端用户经常会遇到黑屏、卡顿、秒开以及稳定性等影响体验的问题。

直播场景中卡顿问题的原因

常见的直播系统架构如下图所示,通常直播是由主播推流给CDN收流,然后CDN收流到媒体处理后,再传输到CDN的分发节点,最后直播内容才呈现在观众终端。这几个环节中,推流、收流、传输、分发任何一个环节出现不稳定都会导致终端观看播放时出现卡顿。目前行业平均卡顿率为3~4%的水平,离头部厂商的直播效果还有较大的提升空间。

根据我们的统计,影响整体卡顿率的情况大致包括以下四种:

  1. 主播侧的网络出现了抖动;
  2. 观众侧的网络不稳定;
  3. CDN节点出现问题;
  4. CDN核心网内传输不稳定。

直播过程中,主播侧的推流到达观众侧的终端设备,整个链路会跨越包括公网在内的多个网络段进行传输,对于应用开发者而言,大部分的网络段都是黑盒的状态,定位问题需要和CDN厂商、主播、观众……多个环节沟通,故障排查的效率低下。解决直播中的卡顿问题已经成为提升用户体验、减少用户流失的关键。要解决卡顿问题,就要根据上述不同的情况分别进行针对性的优化。

Agora融合CDN直播的优化策略

为了打造覆盖 RTC 到 CDN 的直播服务闭环,为各类直播场景提供全链路质量保障,助力直播行业实现一体化的直播服务。声网基于自身在网络传输、质量调度、SDK 领域多年的技术积累以及实时质量数据分析能力,与国内外多家优秀供应商完成深度对接,为开发者提供了一个基于用户访问质量数据实时调度的标准协议 CDN 直播服务。从如下四个方面进行了专门的优化:

针对主播侧的协议优化

首先是通过协议优化来增强推流稳定性。这也是业界普遍的做法,通常大家会选择使用一些可靠UDP传输协议代替TCP协议,国内一些头部厂商做了较多的尝试,不同程度地提升了弱网对抗能力。目前国内厂商选择使用QUIC协议的较多,而海外企业则使用SRT更多一些,声网融合CDN直播服务支持上述两种标准协议的推流和拉流。

此外,声网自研的 AUT(Agora Universal UDP-based Transport Protocol)协议在RTC领域经过了多年的打磨,为上层应用提供了高质量的传输保证和灵活的控制机制,是当前已知的所有协议中网络抖动抗性最好的协议。实验环境下的表现如下图:

实验条件:videoprofile为960540、15fps、1200kbps码率;发送端:iOS,接收端:旁推至网宿CDN,ffplay拉流。*

声网AUT协议多年来经过了海量用户的反复验证,开发者使用集成了AUT的声网SDK无疑能够将主播侧的卡顿降到最低。

端、云结合的实时调度能力

在直播场景中,流量调度要解决两个问题,首先是准确的服务节点质量评估,目的是为终端用户提供最佳的观看服务,其次是实时的服务节点调度管理,只有调度的当才有可能从根本上解决CDN层面的卡顿问题。传统CDN一般会监控其节点实时流量和运行状况,并根据节点的健康度进行流量的分配。在缺乏客户端真实访问数据的情况下,这种策略只能应对节点本身出现故障的情况;当节点网络出现问题、或者终端用户到节点的访问出现问题时,传统CDN的流量调度策略就失去了作用。

声网凭借多年SDK侧的网络检测和调度的技术积累构建了SD-RTN这个实时网络,并形成了云、端一体化的调度逻辑——基于海量端侧的质量反馈,在云数据中心实时计算出每个节点的质量。通过客户端访问质量来监测服务节点本身状态的方法不但更符合直播的实际需求,而且能更准确地判断调度策略是否得当。这种云、端一体的调度逻辑使得声网融合CDN直播能够实时感知到用户每一次的网络连接和播放,实现了秒级的服务节点质量感知和切换。此外,声网与国内外十余家头部CDN供应商广泛合作,包括全球性供应商和区域性供应商,在服务节点数量上有着丰富的储备。

核心媒体的传输质量保障

采用传统CDN直播方案的情况下,在收流节点完成收流后,到覆盖终端用户的节点之间进行数据传输的路径往往是相对固定的(取决于CDN厂商的节点质量和调度机制),通常这个过程是在CDN厂商的传输网进行。这往往会带来2个显性的问题:

  1. 当主播侧和观众侧存在跨国、跨区的情况时,观众侧常会出现大批量卡顿的问题。究其原因在于许多CDN厂商在跨国、跨区传输时采用TCP方式进行公网传输,因此质量难以保障。
  2. 当传输链路上的某个节点或者网络出现问题时,故障往往无法自愈进而直接影响终端用户的观看体验。尤其是出现区域性网络问题的极端情况下,即便切流到备份CDN依然不能解决问题。

解决传输的问题既要考虑“最后一公里”的优化,也要在“大网”上下功夫。在声网融合CDN直播的架构中,最后一公里的覆盖由声网海内外优质CDN合作伙伴丰富的节点来承担,并保证每一个终端用户都有三家以上的CDN可供选择,最大限度地保障传输播放质量;而核心的媒体转发则全部通过声网的SD-RTN进行,此举能最大限度地降低传输中的卡顿问题。

image3

  • 首先,声网SD-RTN默认采用多路径复用,从流量接入开始至少同时发送两条链路的数据以保持其完整性,采用这种“饱和式”传输的策略确保任何一条链路出现问题都不会影响传输质量。
  • 其次,声网SD-RTN利用内置的AUT协议处理点到点传输中网络抖动问题,已经达到当前业界最好的效果,这一点在前面的章节中已有介绍。
  • 最后,在流量调度方面,声网SD-RTN中心控制器结合海量终端反馈的质量数据,能第一时间感知传输链路中潜在的问题,并可自动进行线路的秒级切换。

声网SD-RTN作为业界领先的实时网络,通过技术的沉淀基于互联网实现了接近专线质量的服务,迄今运行七年无全网事故,在流量的传输和调度方面用户无需再担心质量问题。

观众侧的弱网对抗

观众侧终端的网络情况往往复杂而多变,我们无法预设其网络环境,因此不能通过服务端的策略来应对,最好的解决方法是在观众侧的终端设备本身寻求答案。观众侧出现卡顿的原因主要包括弱网环境下的网速慢、网络丢包和抖动、覆盖节点质量差三类。针对观众侧卡顿的主要原因,声网融合CDN直播深度优化了播放器的相关机制,使播放器与调度中心可双向反馈,开发者通过一个接口调用即可实现跨协议(TCP、QUIC、SRT)、跨码率和跨节点的无缝切换,为观众侧设备提供更佳流畅的播放体验。

声网融合CDN直播优化各类音视频场景中的细节,实现RTC场景和CDN场景之间的无缝切换,通过上述各项优化改进,在多个真实业务场景的测试中,整体卡顿率降到了1%以下。

All-in-one 的解决方案

声网融合CDN直播基于对直播行业的丰富服务经验,提供了集实时音视频、推流、播放等功能为一体的 SDK,通过打造“终端质量汇总→服务端实时分析调度→终端智能播放”的质量闭环,为广大开发者提供超低延时直播、低延时直播和标准 CDN 直播全场景直播方案。

声网融合CDN直播采用了一体化设计,声网SDK集RTC、推流组件、播放器、美颜组件、美声组件、审核等组件于一体,深度优化各类角色在RTC和CDN相互切换过程中的无缝体验;通过云市场以插件形式接入各类第三方服务,开发者通过标准接口调用就可以方便地使用所需的第三方服务。此外,声网SDK中的每个模块都可以自由组合、按需使用,开发者可以自由使用已有各类供应商,也可以方便利用 API 随时切换使用声网相关服务。

更多关于声网融合CDN直播的技术细节,读者可关注将于2021年12月15日举行的 Agora Talk活动,届时声网融合 CDN 直播技术负责人何胜名,将分享声网融合 CDN 直播的整体架构,以及在声网在优化直播卡顿率上所做的探索和努力。感兴趣的同学可以通过扫描下方的二维码参与。

image4

推荐阅读
作者信息
相关专栏
声网产品与方案
42 文章
本专栏仅用于分享音视频相关的技术文章,与其他开发者和声网 研发团队交流、分享行业前沿技术、资讯。发帖前,请参考「社区发帖指南」,方便您更好的展示所发表的文章和内容。