淘宝直播低延迟架构演进和实践

发表于 3年以前  | 总阅读数:231 次

传统直播技术痛点

大家看,这是线上的一些直播场景。

第一张图主要是服饰的场景,下面有观众与主播的评论交互。在传统直播的场景下,可能观众看的是 5-10 秒以后的画面,当观众评论提问的时候,主播可能已经不介绍这款商品了,所以会有一个延迟的 Gap,交流就比较困难。

第二个场景是珠宝的场景,介绍完镯子以后可能会换下一款,但是观众可能看的还是上一款镯子。

第三个是宠物直播场景。

传统直播的主要痛点有三个:

  1. 延迟高,5-10 秒的延迟;
  2. 主播和观众互动不及时;
  3. 直播和连麦场景切换复杂。

低延迟架构演进

这是传统的一个直播架构。中间是CDN的分发网络,最左边是自建的SFU 和 MCU 集群。最右边是支持的一些系统,比如说日志、监控、配置、调度,最下面的图是推拉流的 SDK。最上面是一个直播中心,有截图,转码,录制,切片等服务。

传统的直播分发网络是一个树状的结构。因为直播的量很大,树型结构分发可以控制成本。上行协议主要是 RTMP/WebRTC/私有 RTC,推到自建集群,然后通过rtmp推到CDN。下行协议主要是 HTTP-FLV/RTMP/HLS。

这是我们和CDN共建做的低延迟直播架构的改造,改造的点主要是 CDN 和观众播放器之间采用了 RTC 相关的技术,把延迟从 7 秒降到 1.5 秒左右。在业务上不仅延迟降低了,方便观众和主播间的交流。而且在线上分行业AB显示,在促进电商成交转化方面也取得了不错的效果。

这个架构大概是我们 2019 年开始和CDN,视频云, 企业智能,XG实验室共建的架构,也是目前正在开始大规模使用的。可以看到,中间CDN框架那边全部走的是 RTC 的链路,不再是树型的结构,是去中心化的架构。L1 和 L1 之间可以互通。如果 L1 和 L1 之间的通信有问题,可以走 L2 中转。MCU 合流服务可以像客户端一样直接连接到 RTC 的网络上,把需要处理的流拉下来,处理完之后再重新推给 RTC 网络。

主播通过 RTC 可以和网络直接通信,如果需要它做一些实时流的处理的话,比如说加一些 AI 的特效,可以通过实时流处理,处理完之后直接推给 RTC 整个网络。观众的话,也是通过 RTC 链路直接和这张网交互。

整个全链路 RTC架构 有几个比较好的点。它是一个直播、通话、连麦、会议共用的一张网。不同的业务高峰使用的时间段不一样。比如说直播,一般晚上观看的人数比较多。会议基本上是白天开会。这样不同业务就可以错峰地使用这张网。

因为CDN一般是根据每天峰值带宽来计费,这样白天可以跑通话会议的业务,晚上会有一些直播的带宽上来。通过错峰,不同的业务错峰来降低整体的成本。双向实时通信这块儿,因为 RTC 既可以推流也可以拉流,在同一个链接里可以走多路流,这是不限制的。比如说,推一路流,拉十路流,都是可以的。

互动体验升级

互动体验升级,对直播场景来说,主要是两点。

第一,提高互动效率。消费者通过直播间和直播交流的时候,原来老的系统观众看到的画面是 5-10 秒前的画面,所以主播和观众互动的时候时间点是对不上的。升级以后的延迟优化为 1 秒左右,使消费者和主播互动更及时。

第二,指标优化。从延迟上说,可以做到 1 秒以内,在通话会议场景可以做到 200 毫秒左右。秒开率相对于原有的传统直播系统能提升 32%,卡顿率降低 79%,卡顿 vv 降低 44%。

这里要讲一下互动连麦直播原来的架构和目前架构的区别

可以看到,原来的架构主播是通过 RTC 自建集群来转发 RTC 的流,保证低延迟,然后连麦。观众是通过 CDN 来拉流观看,中间走的是 rtmp 链路。如果是主播和主播之间的连麦,基本上是主播自己拉到对方的流,然后合流推到 CDN,然后再分发给观众看,这样的一个流程。如果是主播和观众连麦,观众本来是在 CDN 这条链路上。在传统的链路上,中间有一个延迟差,这个延迟差大概是 6-7 秒左右。通过 RTC 发起连麦的时候,通过 RTC 来连到自建集群,然后和主播互相通信的时候,画面是有延迟差的,这样体验就非常不好,有一些等待切换的逻辑在里面。

