搜狐千帆直播用户体验优化与架构设计
随着用户量的增大以及资本的快速注入,直播产业进入了急速的发展。据不完全统计,国内现在共有规模不同的300多家直播平台。但是直播内容的高度同质化和用户群体的相同,决定了这个行业势必将迎来一波重新洗牌。因此,市场竞争将更多的集中于直播下的各个细分领域。其中,搜狐千帆直播继承了搜狐在自媒体视频领域的技术和产品优势,使搜狐的娱乐属性和媒体属性在移动互动时代得以加强。
一、直播行业目前的挑战
作为直播业务,用户大体上分为主播和观众两类,良好的用户观看体验是由主播和用户两端共同决定的,假如主播端推流不稳定,用户端网络再好也是无济于事的。因此直播平台对于“用户体验”的要求不同于其它产业,“齐头并进,两头兼顾”是直播平台打造良好用户观看体验的重要方向。为此,千帆直播分别为主播端和客户端设立了两套不同的问题解决方案。
主播端:
在全民直播时代,网络主播所处的网络环境良莠不齐,无法保证推流稳定性。但是在直播场景中需要时刻保持音视频直播流稳定,减少卡顿次数。一旦推流过程中出现了异常,主播就无法正常开播,为此千帆直播做了多条上行线路。根据“最佳寻址算法”找到主播端最优的链路,确定最稳定的动态码率和分辨率,保证直播流上行成功。
直播具有很强的实时性,弹幕、礼物、消息等互动内容要持续保持低延迟高可用。但是在高并发场景下,主播端的信息吞吐量巨大,无论是PC还是APP都会出现消息堆积、显示不全或者不及时现象,这就需要从产品技术角度减少误差。因此千帆直播设计了“WebSocket信号保护系统”、“消息均衡算法”以及“多任务归并算法”等等逻辑,保证即使出现井喷式的流量爆发也不会出现堆积卡死现象。
观众端:
观众需要极致的访问观看速度,目前千帆直播已基本实现了高速网络下的“秒开”。但是当在弱网环境、窄带环境、高速运动环境下挑战依然存在,因为每出现一秒的卡顿,都会导致大量用户流失,为此千帆直播做了多CDN策略,以保证CDN的资源稳定。
直播相较于视频点播,观众的存在感是决定性因素之一,对观众来说,与主播的互动和与其他观众的互动是观看直播的目的之一。因此需要像社交平台一样,在用户发出弹幕的时候,要尽可能的减少其他用户看到此条弹幕的延迟,时刻保持高实时性。这就对整个直播平台的技术架构提出了很高的要求,发出去的数据包不能有损耗和丢失,接受到的数据包也不能被劫持和篡改。
二、千帆直播的后台体系建设
千帆直播平台后台体系
千帆直播包括五大核心业务:基础业务、视频业务、数据业务、运营业务、监控业务。千帆直播创立初期秉承的就是敏捷开发模式,在设计架构时采用了面向服务的架构,从而使得各个核心业务以及内部子业务都形成独立服务,并且互不干扰,并且在开发和部署时,能够保持水平和垂直两个方向都可以扩展。
以刷礼物为例,直播平台在做大型的直播活动时会引来相当多的用户,大量的用户也带来了大量的礼物,大量的礼物特效势必会造成流量通道堵塞,但是如果用户在刷礼物的过程中都得不到良好的体验,结果可想而知。那么面对这样重要的流程,千帆直播做了哪些措施来保障在刷礼物过程中的体验呢?
首先是内部技术优化,为此千帆直播主要做了三方面的措施:
推动礼物特效本身的优化,在不删减动画的情况下,通过优化帧数,改变格式等手段缩减size。
预加载,在进入APP时,对于高级(付费)用户,提前下载礼物动画的更新。
强行内置,将礼物直接给打进包里,省掉下载时间。同时各版本的发包,也会根绝实际情况把当期热门礼物/动画给打进去。
其次是快速迭代,以千帆直播iOS版本为例,5.2版本的崩溃数量相较于5.3版本下降了很多。比如在5.3版本中,千帆直播APP在播放大礼物特效时,一直以来都会有一个很小概率的崩溃问题。这个问题对于高级用户来说,一旦发生那就是体验很差的问题,从而导致一些付费用户的流失。
三、千帆直播的性能优化捷径,与APM的完美融合
搜狐一向有重视用户体验的传统,千帆直播也继承了搜狐集团的这一特点,为了能够加强对直播平台的技术和服务的管理要求以及主播和客户端的性能体验,经过一系列严格的评估和实践,千帆直播决定引入第三方应用性能管理服务—听云来提升内外部的性能质量。这里我们可以从业务、平台等不同的角度来看。
移动端:
随着移动端的快速发展,直播平台的用户分布也逐渐向移动端倾斜,户外直播等新颖的直播方式的出现,都要用到移动端才能进行,因此移动端的重要性越来越突出。但是移动端不像PC端有相对稳定的网络环境,移动端的网络是处于不断变化中的。在弱网环境、窄带环境、高速运动环境下,如何能够保障稳定不丢包的直播流传输?如果在这其中,主播在直播过程中或者是用户在用流量观看直播的过程中出现了崩溃等一系列问题,这样的体验和对产品品牌的影响是极差的。
App崩溃数据汇总
因此千帆直播将听云App提供的SDK集成到自身中,帮助千帆直播的技术团队及时捕获APP中的崩溃信息、各种卡顿缺陷和网络请求列表,帮助运维和研发人员能够快速定位各种缺陷问题。以Crash崩溃为例,听云后台给出了详细的崩溃轨迹以及统计图表,版本和设备都一一详细的列出来,并且还有详细的程序堆栈,研发人员按照轨迹一步步向上钻取就可以追踪到问题所在。
相较于崩溃,可能卡顿对于直播平台来说一直是个老大难问题,同时直播又是一个具有强交互性的APP,动画、特效、音视频等等都有可能成为卡顿的元凶。听云的卡顿分析十分详细,可以列出每个方法的执行效率和上下文信息,并且结合当时的网络环境、设备硬件等外界因素,可以很容易的定位问题。
浏览器端:
虽然直播平台的移动端用户不断增加,但是PC端的用户仍占有很大比例。同时,网页相较于手机页面显示的内容只多不少,另外在PC浏览器端还要兼容多款浏览器,那么如何保障用户在使用浏览器观看直播时的体验以及页面的性能成为当前众多直播平台亟待解决的问题之一。
听云Browser页面分析
千帆直播将听云Browser的JS代码集成到PC网页和H5中,帮助千帆直播时刻监控各个页面的交互情况。以JavaScript错误为例,开发和QA就算再认真也不可能覆盖所有的设备,而且PC端浏览器版本之多,给错误审查带来了不小的麻烦。
同时听云Browser帮助千帆直播及时监测到页面的完整性,比如是否被运营商劫持、是否被插入了广告等等,从而减少不必要的损失。通过在后台观察性能特别低下的链接基本就可以发现问题所在,也方便前端工程师制定相应的优化策略。
网络端:
听云Network管理系统可以针对性配置全站的关键链接监控,这里包括PC页面、H5的页面以及各路关键接口。
听云Network首屏时间
听云在全国布有几十万个Agent,能很好的模拟出真实用户访问情况。帮助千帆直播按照一定的频率收集全国各地的访问反馈,其中包括页面时间、运营商环境、DNS解析等性能指标以及当时客户端的截图。
有需求才会有市场,市场决定了直播这个行业到底能做多大。并且现在的直播行业远不到市场饱和的状态,仍有很多经济风口可以挖,可以预见的是在未来的一段时间,这场围绕直播的战争还将持续下去。直播只是一种工具,目的是拉进人和人之间的距离、人和知识的距离、人和教育、人和各种行业需求之间的距离,在未来发展道路中,听云会与千帆直播携手,共同打造出最具社会意义的价值直播。
了解更多性能优化内容及听云产品请点击“阅读原文”申请试用
- 【最高人民法院开庭与庭审直播公告】12月18日三起案件公开开庭审
- 詹皇到底对球哥说了些什么?美国媒体用腾讯直播镜头揭开谜底
- 看直播,赢好礼!康比特带你玩转2017健身榜样总决赛!
- 公司要转型了,我怎么做才不会成炮灰?| 今晚直播
- 征文|2017搜狐教育征文大赛开始了!惊喜礼品等你来拿!
- 软件测试面试题大考问——搜狐篇
- 水滴直播事件爆发后,周鸿祎的愤怒、迷茫和坚定
- 白皮书:各级法院通过中国庭审公开网直播庭审40.4万件
- 欧洲缘何自古排斥俄罗斯
- 你正在被直播!商家却暧昧地闭上了一只眼…… | 中青快评