从阿里云全球实时传输网络GRTN出发,浅谈QOE优化实践

原创 阿里云视频云 2022-08-19 13:32

直播已深入每家每户,以淘宝的直播为例,在粉丝与主播的连麦互动中如何实现无感合屏或切屏?阿里云GRTN核心网技术负责人肖凯,在LVS2022上海站为我们分享了GRTN核心网的运作机制、运用方面以及QOE的网络模型在业务板块的实践优化。

阿里云全球实时传输网络GRTN

GRTN是阿里云全球化的实时通信网,构建在中心云原生和边缘云原生的基础设施之上,并将技术有机融合,借鉴 SDN 的设计理念,进行 CD 分离,将控制放在中心,将数据面分布下沉到阿里云边缘云 2800 多个节点之上。GRTN具备场景化的 QOS 能力、400 毫秒以内的实时通讯能力和超低延时能力,同时具备了全链路的 RTC 和动态组网能力。GRTN提供一体化解决方案,不仅支持视频上云,视频分发的流媒体特性,同时具备分布式计算、分布式存储处理能力。

本次分享围绕GRTN分为两个部分:

  • GRTN的理念和提供的能力。
  • GRTN在商业落地中,怎样优化QOE的指标。

GRTN的理念

简单来说,现在的阿里云的GRTN基于覆盖全球的2800多个边缘节点,我们把这些节点和网络资源运用起来,做成了一张通信级的SFU的传输网络。

这些节点,包括解决跨洲的网络问题,都有专门的线路,整个系统都是从直播演进过来,过去很多的CDN直播网络一般都是树状的结构。但阿里云的GRTN是一张树状和网状结合的动态网络,目前阿里云GRTN支持的屏到屏延迟是100毫秒左右,满足云游戏或者云渲染等场景。

GRTN提供的是内容的传输和分发,任何一个用户使用RTP协议,把媒体推到阿里云GRTN的节点,它就可以在全球的任何地方就近地从GRTN将内容分发。同时,GRTN还会解决动态组网、就近接入等问题。

GRTN业务模式

GRTN当前的业务模式,是目前很多客户接入的阿里云的RTS 1.0。

RTS 1.0是阿里云从18年左右开始研发的,它的核心理念是为了帮助客户在有限改造的前提下,接入GRTN,把延迟降下去。

传统的直播FLV延迟大概在5秒, HLS更多,延迟达到20s左右。RTS就是对推流侧或者播放侧进行改造,最重要的还是播放侧协议换成RTP,能够做到延迟在1秒左右,这个技术在19年左右淘宝直播就已全量落地。

RTS 1.0之后,阿里云就进入到了RTS 2.0的时代。

在RTS 2.0时代,我们对实时流媒体场景的预期是没有RTC和直播的区分,可以让所有的业务都建立在全链路RTP的协议上。全链路使用通信级的传输,是GRTN的技术理念。目前的RTS 2.0,它具有通信级的服务能力。

RTS 2.0的传输延迟在国内基本是在100毫秒左右,即为节点的传输耗时,剩下的延迟就可以放在编码侧或者放在播放侧,用来抗抖动。这样的场景可用于一对一的视频通信、多人会议包括连麦直播一体化。

那在GRTN上怎么把一对一通信做出来呢?

阿里云GRTN的对外服务包括两种模式:一对一通信和多人会议。

一对一通信

第一种是阿里云的SDK,通过使用GRTN的私有协议,同时也支持浏览器,所以GRTN的生态是完全开放。用户可以使用浏览器,以标准的SDP信令交互的方式与GRTN的对接,把媒体推进来,再通过GRTN选择性地把媒体拉出去。两个客户端跟GRTN可以选择通过单PC或者多PC的模式交换音频、视频或自定义的消息,通过GRTN实现通信级的传输,这就是一对一通信。

这个模型并不仅限于通信,还可用于云渲染,云游戏。

多人会议

在一对一通信的基础上,GRTN支持多人会议,如上图所示。

