618 技术特辑(三)直播带货王,“OMG 买它”的背后,为什么是一连串技术挑战?
摘要:动辄几十上百万人同时在线的直播间,让所有人能同时公平的去抢购,并且还要确保系统运行的稳定,这是一个非常大的考验。背后到底是什么样的技术加持,过程中又遇到了哪些挑战?让我们来一探究竟。
本文分享自华为云社区《618技术特辑(三)直播带货王,“OMG买它”的背后,为什么是一连串技术挑战?》,原文作者:技术火炬手 。
“OMG,买它买它!”某人气主播的直播间内,热闹非凡。上百万人同时在线,右手拇指如同上了弦的箭,就等主播发出口令“3,2,1,上链接!”,火速下单。
没错,今年的 618,直播带货已经成了“剁手党”们喜闻乐见的一种购物形式。截止 2020 年,在我国 9.04 亿网民中,就有 2.65 亿电商直播用户。
动辄几十上百万人同时在线的直播间,宝贝链接一旦上架,需要秒级到达消费者。让所有人能同时看到链接,公平的去抢购,并且还要确保系统运行的稳定,这是一个非常大的考验。背后到底是什么样的技术加持,过程中又遇到了哪些挑战?让我们来一探究竟。
传统直播:卡顿延迟,拼手速总是慢人一步
直播的及时性和互动性让它成为信息触达、互动沟通的新媒介,最大化真实还原人与人的线下互动场景。但直播的实时互动效果够好了吗?
互联网直播全链路可以分为 7 个步骤:分别是采集、编码、发送、分发、接收、解码和渲染。而在发送和分发的阶段,由于网络抖动等多种不可控因素,导致了直播延时的不可控。
在线授课,学生提出问题,由于直播延时,老师都讲到下一个知识点了问题才弹出来,只能返回重新回复;
电商直播中,粉丝询问宝贝信息,由于直播延时,明明刚刚听到主播开卖,却就是抢不到;
赛事直播中,在别人的呐喊声中才发现进球了…
很多直播开始跨平台跨地域直播,如何实现异地直播,跨平台直播,就需要一些推流和拉流的技术。推流是把采集阶段封包好的内容传输到服务器的过程;拉流是指服务器已有直播内容,用指定地址进行拉取的过程。
目前业界直播采用的协议,一般把 RTMP 作为推流协议,把 RTMP/HTTP-FLV 作为拉流协议,延迟在 3-5 秒左右。而在 H5 上更多采用的是时延超过 10 秒的 HLS 系统。也就是说,当主播在直播间举行一个抢购活动,你每次听到主播喊出“三二一,上链接!”的时候,其实在直播现场中已经过了好几秒了。
除了直播协议本身会带来时延,传统直播由于架构原因也会产生延时。传统直播的技术架构分为 3 层,分别是单线的 CDN 边缘节点、多线的 CDN 中心节点和承载一些增值服务的源站。整个直播从推流到拉流,一般调度系统会将主播切入到最合适的边缘节点,边缘节点进行收流,通过 CDN 中心节点转推到直播的源站;此时,观众通过调度接入到拉流的边缘节点上,静态化的通过 CDN 中心节点回源到直播的源站。
但是,综合体验来看,以下三点并不适用于低时延的场景。首先最大的消耗是在观众侧到 CDN 拉流边缘的最后一公里上,这里 TCP 协议并不适用于低时延。第二是基于静态树状分发架构,处于对成本考虑也并不是特别好。第三是在整个直播源站上的转码,目前也有相对较大的时延,一般在 500ms 左右,这个也是低时延直播解决不了的。
“3、2、1 上链接”背后的硬核技术:大规模超低时延
传统直播技术遭遇高并发与低延时之间的瓶颈,阻碍了直播在一些场景的落地,已经不能满足某些对互动要求更高的直播场景。直播产业的下一个升级:低时延直播技术正在兴起,且有望成为直播技术的新焦点。
八仙过海,各显神通,不同玩家以不同方式实现低时延直播,华为云音视频研发部门通过 CDN 传输的协议优化以及内部链路的动态优选、超低时延转码等技术的组合,把传统直播 3-5s 的时延显著的降低到 800ms 以内,转码时延控制在 150ms 以内。同时,超低时延直播对传统直播能做到完全兼容,减少对原有技术架构的冲击,降低架构优化的成本。
架构解析
除了直播协议的选择能够减少延迟外,我们还可以通过一些架构的细节优化,进一步减少直播延迟,让用户有更好的观看体验。
以上架构设计,比较好的做到了对原有传统直播架构的前向兼容性,能够维持原有的主播 RTMP 协议的推流。在直播的源站上面,对于媒体的转码以及一些功能的消息回调的通知可以无缝兼容。与此同时,在原有直播协议的基础上,对 H5 端扩展了对标准的 RTC 协议播放的支持,在 iOS 和安卓端支持私有的 RTC 协议的播放。
华为云超低时延直播技术优化的核心有三点:
第一,最后一公里基于 TCP 对 UDP 计划的改造,引入华为云算法,把传统直播的时延降低到毫秒的数量级之内,同时能够保证很好的抗损,做到流畅的体验;
第二,把传统的树状的静态规划调度架构改成智能动态的网状架构,这就带来 CDN 内部分发回源的路径是动态规划的,而不是之前静态规划的链路;
第三,引入超低时延转码技术,最终将整个转码的时延由原来的 500ms 左右降低到稳定控制在 150ms 以内。
智能动态网状架构
为什么叫做智能动态的网状架构?举个例子,我们以三个观众访问的路径来做分析,比如一个主播是深圳电信的用户,以原有的架构,会接入到深圳电信就近的边缘覆盖节点上,再推到中心节点,再到源站,而访问观众会通过一个固有的静态的中心获取这个信息。无论用户和观众的距离有多远,都会走到边缘中心源站,然后再下行,需要经过 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 年,超低时延直播将全面替换传统直播,最终引领一轮新的商业模式,引领直播行业新一轮的发展。
商业创新推动了电商直播行业的蓬勃生长,而支撑这些沸点场景和交易奇迹的,必然是技术的巨大能量。相信在新技术的洗礼下,消费者的个人需求、消费环境、消费理念都能得到进一步升级。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/66948dfbf6e668a547d631f28】。文章转载请联系作者。
评论