在新架构下,可以做到自建集群和 CDN 是完全融合为一体。也就是说,CDN 内部也是走的全链路 RTC,不管是主播和主播的通信,还是观众和主播的通信,完全走的是 RTC 的链路。RTC 链路可以通过一些传输优化保障,还有一些其他技术的优化,能够保障它所有的体验是统一的,比如说延迟、卡顿、流畅性等等。

下面是一个MCU,就是合流服务器。如果主播或者说观众的设备是低端机的话,它的性能不太好,所以需要通过 MCU 来合流,这个合流服务器也是类似于客户端的方式来接入这张网。然后通过把流拉下来,合完之后再推出去,因为我们延迟优化的很低,基本上能做到无感的切换。

这个架构模糊了观众、主播以及其他一些服务的角色。作为 RTC 的这张网来说,其实都是一个统一的接入者角色,既可以推流,也可以拉流。协议的话,都统一为私有的 RTC 协议。我们RTC 的私有协议可以做到一个 RTT 就可以快速地拉流建连。场景这块儿,目前直播场景、连麦场景、会议场景以及通话场景,可以做到无缝切换。通过配置系统,针对不同的场景会启用不同的策略。

还有一个好处是,从自建集群加CDN 统一为了一个集群,节省了自建集群的成本。整体的延迟也是比较低的。业务融合网络,刚才介绍了一部分,不同的业务可以跑在同一张网上,因为业务主要使用的时间段不一样,我们可以通过错峰使用来降低整体的带宽成本。

关键技术

我们这边和CDN是共建的关系。RTC Module 提供RTC相关的核心处理能力,以模块化的方式嵌入到系统。

内部的模块大概有以下这些:RTP/RTCP、BWE、QOS、PACE、PACKER、trickle/jitter、frame buffer、SRTP、setting等等。BWE,主要是一些拥塞控制算法,QOS 这块会有一些 QOS 的策略,像重传,SVC,FEC以及大小流相关的。trickle/jitter 主要作用是去抖和组帧。PACKER,有一些场景需要从视频帧或者音频帧打包成 RTP格式。SRTP 主要是提供加解密的模块。目前支持grtn私有协议和webrtc标准协议的交互。

在管理层,主要是有以下四种:

  1. 回调管理
  2. 订阅管理
  3. session 管理
  4. 推拉流管理

回调管理在系统和RTC 核心处理层之间,通过一些回调函数来处理它们之间的交互,做到这两层之间的隔离。

基础能力总结一下,主要是五点:

第一,多协议的框架。支持 webrtc、grtn协议。通过grtn私有协议接入的话,可以保证整体接入效果。还有其他一些私有扩展功能,比webrtc标准的交互效率会高很多。rtmp 和 http-flv 在这块儿上也是支持的。

第二,音视频 Pub/Sub 原子能力,方便使用扩展

第三,Data Channel 单独 Pub/Sub 管理,业务灵活定制。Data Channel 目前主要应用在控制信令和一些云游戏的场景。比如说观众和主播会通过 Data Channel 通道发一些控制信令,控制一些摄像机的动作或者说游戏里人物的控制。设计的时候也考虑了它的灵活性,也是提供单独的 Pub/Sub 的能力,可以单独使用。也就是说,如果在一个 URL 下只单独做一个数据的通道,这也是没问题的。Data Channel 通道的特点,我们会提供单独的传输保障。延迟可以控制在全国范围内大概 100-200 毫秒左右。如果是同一地域的话,基本上是一个 RTT。线上的话,平均大概的 RTT 是 20 毫秒左右。

还有一个运营场景是一些直播间的消息,如果通过传统的消息系统基本上是秒级订阅,或者是推拉的模式。我们现在可以做到百毫秒延迟以内。业务这块可以灵活定制,比如说可以单独挂消息通道的服务器,通过这个服务器各个端可以单独订阅这个消息通道。做一些业务的活动,还有一些实时消息的下发,可以做单独的灵活定制。

第四,媒体和信令通道统一,可靠信令。信令我们会保证它的可靠到达。大家都知道,UDP 在公网上是很容易丢的,所以我们有一些保证它快速可达的策略,会有一些快速的重传逻辑以及冗余的逻辑。