通常而言,在参会人比较多的时候,选择性的订阅对端的视频、音频是一个很麻烦的问题,因为涉及到Audio Ranking。很多业务方为了做这种多人会议,不得不把音频放到一个专门的Ranking Server上去做。

而GRTN提供了大规模的Audio Ranking能力,也就是说任何一个端在GRTN上消费音频,都可以做到为它进行Audio Ranking。这个人订阅了什么,GRTN就在这个人订阅的音频中进行Audio Ranking,不涉及Ranking server, 不增加延迟。

GRTN的另一个重要能力是切流。GRTN可以为任何观众实现他的媒体替换,在云合流的连麦场景,这是一个很核心的能力。在一个浏览器上,观众通过GRTN看到的画面,通过切流的指令,可以让这个观众在完全无感的情况下实现画面的切换。

这就是GRTN的切流能力,可以为GRTN上某一个主播的所有观众实现媒体画面的实时切换,可以从a画面切到b画面,从a主播切到b主播,观众是完全无感的。

如何用切流能力实现云端连麦合流?

在连麦这个场景上,如果是客户端的连麦,那就是ab两个主播进行连麦,观众在看a主播的过程中他们一连麦,观众看的画面就实时变成了a和b合屏的画面。这种场景能够简单的实现,通过端合流,即a主播在端上直接把自己的画面更改,观众看的内容相应进行变化。但是存在一些场景端合流是无法做到的,例如端的性能不够,这样场景下就需要通过云合流。

如上图所示,一个主播流的画面推送到GRTN之后,有一个观众在看主播的画面,当这个主播和别的粉丝发生了连麦,连麦之后有一个业务方的合屏服务器,合屏服务器会把两个媒体合成一个。

在这个时候就需要实现客户端的画面切换,而且全部都要切过去,这个时候我们提供的能力是切流指令,即前面所讲的切流的能力。切流指令传输到GRTN之后,GRTN将主播所有观众的画面无感地切换成合屏流的画面。

这个能力目前是实现淘宝直播在GRTN上直播连麦完全一体化的基础解决方案。

并且,这是一个通用的方案,在后面随着GRTN和后续RTS 2.0服务的对外输出,这个能力会直接对外开放。

目前淘宝直播实际上已经实现全量通过GRTN进行,任何一场直播里观众和主播之间的延迟,基本上都在1秒以内的。这是目前GRTN在RTS2.0上的典型业务场景。

QOE概述及优化难点

QOE的优化实际上是基于阿里云的外部客户的数据,为什么讲QOE而不是QOS?

因为我们在接待客户的过程中发现,QOE通常都是客户本身制定的一系列的指标,比如说渗透率、观播时长、业务转换率,这些指标不是把QOS某个指标做好了,QOE就能变好。

例如GRTN在客户场景中,我们的首帧卡顿、百秒卡顿时长、延迟、画质全方位的领先。(RTS的QOS一定是全方位的比FLV好,也就不用比HLS了。)

但在面对不同的客户的时,有的客户的QOE正了,有的客户的QOE有问题,因在客户从传统的FLV过渡到RTS以及RTS 2.0之后,会因为客户端的适配没有做好,或者业务场景的磨合没有做好,遇到了问题。

例如WebRTC来进行通信,播放器的buffer的机制可以做得非常的激进,但是在直播场景时,观众的体验可能比你的激进的延迟控制更加重要,所以在直播场景下更多的是要去做一个平衡。

在这个过程中,我们发现有时客户把QOS全做正了,但是QOE却还需要花很多的时间去处理,所以在把QOE做正的过程中,要用什么方法?

这是在QOE里阿里云要持续投入的。想要做好QOE一定要有业务输入,没有业务的输入,没有业务的反馈,QOE肯定是做不正的,所以阿里云有持续的基于业务的数据驱动技术投入。

这里最重要的一点是客户端的数据,在做QOE的过程中,我们认为服务端是没有资格说QOE的,只有客户端和业务才有资格说自己的QOE这么正。所以在这个过程中,GRTN的方法是先得到业务方的脱敏数据,然后去做QOE。

