直播带货王,“OMG买它”的背后,为什么是一连串技术挑战?

原文链接:https://bbs.huaweicloud.com/blogs/279968

【摘要】 动辄几十上百万人同时在线的直播间,宝贝链接一旦上架,需要秒级到达消费者。让所有人能同时看到链接,公平的去抢购,并且还要确保系统运行的稳定,这是一个非常大的考验。背后到底是什么样的技术加持,过程中又遇到了哪些挑战?让我们来一探究竟。

“OMG,买它买它!”某人气主播的直播间内,热闹非凡。上百万人同时在线,右手拇指如同上了弦的箭,就等主播发出口令“3,2,1,上链接!”,火速下单。

没错,今年的618,直播带货已经成了“剁手党”们喜闻乐见的一种购物形式。截止2020年,在我国9.04亿网民中,就有2.65亿电商直播用户。

动辄几十上百万人同时在线的直播间,宝贝链接一旦上架,需要秒级到达消费者。让所有人能同时看到链接,公平的去抢购,并且还要确保系统运行的稳定,这是一个非常大的考验。背后到底是什么样的技术加持,过程中又遇到了哪些挑战?让我们来一探究竟。

传统直播:卡顿延迟,拼手速总是慢人一步

直播的及时性和互动性让它成为信息触达、互动沟通的新媒介,最大化真实还原人与人的线下互动场景。但直播的实时互动效果够好了吗?

互联网直播全链路可以分为7个步骤:分别是采集、编码、发送、分发、接收、解码和渲染。而在发送和分发的阶段,由于网络抖动等多种不可控因素,导致了直播延时的不可控。

  • 在线授课,学生提出问题,由于直播延时,老师都讲到下一个知识点了问题才弹出来,只能返回重新回复;
  • 电商直播中,粉丝询问宝贝信息,由于直播延时,明明刚刚听到主播开卖,却就是抢不到;
  • 赛事直播中,在别人的呐喊声中才发现进球了…

img 很多直播开始跨平台跨地域直播,如何实现异地直播,跨平台直播,就需要一些推流和拉流的技术。推流是把采集阶段封包好的内容传输到服务器的过程;拉流是指服务器已有直播内容,用指定地址进行拉取的过程。

目前业界直播采用的协议,一般把RTMP作为推流协议,把RTMP/HTTP-FLV作为拉流协议,延迟在3-5秒左右。而在H5上更多采用的是时延超过10秒的HLS系统。也就是说,当主播在直播间举行一个抢购活动,你每次听到主播喊出“三二一,上链接!”的时候,其实在直播现场中已经过了好几秒了。

除了直播协议本身会带来时延,传统直播由于架构原因也会产生延时。传统直播的技术架构分为3层,分别是单线的CDN边缘节点、多线的CDN中心节点和承载一些增值服务的源站。整个直播从推流到拉流,一般调度系统会将主播切入到最合适的边缘节点,边缘节点进行收流,通过CDN中心节点转推到直播的源站;此时,观众通过调度接入到拉流的边缘节点上,静态化的通过CDN中心节点回源到直播的源站。 img

但是,综合体验来看,以下三点并不适用于低时延的场景。首先最大的消耗是在观众侧到CDN拉流边缘的最后一公里上,这里TCP协议并不适用于低时延。第二是基于静态树状分发架构,处于对成本考虑也并不是特别好。第三是在整个直播源站上的转码,目前也有相对较大的时延,一般在500ms左右,这个也是低时延直播解决不了的。

“3、2、1上链接”背后的硬核技术:大规模超低时延

传统直播技术遭遇高并发与低延时之间的瓶颈,阻碍了直播在一些场景的落地,已经不能满足某些对互动要求更高的直播场景。直播产业的下一个升级:低时延直播技术正在兴起,且有望成为直播技术的新焦点。

八仙过海,各显神通,不同玩家以不同方式实现低时延直播,华为云音视频研发部门通过CDN传输的协议优化以及内部链路的动态优选、超低时延转码等技术的组合,把传统直播3-5s的时延显著的降低到800ms以内,转码时延控制在150ms以内。同时,超低时延直播对传统直播能做到完全兼容,减少对原有技术架构的冲击,降低架构优化的成本。

架构解析

除了直播协议的选择能够减少延迟外,我们还可以通过一些架构的细节优化,进一步减少直播延迟,让用户有更好的观看体验。 img

以上架构设计,比较好的做到了对原有传统直播架构的前向兼容性,能够维持原有的主播RTMP协议的推流。在直播的源站上面,对于媒体的转码以及一些功能的消息回调的通知可以无缝兼容。与此同时,在原有直播协议的基础上,对H5端扩展了对标准的RTC协议播放的支持,在iOS和安卓端支持私有的RTC协议的播放。

华为云超低时延直播技术优化的核心有三点: img

第一,最后一公里基于TCP对UDP计划的改造,引入华为云算法,把传统直播的时延降低到毫秒的数量级之内,同时能够保证很好的抗损,做到流畅的体验;

第二,把传统的树状的静态规划调度架构改成智能动态的网状架构,这就带来CDN内部分发回源的路径是动态规划的,而不是之前静态规划的链路;