第五,全网灵活切流能力,Url/Stream 级别。大家都知道,连麦的场景下,主播推直播间的流,他和别人连麦的时候,原来的方式是走 RTC 的自建集群,RTC 自建集群会处理切流的动作。因为所有的主播流都会走自建集群,他在切流的时候,因为数据源可控,可以做到切流的时候不会影响后面所有的播放。在全链路 RTC 的时候,其实是一个分布式的系统,主播和主播要连麦的时候,接入点不同,整体是分布式的系统,切流能力就会保证他在切换过程中,能够保证全网的观众在同一时刻切到合流的画面。可以做到 Url 和 Stream 级别,也就是说不同的 Stream 也可以自由切换。

传统的直播链路中间是走 TCP,因为 TCP 在内核层,系统会提供一些策略,定制优化很难。我们现在用全链路 RTC,用的是UDP,UDP是不可靠的。全链路 QoS 策略这块就显得很重要。

音视频系统有一个特点,从采集到前处理到编码,到传输然后到解码、渲染,其实是一个串行的过程,中间任何一个环节有问题都会影响整体的体验。

指标的话,有成功率、卡顿率、秒开、延迟等等一系列指标。

场景有直播、连麦、通话、会议,会议也要做,去做直播电商内部多人的互动。我们做 QoS 要考虑多场景,要考虑 RTC 整体的传输链路,还有一些核心指标的优化。

目前用到的算法,主要是BBR 和 GCC 算法。这两个算法最开始是从 WebRTC 模块化拿来使用。后来我们几乎重写、重构了,提升了性能。并且针对直播的场景,深度定制优化。直播强调吞吐量,和会议场景的算法强调流畅还是有些区别的。

另外,我们会针对不同的算法,在不同的业务场景去做大规模的AB。根据数据系统搜集上来的不同指标、延迟等,来动态调整它的参数,不断优化改进。带宽分配算法,比如说服务器有音频 带宽、重传带宽、视频带宽,还有 SVC 的一些分层带宽,还有小流。这些带宽怎么分配,在什么样的场景下用什么样的策略,带宽分配算法要解决这些问题。

策略控制这块儿,主要有 FEC、ARQ、SVC 等等。RED 是为了保证音频的低延迟,JitterBuffer 也做了一些优化,Pacer 也针对直播大的吞吐量做了改进。比如说我们会做用多包发送的策略,以及中间链路的整体改进,还有 NetEq、延迟控制等等。

分阶段延迟优化我大致说一下。

做延迟优化的话,如果只是一个简单的场景,比如说一些数据量比较少的场景,这是比较简单的,但是我们的用户量,包括主播的用户量、观众的用户量,每天上亿的观看,如何保证全网平均延迟降下来,这个挑战是很大的。

延迟这块我们是这么思考的:直播系统主要分为推流端和播放器,中间走的是传输网络,需要针对每个阶段单独优化。传输网络部分,在网络比较好的情况,延迟还是比较可控的,如果网络不好,会启用一些 QoS 的策略。采集、前处理、编码,编码这块又分硬编、软编,还有一些自研的编码器。

发送缓存,也会动态的有一些策略。接收侧的话,延迟比较大的主要是接收缓存,接收缓存这块儿,如果和上行的网络之间有丢包、抖动,接收缓存都会动态调整,把整个延迟加上去,为了对抗前面的一些问题。解码这块,包括解码速度、解码缓存以及不同的解码器,比如说硬解、软解之类的。还有一些后处理,解码数量后处理的一些算法处理延迟。最后是渲染的延迟。

不同的平台是不一样的,IOS、Android、PC。比如IOS平台前处理、编码是怎么样的,大致的延迟分布是什么样的,都要有数据报表,在线上采集出来,去做针对性的优化。Android,PC 也是同样的。

每个阶段会有针对性的优化,比如说编码这块,我们会和算法团队一起优化,也会分不同平台进行编码部分的处理。编码这块儿也会放在线上,根据数据埋点系统分不同的平台,分不同的编码器,不同的版本做展示。

第二点,中间链路部分,主要是应用一些 QoS 的策略。还有一些调度,调度是和 CDN 合作的。规划出根据不同链路之间的网络质量、成本,规划出一条最短的传输路径。是质量、成本的一个综合策略。再加上 QoS 策略,保证传输的这块的延迟。