GRTN QOE 优化理念

GRTN优化QOE的一个理念是:GRTN做到了无感的链路切换。

GRTN内部是一个全SFU网络,上游的网络随时切换,对观众来说是完全无感的。同时还有强实时的主备链路,在很多直播、通信场景下,会有重保的概念,或是强实时的双路保障。如果节点之间出现问题,能够立马把它切到另外的节点链路上,这样观众完全无感。

还有GRTN节点和客户端之间的mobility的方案,例如某个节点可能网络有问题,或者客户端的网络发生了WiFi到4G的切换,那么使用一个mobility的方案瞬间能够切换节点,同时GRTN的下游消费者完全不受影响。

GRTN另一个优化QOE的方法,就是可编程策略。

可编程实际上是阿里云近一年做出来的成果。传统的QOS优化能力,例如启用BBR还是启用GCC或者是别的拥塞控制算法,会发一堆的配置下去,配置里面全是开关。

但是现在的GRTN,可以在边缘直接用可编程的策略执行模块,类似CDN有可编程的能力,包括边缘脚本之类,GRTN也类似,但是做的比较彻底。现在的能力是可以在节点直接下发策略,运行语言,可以直接对发帧和发包逻辑做控制,可以介入到重传逻辑中,直接编程GRTN的对每一个客户端的行为,即通过策略配置系统直接把代码发下来,无需软件发版升级。

因为像2800多个节点,是无法高频升级软件版本的,但是利用GRTN可编程能力可以实现一天几个策略迭代,结合客户端的数据,能够实现数据的打通。这样发策略下来,客户端拿到QOE的数据反馈给GRTN,GRTN的调优人员就知道如何去进一步的优化。

如图是GRTN的多场景的随机配置,也是基于阿里云线上海量的业务数据来进行的。

例如阿里云线上的配置管理系统会把配置集下发,这是做AB的基础能力。后面配置管理系统会将n组配置实时发到全网所有的边缘节点,针对的是某一个域名。

针对这个域名,同时给他发出三组配置下去进行随机,可能会配一定的权重。例如阿里云认为conf_1 是个高风险的配置,一个高风险的新型的功能,发出去之后,把conf_1指配全网1%的业务量去做 AB。发到节点之后,当任何一个消费者来到GRTN消费内容时,将对它进行一个随机加权的选择,它有一定的概率使用conf_1,也有一定的概率使用后面两种。

第一步的请求完成之后,我们让多组配置同时在线上运行,但是运行完后怎么拿到结果呢?

简单的方法就是客户记录我们的trace_id,GRTN有一个trace_id的理念,这个ID对应客户端的这一次播放,任何两次播放的ID都不一样。

另一种方法是客户端把一个session ID带在它的请求参数里面,这样一个客户端就在GRTN有一个session ID跟trace_id对应,这次播放用的什么conf ,我们也能够给它记录到。同时这次播放,根据session ID,我们就可以从客户端的埋点查到它的QOE结果。

GRTN 赛马系统

接下来对它做关联,播放器在GRTN上完成播放之后,播放器这边开始埋日志,埋的核心日志就包括首帧耗时、百秒渲染卡顿,也包括任何一个播放端的播放时长。

在业务方记下来的日志中,会知道session id对应的这一次播放播了多久,它的各项指标怎样。在GRTN就知道发的trace_id是哪个,然后针对这一次播放,缓冲深度配了多少,以及丢包率目前统计下来是什么情况。

这两个数据(服务端日志和客户端日志)把客户的日志收上来,抛送给我们之后,这边就把session ID和trace_id在GRTN的数据分析体系里面做一个综合,就得到了一个结果:任何一次播放它对应的服务端的网络情况是什么,它对应的客户端的首帧耗时、百秒渲染卡顿、播放时长是什么。GRTN就通过这两种数据综合把客户端的数据和服务端的一个行为做到了关联。

关联做到之后,下一步就做赛马系统。

在任何一次配置的时候,就像现在阿里云给客户做调优的时候,我们会事先与客户沟通调优。

