前言
随着互联网的发展,用户对于观看体验的需求和预期也在不断提高。千兆光纤入网的用户无法接受频繁的网络卡顿,购买4K电视的用户乐于观看更高画质的视频。播放体验优化,就是持续地去发现用户观影过程中不好的体验或感受,并通过技术手段将这些问题解决。
在视频播放场景,播放时常遇到的问题有以下几种:起播缓慢,用户在观看前需要等待很长时间;播放出错,由于网络或软件原因导致用户无法正常观影;网络卡顿,用户被视频加载打断观影,网络缓冲后才能继续;音画不同步,用户直观的感受是台词口型对不上,视频、音频进度不一致。
本文将从这几类问题出发,阐述优酷技术团队在播放体验优化实战中的经验。
播放体验优化
首先,要让视频更快的起播,减少用户的等待时间。随着网络速度的提升,用户对缓冲的忍耐度逐年下降,对起播耗时的要求已经从之前的几秒逐步下降到了一秒,在短视频、直播等场景甚至开始对标200毫秒、500毫秒起播。影响起播速度的原因包括视频码率较高、用户网络较差、播放器初始化不及时等。
秒播率是衡量用户起播耗时的核心指标,其中主要的优化手段包括提前下发播放地址、视频文件的预加载、减少插件加载、优先渲染播放器等,另外,新协议比如GRTN、LHLS在秒播方面也有特定的收益,暂不赘述。
其次,视频播放时,我们要减少观看过程中暂停播放的次数。网络卡顿产生的直接原因是下载速度无法满足视频消费的速度,深层次的原因包括用户网络变差、音视频文件域名解析异常、CDN调度不均导致下载速度慢、文件回源导致额外耗时等。常用的解决方案有调度优化、多数据源择优下载、缓冲区管理优化等。
再次,声音和画面同步播放是用户的基本诉求,音画不同步主要是由于设备硬件或软件原因,解码/渲染的速度无法满足视频消费,导致播放出现卡帧/丢帧/音画不同步等问题。常见于高分辨率、高码率、高帧率的视频播放,以及倍速、满屏弹幕、动画交互等消耗设备性能的场景。技术上的解决方案:内核减少缓存次数从而提高传输效率、提高数据处理实时性从而减少内存占用、分别配置音视频延迟从而兼容蓝牙设备、渲染前丢帧等;业务上的解决方案包括合理分配性能资源、适当减少弹幕、动画的UI渲染强度等。
最后,稳定大于一切,时好时坏的体验会极大的消耗用户的耐心,比如用户点击播放却看到报错页面,或者看不到画面只能听到声音,甚至出现花屏、绿屏。影响稳定的原因主要有以下几种:客户端功能异常、服务配置变更、外部网络问题等。软件需要迭代、外部环境时刻都在变化,我们无法彻底规避这些问题,因此如何更快的发现、解决问题,就是优酷技术团队的新挑战。
播放体验的稳定、可靠
及时有效的监控报警是快速发现线上问题的不二之选。用户在遇到播放问题的时候,大部分用户会放弃尝试而流失,少部分用户会联系客服反馈问题。不及时、量级低、主观性强等特点,用户投诉率只能够作为稳定性间接的衡量方式,但不能作为播放体验的监控指标。下面从几个体验指标为例,介绍优酷技术团队在播放体验优化过程中的经验。
Ø 播放成功率 = 1 - 播放出错次数 / 播放次数
Ø 卡顿人数占比 = 卡顿人数 / 在线播放人数
播放错误大多数来源于起播前,因此指标的定义会侧重于衡量一次播放能否成功。播放卡顿来源于播放中,因此指标的定义侧重于衡量流畅播放与网络卡顿的比例。精准的指标定义可以帮助我们快速识别出线上问题,实时的监控能力则确保线上问题在扩大之前就被发现并解决。
明确了指标的定义之后,我们也不能被单个指标带偏。考虑到卡顿次数、卡顿时长都会对用户产生影响,优酷技术团队建立了多种多样的数据指标,比如卡顿播放占比 = 发生过卡顿的播放次数 / 播放总次数、卡顿时长占比 = 卡顿加载总耗时 / 播放总耗时、卡顿用户占比 = 发生过卡顿的用户数 / 播放用户总数,通过多种指标互相约束,给技术优化指明道路。
从埋点设计、上报,到数据处理、监控报警、故障处理,优酷技术团队根据多年积累的经验,总结出了一套行之有效的数据方案。结合灰度操作的聚合分析可以解决大多数问题,比如新版放量后关注新版本的指标,配置灰度后盯着灰度用户的数据反馈,线上指标异动后下钻分析可以快速找到问题的聚集特征,从而快速找出问题原因,给用户提供稳定、可靠的播放体验。
更高、更快、更强
人类对于美好生活的追求是无止境的,播放体验亦然,除了为用户提供起播更快、播放更流畅、更稳定可靠的服务之外,优酷技术团队还在低延迟、帧享等方面不断努力。
低延迟是为了提高互动体验、降低音视频链路上推流端到播放端的延迟,让用户有一种身临其境的观看感受。主要应用场景是商业化直播如演唱会、大型晚会、体育赛事等场景。目前常用的HLS协议的延迟可以长达20秒,而LHLS协议的延迟可以降低到5-10秒,GRTN协议的延迟可以进一步降低到几百毫秒。不同协议的技术成本也各不相同,在实际使用中要根据业务需求,灵活选择。
帧享是优酷与合作伙伴们联手打造的新一代超高清视听体验。帧享拥有60帧/120帧高帧率、4K/8K高分辨率、HDR高动态对比度、宽色域,以及3D环绕声场等超高清技术,是从画面到声音的全面升级。每一档帧享节目都由画质专家甄选而出并精心重制,每一台帧享设备都经历了严格的音画品质认证,在全方位的体验护航下,帧享将为用户呈现最接近导演视角的新一代超高清观影体验,带给用户一场无与伦比的影像之旅。
千变万化的播放能力
随着业务发展,优酷技术团队发现了一个新的挑战:在纷繁复杂、能力不一的海量设备面前,如何准确描述用户设备的播放能力、最大限度提供稳定可靠的服务。优酷的移动APP运行在2100多种品牌、370多种芯片、15300多种手机及平板设备上,优酷OTT运行在4700多种品牌、1100多种芯片、29000多种电视机、盒子等硬件设备上,PC电脑的硬件种类更加多样化。虽然主流设备可以由测试团队检测分析,但这显然不足以支撑技术团队的工作。
为了兼容播放能力不一的用户设备,优酷生产了几百种不同的音视频流,包括但不限于10bit/8bit、265/264、HDR、25帧/60帧/120帧等不同的参数,可以为用户提供多样化的音视频资源。同时,基于线上设备的播放数据,结合设备硬件的媒体描述文件,优酷技术团队将原始数据进行加工,逐步完善为体系化的设备播放能力数据库,并以线上配置的形式触达用户设备。至此,新上线的设备、新上线的流可以灵活的搭配起来,满足用户的播放体验。
除了设备之间的能力差异,设备自身也存在计算资源的竞争。随着视频业务的发展,用户播放期间不是只有音视频,丰富的弹幕内容、多样的互动场景、庞杂的播放页布局等,都会消耗设备的性能。举个例子,一款设备可以流畅的播放4K 25帧的视频,但不能同时渲染每屏100+弹幕,否则会出现弹幕卡顿或者视频丢帧。这就是播放体验的取舍之道,要给用户合理的预期,引导用户使用搭配好的功能组合,在出现无法支撑的情况前,给用户适当的提醒,也是体验的重要一环。
思考与总结
优酷技术团队在体验优化的过程中,还沉淀出了一些关键性的分析方法、解决手段,比如:
- 网络下载中的调度优化值得深思,LocalDNS、HTTPDNS、PublicDNS以及端上调度策略的结合,可以有效容错,提高客户端对网络波动的抵抗能力。
- 视频播放会带来较高的带宽消耗,P2P在技术图谱中扮演了重要角色,如何在多个数据源中择优下载,兼顾成本与体验,也是技术团队不能绕过的问题。
- 预加载的文件大小、播放中的缓冲区管理,都直接影响流量的浪费率。预加载会提高起播速度,但可能导致起播后快速卡顿,实际的业务方案,需要兼顾秒播、卡顿、成本等多个因素。
- 设备播放能力数据库是优酷技术团队的战备核武器,不断积累、维护的实时/历史数据,对于优酷的发展必将大有裨益。
在播放体验之路前行多年,优酷技术团队深知一个道理——用户满意才是正确的方向。下一步,如何给用户提供超出预期的播放体验,也是每一个优酷技术人的工作目标。拥抱新的机遇和挑战,VR、120帧、8K、H.266等技术都将在优酷逐步落地。