淘宝直播技术分享:如何打造体验优秀的“直播+”产品?
suckseed
8年前
<p>2016年是移动直播爆发年,不到半年的时间内无数移动直播App掀起了全民直播的热潮。很多不同产品都在自己的应用里面增加了直播模块,希望能趁着这波移动直播的风潮能快速推进自己的产品。而在电商类的APP中,淘宝率先在手机直播里面试水电商直播,并用实际的数据证明了这是一种非常具备前景的新模式。</p> <p>本文将重点介绍淘宝直播在业务模式上的探索、移动直播背后的技术难点、优化用户体验等方面的内容。主要内容出自阿里巴巴高级技术专家陈举锋(丰火)在2016杭州云栖大会上的分享。</p> <h2><strong>淘宝直播的产品探索</strong></h2> <p>淘宝直播项目,于2015年11月立项,在今年4月份正式在手机淘宝上线。之后除了对基础的直播体验持续打磨,在产品形态和互动玩法上也进行了很多的探索,如导购链路、互动打赏、粉丝连麦等,极大提升了用户在直播场景下购买体验。</p> <p>不过回到淘宝直播的产品设计上来,在原有产品能力加上直播功能,并不只是简单的加一个功能,还要考虑如何与产品原有能力融合、是否对业务数据有提升等问题,这些都是要重点关注的点。</p> <p>第一个面临的就是内容整合的问题,直播如何与商品结合,与商家的能力结合、与整个生态上的各个角色结合。在这方面淘宝有很强的优势,有大量活跃在整个淘宝生态上的模特、淘女郎,她们自己的粉丝,有自己的流量来源,而粉丝也有在日常购买习惯上跟随这类草根明星(网红)的习惯,除此之外,她们也有与粉丝交流、直接给粉丝推送商品的场景,而直播作为一个实时的互动平台,正是连接这三方的一个很好的产品形态。</p> <p><img src="https://simg.open-open.com/show/6b7275acf8c923f9a7e34cfad3e85dfb.png"> (淘宝直播产品形式)</p> <p>在淘宝直播内,主播能随时的根据粉丝的反馈利用商品橱窗、优惠券、红包、抽奖等有趣的玩法来拉倒整体直播间的氛围,同时借助后台的商品实时识别能力,我们会直接在视频上叠加相关的热区标识。这样粉丝看到商品后直接点击就能进入商品详情页面,很好的缩短了导购链路,受到了主播和店家的欢迎。</p> <p>据统计,通过淘宝直播做营销,成交转化率4%,进店率30%,关注率9%.</p> <p>同时,结合直播+电商的特殊性,淘宝直播支持实时对直播内容进行分片,并和商品内容进行关联,无论是作为点播内容<strong>或者作为商品的介绍视频,也是很好的素材来源,主播也可以根据沉淀下来的直播内容持续分佣。</strong></p> <h2><strong>淘宝直播技术架构</strong></h2> <p><img src="https://simg.open-open.com/show/da0f3757f272cdb554869f0d735fa526.png"></p> <p>这是目前一些主流直播App产品的技术架构,包括各种SDK、HTTPDNS、CDN、视频流处理、推流、播放等等模块。淘宝直播在架构上也参考了业界的思路。</p> <p><img src="https://simg.open-open.com/show/d9079a95179be71cc5168828dda663ee.png"></p> <p>这是淘宝直播目前主要的核心架构,分为上下两层:</p> <p>上层是客户端,左边是推流,右边是播放,采用了常见的编解码和推流协议。下层是服务端,包括TCP接入、CDN、数据分发、录像生成等等。淘宝自主研发了CDN分发方案,完成整个直播链路的传输。另外和业界典型方案不同的还有一个点,就是双向互动通道,用于互动营销方案,主播跟粉丝进行一些互动,这是基于阿里自研的支持亿级日活的ACCS网络通道来做的。</p> <h2><strong>直播体验优化</strong></h2> <p>做一个直播平台,用户体验的关键基本上就七个字、三个点就可以概括:“不卡、不掉、不延迟”,分别对应播放流畅、交互稳定、内容实时。具体到业务上,大概有这些方面:</p> <ul> <li> <p>首屏秒开</p> </li> <li> <p>带宽成本优化</p> </li> <li> <p>ROI优化</p> </li> <li> <p>时延优化</p> </li> </ul> <p>下面分别介绍淘宝直播的做法。</p> <p><strong>首屏秒开优化</strong></p> <p><img src="https://simg.open-open.com/show/82f5da2bdb7e5a9200f1fe1d1a71003b.png"></p> <p>直播的首屏秒开指的是点击一个直播就能立即播放,目前业界也做得比较成熟,淘宝直播在其基础上对细节进行了分类,包括业务逻辑、网络、缓冲、渲染等优化:</p> <ol> <li> <p>并行处理:列表页、获取播放地址、房间状态、连接消息通道 整体时延超过3s</p> </li> <li> <p>请求合并:房间状态、地址、主播信息层、点赞数量、观看人数、在线列表</p> </li> <li> <p>传统DNS基于UDP,解析时间过长。使用HTTPDNS:预解析、防止域名劫持、精准调度(就近接入)、避免延迟</p> </li> <li> <p>收流服务器主动推送 GOP 至边缘节点,边缘节点缓存 GOP,播放端则可以快速加载,减少回源延迟</p> </li> <li> <p>根据TCP拥塞窗口做智能调度,当拥塞窗口过小说明丢包率过高,需要切换节点和故障排查</p> </li> <li> <p>增加上行、下行带宽探测接口,当带宽不满足时降低视频质量,即降低码率</p> </li> </ol> <p>通过这些优化手段,能够做到95%的直播点击后在900ms以内能够播放。</p> <p><strong>带宽成本优化</strong></p> <p>带宽成本优化主要是对音视频解码进行优化。直播是一个很烧钱的事情,淘宝直播上线以后,带宽消耗非常巨大。降低成本的手段第一是窄带高清,降低整体码率的消耗,还有一个重要的是采用了H265编解码,在画质上,其带宽消耗要远远低于H264,但带来附加上的技术问题是首先后台要有转码,我们在端上的解码用H265来看,但在主播端是用H264的编码来传,通过云端的集群将H264转成H265,需要阿里云的集群转码能力才能实现,对于H265的解码进行定制化的方案,目前做到的效果要比自带解码器的效率提升30%以上。</p> <p><strong>ROI优化</strong></p> <p><img src="https://simg.open-open.com/show/4cbb4eca76763bcc565e03ede57789d4.png"></p> <p>ROI是指Region Of Interest,根据视频画面不同区域的重要程度分配相应的码率,基于人脸识别,需要实时的对视频流进行处理。其实现在业界直播有一些美颜、实时装饰技术,原理上大家都差不多,只是ROI技术优化的目的在于优化码率。。</p> <p><strong>时延优化</strong></p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/eb9977f7c1b39afab5ba4d8c20dfc855.png"></p> <p>在做首屏秒开优化的时候,会预加载关键帧,但这个预加载会造成一定的时延,这时需要用算法进行决策加速、正常还是放慢播放,自动追帧丢帧,让主播和观众之间的时间差尽量小。</p> <h2><strong>直播互动技术架构</strong></h2> <p>淘宝直播的互动包括留言、礼物、红包、商品橱窗等等。这些互动都是基于Weex开发而来。</p> <p style="text-align: center;"><img src="https://simg.open-open.com/show/122f4ba2762f042e39f89acac921601d.png"></p> <p>从业务的类型而言,淘宝直播是一个很典型的淘系的业务。在构建整个逻辑体系的时候,采用Weex经过了多方面的考虑,因为初始团队比较小,很难同时兼顾多平台的开发,另外工期短,要求开发效率要高,使用Weex达成了覆盖多平台的目的,并且能满足团队在功能和性能上的需求。</p> <p>淘宝直播的下一步是打造开放平台,实现技术、内容上集团内共享,提供完备的直播服务。未来,阿里百川还将基于淘宝直播的技术,向开发者提供直播SDK,不仅提供常规的直播和推流技术支撑,也将把淘宝直播在电商互动方面的积累开放给广大开发者。</p> <p> </p> <p>来自:http://www.androidchina.net/5893.html</p> <p> </p>