【本期推荐】为什么一到大促,我们的钱包总是被掏空?是大家自制力不够,还是电商平台太会读懂人心,从技术维度,抽丝剥茧一探究竟。

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

本文分享自华为云社区《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年,超低时延直播将全面替换传统直播,最终引领一轮新的商业模式,引领直播行业新一轮的发展。

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

618技术特辑(一)不知不觉超预算3倍,你为何买买买停不下来?如果你想了解为什么每当大促的时候,我们的钱包总是被掏空?这背后到底是大家自制力不够,还是电商平台太会读懂人心,我们不妨从技术维度,抽丝剥茧一探究竟。

618技术特辑(二)几百万人同时下单的秒杀,为什么越来越容易抢到了?当消费者被电商的推荐系统虏获后,他们又是如何保证大促期间,你能随时随地买到自己心仪的商品,以及上亿的交易数据是如何有序地流通,保证你既能抢到,也能及时收到货呢?这篇文章为你一一解密。

点击关注,第一时间了解华为云新鲜技术~

618技术特辑(三)直播带货王,“OMG买它”的背后,为什么是一连串技术挑战?的更多相关文章

  1. CDN百科第四讲 | 如何优雅地在云上“摆摊”——做直播带货,你不得不关注的技术

    最近,国家政策开始鼓励“地摊经济”,一时间各家企业平台纷纷推出地摊扶持政策,地摊概念股顺势大涨,地摊生态及配套商品也开始走俏,甚至在网络上也涌现出各种“新摊主速成攻略”,万亿的烟火经济俨然已经走上风口 ...

  2. 直播带货APP源码开发为什么选择云服务器

    云服务器可以为直播带货APP源码提供弹性计算以及更高的运行效率,避免资源浪费,随着直播带货APP源码业务需求的变化,可以实时扩展或缩减计算资源.CVM支持按实际使用的资源计费,可以节约计算成本. 一. ...

  3. 从直播商城系统的KOL效应分析,直播带货井喷的必然性

    网红营销.直播带货作为近年来的热点发展迅猛,同时也捧红了一个概念:KOL.随着直播商城系统的不断完善发展,让KOL成为近年来营销最热门的香饽饽.随着原创直播平台低门槛化.模板化内容创作和大数据智能分发 ...

  4. 这群程序员疯了!他们想成为IT界最会带货的男人

    随着网红主播越来越火,通过直播带货种草的形式也成了今年双12的热点. 不过,网红主播带货早已见怪不怪,但你们见过程序员直播带货吗!? 近日,趁着阿里云双12年末采购节,阿里云邀请了一波程序员GG来为大 ...

  5. 带货直播源码开发采用MySQL有什么优越性

    MySQL是世界上最流行的开源关系数据库,带货直播源码使用MySQL,可实现分钟级别的数据库部署和弹性扩展,不仅经济实惠,而且稳定可靠,易于运维.云数据库 MySQL 提供备份恢复.监控.容灾.快速扩 ...

  6. 能卖课 会带货的CRMEB知识付费系统v1.30来了

    CRMEB知识付费系统是众邦科技在疫情肆虐,国家危难时开源发布的一款产品,它的诞生是众邦人爱国情怀的一次释放,更是众邦人用技术为人们带来美好生活的一次有效实践. 知识付费系统从2020年3月发布v1. ...

  7. 【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集

    Result学习笔记(三)带參数的结果集 第一部分:代码 //前端 <head> <meta http-equiv="Content-Type" content= ...

  8. Android NFC技术(三)——初次开发Android NFC你须知道NdefMessage和NdefRecord

    Android NFC技术(三)--初次开发Android NFC你须知道NdefMessage和NdefRecord 这最近也是有好多天没写博客了,除了到处张罗着搬家之外,依旧还是许许多多的琐事阻碍 ...

  9. 大型网站技术架构(四)--核心架构要素 开启mac上印象笔记的代码块 大型网站技术架构(三)--架构模式 JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)

    大型网站技术架构(四)--核心架构要素   作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载.此篇已收录至<大型网站技 ...

随机推荐

  1. C++ Socket 简单封装

    以下代码一部分来自于<网络多人游戏架构与编程>, 其它的都是我瞎写的. 备忘. 一个简单的Socket封装,没有做什么高级的操作(比如IO完成端口等等). 1 #pragma once 2 ...

  2. Day009 二维数组

    多维数组 多维数组是数组的嵌套(数组的元素是数组,数组的数组元素的元素是数组...),比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组. 二维数组 int a[][]=new int ...

  3. 鼠标右键添加vscode

    实现效果 右键文件夹,可以使用vscode打开 右键文件,可以使用vscode打开 右键空白处,可以使用vscode打开 进行实现 下载压缩包 为了方便操作,和减少错误,将.reg文件上传到网盘中,点 ...

  4. PHP 调用请求外网接口

    1.类中定义静态方法 class FtpService{ /** * 请求外网 * @param $url 外网接口url * @param bool $params 参数,拼接字符串 post请求可 ...

  5. 老J的技术分享之总结

    老J做IT这块有二十多个年头了,算是中国IT的见证者与参与者.那个时候刚开始接触和了解时,对于他的一些建议,我不是很乐于去接受,因为我觉得他的那一套技术体系不是很适合如今的情况,当时间久了后发现,他对 ...

  6. Educational Codeforces Round 101 (Rated for Div. 2)

    A. Regular Bracket Sequence 题意:题目中给(和)还有?,其中?可以转换成为()中的任何一个,并且所给样例中只出现一次(),问能不能括号匹配 思路:直接看第一个和最后一个能不 ...

  7. Dom树,什么是dom树?

    相信很多初学前端的小伙伴,学了html,css,js之后,欣喜之余还有一丝小傲娇,没有想到那些大佬们口中又 提到了DOM树.你两眼一抹黑,年轻人总是要接受社会的爱(du)护(da). DOM 是 Do ...

  8. Uva 642 - Word Amalgamation sort qsort

     Word Amalgamation  In millions of newspapers across the United States there is a word game called J ...

  9. Spring Boot 允许跨域设置失败的问题深究

    在公司开发过程中,一个前后端分离的项目遇见了跨域的问题. 前端控制台报错:No 'Access-Control-Allow-Origin' header is present on the reque ...

  10. Unix下 压缩和解压缩命令

    范例: .tar 解包:tar -xvf FileName.tar 打包:tar -cvf FileName.tar DirName (注:tar是打包,不是压缩!) ---------------- ...