年年618,今又618。
如果说今年618跟往年有什么不同?那一定是“直播带货”大火。从明星到店家,都加入这场“直播 电商”的热潮之中。与传统电商相比,直播带货具备更高的转化率,商品展示形式更丰富,体验更真实。由于疫情影响了线下的流量,直播渠道能帮助无数中小企业、个体经营者突破重围,直面客户。 “直播 电商”模式的火爆有一定的技术和用户基础。截止2020年3月,在我国9.04亿网民中,就有2.65亿电商直播用户。 “直播”的需求对承载的电商或直播平台也提出了各种考验,比如:服务可用性、网络攻击、海量带宽等。 在“618”这样的“大考”中,快手、小红书、蘑菇街等头部直播电商平台是如何支撑亿级高并发的短视频和直播带货应用的?接下来,腾讯资深架构师何书照、张丽强为大家从技术层面深入剖析。
现在国内多家头部电商直播平台的通用架构可归纳为“电商系统 直播 即时通信 IM ”。其中“电商系统”和“即时通信IM”都有比较成熟的技术应用。接下来就为大家展开讲讲新兴的直播模块架构和技术。
下图呈现的图片,从主播到观众端全链路讲解了直播技术架构。
这些模块中有以下需要注意的实现难点:
主播端:
1. 保障商品上架、直播互动、主播连麦等基本功能顺畅。
2. 对于主播端有大型摄像机推流的直播间,主播端需要适配多种推流硬件、编码器或盒子等设备。
3. 美颜滤镜也是主播的刚需。
流媒体处理:
1. 实时转码:对编码器、转码CPU进行优化,并且兼容多种视频格式。
2. 合规风控:杜绝色情、谩骂、引流等不合规内容传播;对直播内容进行录制截图以满足回播和内容审查要求。
CDN:
海量并发处理,不仅涉及到网站的加速,也涉及到音视频文件的加速,直播平台必须应对因跨运营商、跨地域带来的网络不稳定,访问延迟高等问题。
观看端:
1. 终端适配:适配500 主流机型,小程序、pc端等。
2. 保障直播间播放、互动、打赏、点赞、购买等功能畅通无阻。
针对以上场景,腾讯云提供了直播一站式解决方案,最快1天即可构筑好直播能力。
主播端:
对于主播开播、图文互动界面与功能,集成腾讯云直播 iOS、Android、Web等推流SDK可以快速上线,该方案也支持大型摄像机的推流, 电商直播中常见的第三方推流硬件和编码器或盒子等设备。在直播美颜方面可采用天天P图同款AI美颜功能,包括滤镜、动态贴纸、美妆、绿幕等趣味特效。
流媒体处理:
开通云直播、云通信服务,添加自有域名,注册推流与拉流域名后即可进行推流。对任意格式和码率的视频都能进行封装、混流和实时转码。腾讯云还提供了一整套机器 人工审核方法,以及录制截图功能保障内容合规。
CDN:
电商直播是内容 直播的形式,不仅涉及到网站的加速,也涉及到音视频文件的加速,腾讯云 CDN 在全球30 国家1300 加速节点,有效解决因跨运营商、跨地域带来的网络不稳定,访问延迟高等问题。
观看端:
在直播间浏览、推荐等功能中集成腾讯云播放SDK实现HTTP-FLV拉流。集成云通信SDK,实现主播图文互动,定制开发打赏、点赞等互动功能,电商一键购买功能,该方案可适配小程序、PC以及市面上绝大多数手机终端。 根据以往经验在电商直播过程中,关注较多的是直播过程中拉流的时延和卡顿,下面从这两方面进行详细讲解怎么处理这两个问题。
首先选择一个合适的直播流媒体协议。一般电商直播推流使用RTMP推流,下行播放端使用的协议不一样,端到端的时延不一样,详细如下表所示:
通过对比可以看到,一般电商直播使用的协议比较多的是HTTP-FLV形式,这种协议延时能够稳定到5秒以内。如果为了兼容H5直播而选择HLS协议会发现延迟较大。HLS 协议是苹果主推的基于大颗粒的 TS 分片的流媒体协议,每个分片的时长通常在5秒以上,分片数量一般为3个 - 4个,总延迟在20秒 - 30秒左右。想要降低延时需要缩短每个分片的时长。 其次,我们在直播过程中遇到延时问题的时候,建议对关注GOP(两个帧内编码图像帧之间的间隔)设置为2秒左右,如果设置过大会造成比较大的延时。 如果使用的是第三方推流软件例如OBS,建议用腾讯云移动直播 SDK 的推流 Demo 做个对比,排除第三方推流器的编码缓存引入大延迟的可能,因为很多第三方的推流器会暴力的采用无限缓冲的方式来解决上行带宽不足的问题。 如果以上建议都不能满足延迟的要求,您可以接入腾讯云快直播或者TRTC,比标准直播延迟更低,可以提供毫秒级的极致直播观看体验。
直播过程中另外一个让人头疼的问题是容易被观众刷屏卡顿,那么怎么解决卡顿问题呢?首先要根据观众的网络,设置合理的编码,目前根据经验,合理的编码推荐档位是高清,详细信息和使用场景如下表所示。
另外需要主动提示主播网络状态,通过合适的 UI 交互提示主播“当前网络质量很糟糕,建议您拉近离路由器的距离,避免 Wi-Fi 穿墙”是最好的选择。如果使用的是腾讯云SDK,推荐的做法是:若App 在短时间内连续收到移动直播 SDK 的多个 PUSH_WARNING_NET_BUSY 事件,则提示主播关注一下当前网络质量,因为对于上行阻塞这种情况而言,主播本人是没办法通过视频的表现感知到的,只能通过观众的提醒或者 App 的提醒来了解。 其次据统计,视频云客户群大部分的直播间卡顿问题,均是由于主播端上传阻塞所致。国内运营商提供的宽带上网套餐中,下载网速虽然已经达到了10Mbps、20Mbps甚至是100Mbps、200Mbps,但上传网速却还一直限制的比较小,很多小城市的上行网速最快是512Kbps(也就是每秒最多上传64KB的数据)。Wi-Fi 上网遵循 IEEE 802.11 规定的载波多路侦听和冲突避免标准,简言之就是一个 Wi-Fi 热点同时只能跟一个手机通讯,其它手机在跟热点通讯前都要先探测或询问自己是否能够通讯,所以一个 Wi-Fi 热点使用的人越多就越慢。同时 Wi-Fi 信号受建筑墙体的屏蔽干扰很严重,而普通家庭很少在装修时考虑好 Wi-Fi 路由器和各个房间的信号衰减问题,可能主播本人也不清楚自己做直播的房间离家里的路由器究竟穿了几堵墙。解决这个问题的办法是降低主播上行的推流码率,或者保证无线带宽上行不被占用,目前大型主播很多用固网接入保证主播的网络带宽。 最后,如果针对单个观众的卡顿问题,要关注帧率,分辨率,和CPU以及内存情况。例如从CPU面看确认谁在消耗 CPU,一款直播 App 中使用 CPU的有很多情况,推流 SDK,弹幕、飘星、文本消息互动等都有可能会消耗一定的 CPU,这些都是不可避免的。要保证CPU不被其他人抢占。也不要盲目追高分辨率,过高的视频分辨率并不一定能带来清晰的画质,较高的分辨率要配合较高的码率才能发挥效果,低码率高分辨的清晰度很多时候比不上高码率低分辨率。
目前,快手、小红书、蘑菇街、每日优鲜、云集、贝壳找房等众多知名企业选择了腾讯云提供的直播技术实现直播带货,使商家更加全面地传递了商品信息,促进用户的有效决策,降低营销成本,通过提供直播秒开、色彩滤镜、手动曝光等功能,快速上手,开启即用,提高直播人气,活跃直播气氛,增加流量,进一步的提高转换率增加成交量。
本文通过分析电商直播的背景,以及技术难点,通过分析架构,介绍了腾讯云如何在超大流量的海量并发情况下,为平台提供可靠、高质量护航方案。希望本文能给直播平台的开发者提供一些思路和借鉴。 所以至此我们预测,电商直播的大潮才刚刚开始,和传统货架式的卖货存量市场相比,电商直播的空间还很大。随着5G等新技术的逐渐普及,相信电商直播的未来会越来越好。