第三,引入超低时延转码技术,最终将整个转码的时延由原来的500ms左右降低到稳定控制在150ms以内。 img

智能动态网状架构

为什么叫做智能动态的网状架构?举个例子,我们以三个观众访问的路径来做分析,比如一个主播是深圳电信的用户,以原有的架构,会接入到深圳电信就近的边缘覆盖节点上,再推到中心节点,再到源站,而访问观众会通过一个固有的静态的中心获取这个信息。无论用户和观众的距离有多远,都会走到边缘中心源站,然后再下行,需要经过5层节点的分发。

而以现在的架构,如果有一个观众是深圳电信的用户1,通过动态的架构会把他实时调度到和主播推流节点相同的节点上来,他的访问路径是主播到B节点,然后再到观众,其实就经过了一条,整个链路的质量和成本都能得到很好的提升。对于广西电信的一个用户2,如果把他直接调度到推流点,整个网络将不可控,那么动态智能网状架构会把他接入到就近的节点上。因为B到C之间的网络相对是可靠性更高一些,调度系统判断这一块的访问质量是可行的,所以用户2的访问路径是2-C-B,经过两点。而如果是北京连通的用户3,主播跟观众是天南海北的,这种情况下做就近的访问可能对质量的损害会比较大,则还是会按照原有的方式去拉流,保证高质量的访问。

智能调度流媒体大脑

上面的例子是观众对于主播整体链路最终结果的呈现,但这背后还要依赖于一套基于流信息的智能调度系统。这个调度系统的架构基于在源站上搭建的智能调度流媒体大脑,其主要由四大核心模块构成:

  1. 内容管理中心,可以理解为就是流媒体的眼睛,能够通过边缘实时流信息的汇报,比如某个时刻有主播上线、什么时候下线等消息通知,准确地知道每一个主播的上线、每一个观众的接入,能够清晰的知道这个流被推到哪里,在全网的哪个节点之上。
  2. 质量地图,用于构建整个CDN网络的节点间,包括用户到节点间网络实时的状态。通过下发一些调度任务到位于边缘探测Agent的节点上,探测Agent发起周期性的探测任务,然后把探测结果上报给大数据中台,最终实时分析出全网的覆盖质量。
  3. 调度控制器,它掌握的是调度所依赖平台的基础数据,比如节点流量、节定规划、以及用户侧的一些数据。
  4. 调度决策中心。前面三块的输出会作为调度决策中心的输入。调度决策中心作为最终调度的大脑,会实时生成一个全网的调度策略,包括用户接入的调度策略和节点间内部回源的策略,并下发到调度执行器上。最初华为把调度的执行器部署在云上,后来为了打造端到端的低时延,把这部分下沉到了CDN的边缘节点上,尽最大的能力去降低用户之间调度的时延。

超低时延转码技术

说到视频低时延,就不得不提视频转码。目前,视频转码已经成为各大直播平台功能的标配。但由于终端用户的网络情况不一,为了达到端到端的低时延,转码的时延也需要进一步降低。华为转码技术能将时延稳定控制在150ms以内,同时低时延的转码也支持高清低码的技术,在同等画质下,把播放端的码率降低30%以上,节省整个平台的带宽成本。基于高质量的画面诉求,低时延的转码也支持画质增强和ROI增强的功能,还能够对画面的细节和纹理做精确的定向优化。

伴随5G技术的应用推广,“直播+”模式向各垂直领域加速延伸,在线直播应用井喷式增长。传统的直播在今年将转换为超低时延直播,并率先在在线教育、电商直播、赛事直播及秀场类直播四个行业场景进行落地推广。

2021年将会是传统直播迈向超低时延直播转折的年份,在今年底预计20%的互联网直播将全面的升级成为超低时延直播。未来的2-3年,超低时延直播将全面替换传统直播,最终引领一轮新的商业模式,引领直播行业新一轮的发展。

商业创新推动了电商直播行业的蓬勃生长,而支撑这些沸点场景和交易奇迹的,必然是技术的巨大能量。相信在新技术的洗礼下,消费者的个人需求、消费环境、消费理念都能得到进一步升级。

最后

电商在争夺消费者的战争中,技术的进步至关重要。从消费需求的产生,到购买行为的深入,从供应链到平台交易数据的分析管理,从直播带货的低时延到业务数据的安全,云计算、AI、大数据等技术的迭代,一步步改变在线购物的模式,也定义了新的商业模式。

曾经,AR/VR技术在内容呈现和消费者互动上提供了新的可能性,随着5G技术的成熟,以及经历前期高投入和试错后,模拟真实场景的VR购物,或许会让足不出户边逛边买成为一种常态化的购物模式。

在消费者的另一端——智慧物流侧,IoT、边缘计算、机器视觉、无人驾驶,这些技术已经在改变传统的物流仓储和运送体系,从自动化立体仓储、自动输送、自动分拣到机器人作业,规整统一的自动化操作提高了运作效率。

618是消费者购物狂欢的节日,它对电商企业也是一次大考,创新高的业绩背后考验他们的技术实力。换个角度看,618在拉动内需的同时,也拉紧了技术创新、产业升级背后的那根绳子。

这些信息有用吗?
Do you have any suggestions for improvement?

Thanks for your feedback!