例如说在这样一次配置中,以客户线上的业务为例,conf_1是一个高风险的功能,conf_2是对现有功能比如BBR的参数的调优,conf_3启用的可能是GCC。把配置发到节点,客户在进行播放之后,针对上两步把他的客户端和服务端的数据拿到之后,采集到GRTN这边,数据上传来之后,再对AB的结果做一个综合的分析。

这个时候在研发人员的眼里就已经明确的知道下发的各组配置它的效果到底如何,区别是什么。研发调优人员就能够知道怎么去做进一步的调优,同时反馈哪一组配置可以被淘汰,再基于好的配置对它进行进一步的调优。所以这也就是赛马系统的价值——能够基于客户端的数据和服务端的数据进行综合的持续的迭代。

如图是赛马系统,它作为一个整体,有GRTN的节点网,服务客户端上报数据和GRTN的日志系统打通,做到相互配合。

GRTN QOE 优化案例

这是GRTN的一个优化样例,也就是赛马系统的评分。

当时我们做实验有4组,normal就是平时日常运行常量的配置,radical就是一组非常激进的配置,reference就是用来跟radical进行对比的参照。如图做了一个六维的展示,也按照我们的想法对它进行了综合打分。

更详细的结果是上表,刚才提到的conf_id配下去之后,运行完之后,接下来得到成功率、秒开这样的一些数据。这就是GRTN目前展示出来的赛马系统能够看到的数据。

成功率、秒开,都属于QOS的范畴,最后的平均播放时长,是属于QOE的范畴。

我们测试下来得到的radical这一组的数据是最好的,它在播放时长上可能有1秒钟左右的优势,积累了24小时的数据,大概几十万的量级,我们认为这个量级的播放是可以用于支撑AB的数据。GRTN最开始在手淘场景做这个系统,手淘的业务量比较大的,所以我们从最开始通过手淘的线上的全部量级去运行。现在是直接可以通过外部客户的数据去运行,做成赛马系统,将阿里云可编程的能力,客户端的数据采集,包括赛马,做成闭环。

现在优化的方法,想要优化某种策略,需发一组配置下去。例如发一组配置,运行一个晚高峰,到第二天就能拿到数据结果,这样的过程实际上对迭代的优势是非常大。

例如今年3月份,我们给某个客户在调优播放时长的时候,通过分析客户端的一些行为,包括通过测试对数据进行分析,发现客户的音视频同步可能有点问题。怎么去解决这个问题呢?

我们认为通过服务端的发帧策略的调整能够帮助客户端更好地实现音视频同步。我们用可编程把这个策略做好发出去,在第二天这个效果非常好。我们发现发下去之后,这组配置的观众播放时长升高了,这就是QOE的优化。

在这个基础上就完成了第一轮的迭代,我们认为这个路线是对的。接下来就是在这条路线上,怎么把参数进一步的调优。

以上整理自LVS2022《全球实时传输网络GRTN—QOE优化实践》演讲全文。

「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。公众号后台回复【技术】可加入阿里云视频云产品技术交流群,和业内大咖一起探讨音视频技术,获取更多行业最新信息。

阿里云视频云 「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领
评论
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 448浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 189浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 162浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 117浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 236浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 189浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 147浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 140浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 299浏览
  • 故障现象 一辆2007款日产天籁车,搭载VQ23发动机(气缸编号如图1所示,点火顺序为1-2-3-4-5-6),累计行驶里程约为21万km。车主反映,该车起步加速时偶尔抖动,且行驶中加速无力。 图1 VQ23发动机的气缸编号 故障诊断接车后试车,发动机怠速运转平稳,但只要换挡起步,稍微踩下一点加速踏板,就能感觉到车身明显抖动。用故障检测仪检测,发动机控制模块(ECM)无故障代码存储,且无失火数据流。用虹科Pico汽车示波器测量气缸1点火信号(COP点火信号)和曲轴位置传感器信
    虹科Pico汽车示波器 2025-01-23 10:46 60浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 619浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 209浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 119浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