唯品会快速搭建直播平台实战之路 | 架构师实践日

编者按:2016 被誉为直播元年,越来越多的企业开始依靠网络直播来做品牌推广宣传。把直播中的名人、网红背后聚集的关注度转换成购买力的过程,催生出「直播+电商」的模式。唯品会高级技术经理邓胤根据自身多年的技术实践经验,对如何在原有电商平台上快速搭建直播平台的经历做了分享,以下是对这次演讲内容的整理。



1



邓胤


演讲嘉宾:邓胤,唯品会高级技术经理,6 年移动端 Android 经验,6 年 Java EE 服务端经验,目前在唯品会负责唯品会安卓平台的直播技术架构实现。





视频直播现状





直播是从 2005 开始出现的。2015 年游戏直播开始兴起,其商业模式主要以购买虚拟道具为主。2016 年则正式进入泛娱乐直播时代,明星、综艺、电商等开始涉及直播领域,以此增加用户参与感,并助力粉丝经济。目前的直播分为 4 大类,分别呈现 4 种态势:



  • 真人秀场占比 64% —高规模、低增长

  • 游戏直播占比 12% —高规模、高增长

  • 体育直播占比 20% —低规模、低增长

  • 其他直播占比 4% —低规模、高增长


由占比可以看出,真人秀场起步较早,用户规模最高,是视频直播发展较为成熟的细分领域;游戏直播用户规模较高,增速较快,是发展相对成熟且具有潜力的细分领域;体育直播用户规模较低,呈现低增长趋势;其他直播包含电商直播、商务直播、财经直播等,起步较晚,用户规模较低,但增长潜力巨大。





电商为什么做直播





1. 电商用户红利正在逐渐消失,获客成本开始重新攀高,采用直播的方式,可以引进新的客户流量;


2. 电商平台会邀请有专长的达人、意见领袖来参与直播,以此促进购买,提升转化率;


3. 以跨境电商直播采购现场的方式,消除用户的不信任感;


4. 直播模式的群体效应可以影响有选择困难症的用户,更好地刺激用户非理性购物,达到强交互刺激冲动消费的目的。





如何做直播




2

图 1



图 1 是简单的视频直播示意图,推流端可以通过电脑、手机、专业设备推流,还可以通过导播台来切换,不通过信号源,比如从室外用手机拍摄切到室内通过摄像机拍摄,再进行观看。在搭建直播平台的过程中,有以下两种方式:


1. 自主研发;


2. 第三方的直播云(如果是快速搭建直播平台会排除自主研发,选择第三方直播云)


选择第三方直播云时可以从价格、功能、技术支持、安全性、成功案例这几项指标进行参考。





直播之路





唯品会在原有的电商平台上快速搭建直播平台,总共经历了四期,下面将对每一期做一个详细的阐述。


第一期:


第一期为商品列表 + 直播窗口。内容为直播前播放预告视频、直播前倒计时、自动切成直播视频、直播后播放回放视频、全屏播放、点赞飘红星动画效果等,重点是悬浮窗播放直播视频,一边选购,一边观看。悬浮窗播放的模块上,有些厂商是通过在线人数峰值收费,这样唯品会需要自己设计一套峰值埋点方案来验证厂商给的峰值报表,唯品会的峰值数据是通过心跳的方式去做(图 2),目前是两分钟的频率,每两分钟去发送一个心跳包,直播结束之后,再发一次(心跳的间隔时间越短,数据越精确)。3


图 2


第二期:


第二期则引入了 IM,内容有聊天室、主播推荐商品、主播跟用户之间通过 IM 沟通、点赞领红包、聊天室 emoji 表情、颜文字、围观、点赞、抢购消息、用户禁言、屏蔽头像。


4

图 3


5

图 4


在 IM 消息协议设置上,不使用第三方 IM SDK 自带的各种类型的协议(图 3),使用的是基于 JSON 格式的消息协议(图 4),这样做,便于切换到其他的 IM 平台。


6

图 5



还需要提及的一点是,做消息时,需要做消息缓冲队列,如果不做消息缓冲队列,会造成卡顿或者 IP 卡死。 唯品会是放一个含有 500 个消息的缓冲队列,每隔一秒钟从缓冲队列取得消息,然后做消息的整理合并,再做渲染 UI。


7

图 6


第二期峰值设计上有一定的改动,因为接入 IM,可以获取聊天室里所有成员的数量,在二期的时候,每过一段时间调用接口,提取聊天室里的列表的数量,存到数据库,所以视频是每隔几秒钟的数值通过 IM 群发,去更新这个在线人数。


第三期:


第三期内容主要是针对二期运营时所遇到的问题进行优化以及增加的新功能。


1. 回放视频的功能,平台可以在视频后台去配置锚点,在视频播放的三四秒的时候,会配置一个商品,当用户看这个回放视频的时候,也可以看到。到某个点的时候,也会有提示。如果直播去推送商品的时候,会有一些商品的一些弹框动画效果出来,其中还包括商品在直播间直接加入购物车;


2. 红包雨功能,当中有 4 个性能,红包雨动画性能停止渲染聊天室消息、停止点赞动画、暂停视频播放、随机延时 1~5 秒弹出红包对话框(减少对活动系统瞬间 QPS 过高的问题);


3. 消息合并,即做一个合并围观、点赞消息的功能。如果有很多围观消息,只会显示一条,像轮播一样来播放。


第四期:


第四期主要功能是互动直播:上麦连线、主播摄像头美颜、主播推荐商品、主播发送红包。


8


图 7


平台在峰值设计上也有改变,图 7 就是当用户端去进入直播间的时候,会发一个点对点的消息,发送到直播端的 App,直播端会把上线人数 +1,同理退出直播间,直播端会 -1,这时也会每隔五六秒向观众去发在线人数的消息。用户端可以更新在线人数,也同时把这个值上报给视频后台。





整体架构




9

图 8



图 8 是整体的架构图,其中 IM 服务有直播间管理的功能、红包活动、配置、商品管理等功能,这里提及下开播提醒功能,开播提醒即如果用户进入直播间的时候,直播还没有开始,可以让用户设置开播提醒,当直播开始前五分钟,会发邀请给用户,用户可以直接进入直播间。


从图 8 还可看出客户端需要接各种各样的 SDK,因为两个场景是不一样的,直播是比较适用于发布会、舞台场景的,但互动直播是比较倾向于网红直播,即拿手机直接做直播。另外比较重要的区别是直播的费用比互动直播低很多。