第三点,用户量比较大,会统计分析每一阶段的大盘延迟分布,每天都会不同的报表展示

数据系统部分主要介绍四个:

第一,全链路跟踪质量展示分析。根据这个系统可以跟踪每一条链路中间经过的每一跳的服务器,它们之间的链路状况是怎么样的,包括错误码以及码率,这是一个全链路的分析。从每个用户到主播这条链路,根据唯一的一个 ID 就能查到这条链路上每一跳的质量,这样就可以针对线上不同的问题进行详细地分析。

第二,分段延迟分析展示。这个系统会根据不同的平台、不同的主播、不同的阶段,比如说编码、解码、缓存、渲染、传输等阶段延迟的情况。

第三,配置 AB 系统。不管是端上的推流端还是播放器端,都有大量的配置,比如说一些时延性的算法,一些业务的策略,可以做到根据不同的业务进行分析,对比效果。举个例子,要证明一下我们优化的延迟对电商成交有没有正向效果。我们会选比如珠宝类的一些直播,还有一些衣服类的直播等等,根据不同的行业去做 AB,到底提升效果是怎么样的。

第四,RTC 质量大盘。针对不同的地域、不同的域名会有一个整体的质量展示。包括推流质量、拉流质量,以及一些中间链路的质量等等。

本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/rsUP4sZqtt7Et5Kt76mNeQ

 相关推荐

刘强东夫妇:“移民美国”传言被驳斥

京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。

发布于:1年以前  |  808次阅读  |  详细内容 »

博主曝三大运营商,将集体采购百万台华为Mate60系列

日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。

发布于:1年以前  |  770次阅读  |  详细内容 »

ASML CEO警告:出口管制不是可行做法,不要“逼迫中国大陆创新”

据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。

发布于:1年以前  |  756次阅读  |  详细内容 »

抖音中长视频App青桃更名抖音精选,字节再发力对抗B站

今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。

发布于:1年以前  |  648次阅读  |  详细内容 »

威马CDO:中国每百户家庭仅17户有车

日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。

发布于:1年以前  |  589次阅读  |  详细内容 »

研究发现维生素 C 等抗氧化剂会刺激癌症生长和转移

近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。

发布于:1年以前  |  449次阅读  |  详细内容 »

苹果据称正引入3D打印技术,用以生产智能手表的钢质底盘

据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。

发布于:1年以前  |  446次阅读  |  详细内容 »

千万级抖音网红秀才账号被封禁

9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...

发布于:1年以前  |  445次阅读  |  详细内容 »

亚马逊股东起诉公司和贝索斯,称其在购买卫星发射服务时忽视了 SpaceX

9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。

发布于:1年以前  |  444次阅读  |  详细内容 »

苹果上线AppsbyApple网站,以推广自家应用程序

据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。

发布于:1年以前  |  442次阅读  |  详细内容 »

特斯拉美国降价引发投资者不满:“这是短期麻醉剂”

特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。

发布于:1年以前  |  441次阅读  |  详细内容 »

光刻机巨头阿斯麦:拿到许可,继续对华出口

据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。

发布于:1年以前  |  437次阅读  |  详细内容 »

马斯克与库克首次隔空合作:为苹果提供卫星服务

近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。

发布于:1年以前  |  430次阅读  |  详细内容 »

𝕏(推特)调整隐私政策,可拿用户发布的信息训练 AI 模型

据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。

发布于:1年以前  |  428次阅读  |  详细内容 »

荣耀CEO谈华为手机回归:替老同事们高兴,对行业也是好事

9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI操控无人机能力超越人类冠军

《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI生成的蘑菇科普书存在可致命错误

近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。

发布于:1年以前  |  420次阅读  |  详细内容 »

社交媒体平台𝕏计划收集用户生物识别数据与工作教育经历

社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”

发布于:1年以前  |  411次阅读  |  详细内容 »

国产扫地机器人热销欧洲,国产割草机器人抢占欧洲草坪

2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。

发布于:1年以前  |  406次阅读  |  详细内容 »

罗永浩吐槽iPhone15和14不会有区别,除了序列号变了

罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。

发布于:1年以前  |  398次阅读  |  详细内容 »
 相关文章
Android插件化方案 5年以前  |  237297次阅读
vscode超好用的代码书签插件Bookmarks 2年以前  |  8136次阅读
 目录