优酷播放体验优化实战(一)--实战概览

简介: 《优酷播放体验优化实战》系列文章持续放送中。本文将从不同类型播放问题出发,阐述优酷技术团队在播放体验优化实战中的经验

前言

随着互联网的发展,用户对于观看体验的需求和预期也在不断提高。千兆光纤入网的用户无法接受频繁的网络卡顿,购买4K电视的用户乐于观看更高画质的视频。播放体验优化,就是持续地去发现用户观影过程中不好的体验或感受,并通过技术手段将这些问题解决。

image.png

在视频播放场景,播放时常遇到的问题有以下几种:起播缓慢,用户在观看前需要等待很长时间;播放出错,由于网络或软件原因导致用户无法正常观影;网络卡顿,用户被视频加载打断观影,网络缓冲后才能继续;音画不同步,用户直观的感受是台词口型对不上,视频、音频进度不一致。

本文将从这几类问题出发,阐述优酷技术团队在播放体验优化实战中的经验。


播放体验优化

image.png

首先,要让视频更快的起播,减少用户的等待时间。随着网络速度的提升,用户对缓冲的忍耐度逐年下降,对起播耗时的要求已经从之前的几秒逐步下降到了一秒,在短视频、直播等场景甚至开始对标200毫秒、500毫秒起播。影响起播速度的原因包括视频码率较高、用户网络较差、播放器初始化不及时等。

秒播率是衡量用户起播耗时的核心指标,其中主要的优化手段包括提前下发播放地址、视频文件的预加载、减少插件加载、优先渲染播放器等,另外,新协议比如GRTN、LHLS在秒播方面也有特定的收益,暂不赘述。

其次,视频播放时,我们要减少观看过程中暂停播放的次数。网络卡顿产生的直接原因是下载速度无法满足视频消费的速度,深层次的原因包括用户网络变差、音视频文件域名解析异常、CDN调度不均导致下载速度慢、文件回源导致额外耗时等。常用的解决方案有调度优化、多数据源择优下载、缓冲区管理优化等。

再次,声音和画面同步播放是用户的基本诉求,音画不同步主要是由于设备硬件或软件原因,解码/渲染的速度无法满足视频消费,导致播放出现卡帧/丢帧/音画不同步等问题。常见于高分辨率、高码率、高帧率的视频播放,以及倍速、满屏弹幕、动画交互等消耗设备性能的场景。技术上的解决方案:内核减少缓存次数从而提高传输效率、提高数据处理实时性从而减少内存占用、分别配置音视频延迟从而兼容蓝牙设备、渲染前丢帧等;业务上的解决方案包括合理分配性能资源、适当减少弹幕、动画的UI渲染强度等。

最后,稳定大于一切,时好时坏的体验会极大的消耗用户的耐心,比如用户点击播放却看到报错页面,或者看不到画面只能听到声音,甚至出现花屏、绿屏。影响稳定的原因主要有以下几种:客户端功能异常、服务配置变更、外部网络问题等。软件需要迭代、外部环境时刻都在变化,我们无法彻底规避这些问题,因此如何更快的发现、解决问题,就是优酷技术团队的新挑战。


播放体验的稳定、可靠

image.png

及时有效的监控报警是快速发现线上问题的不二之选。用户在遇到播放问题的时候,大部分用户会放弃尝试而流失,少部分用户会联系客服反馈问题。不及时、量级低、主观性强等特点,用户投诉率只能够作为稳定性间接的衡量方式,但不能作为播放体验的监控指标。下面从几个体验指标为例,介绍优酷技术团队在播放体验优化过程中的经验。

Ø  播放成功率 = 1 - 播放出错次数 / 播放次数

Ø  卡顿人数占比 = 卡顿人数 / 在线播放人数

播放错误大多数来源于起播前,因此指标的定义会侧重于衡量一次播放能否成功。播放卡顿来源于播放中,因此指标的定义侧重于衡量流畅播放与网络卡顿的比例。精准的指标定义可以帮助我们快速识别出线上问题,实时的监控能力则确保线上问题在扩大之前就被发现并解决。

明确了指标的定义之后,我们也不能被单个指标带偏。考虑到卡顿次数、卡顿时长都会对用户产生影响,优酷技术团队建立了多种多样的数据指标,比如卡顿播放占比 = 发生过卡顿的播放次数 / 播放总次数、卡顿时长占比 = 卡顿加载总耗时 / 播放总耗时、卡顿用户占比 = 发生过卡顿的用户数 / 播放用户总数,通过多种指标互相约束,给技术优化指明道路。

从埋点设计、上报,到数据处理、监控报警、故障处理,优酷技术团队根据多年积累的经验,总结出了一套行之有效的数据方案。结合灰度操作的聚合分析可以解决大多数问题,比如新版放量后关注新版本的指标,配置灰度后盯着灰度用户的数据反馈,线上指标异动后下钻分析可以快速找到问题的聚集特征,从而快速找出问题原因,给用户提供稳定、可靠的播放体验。


更高、更快、更强

image.png

人类对于美好生活的追求是无止境的,播放体验亦然,除了为用户提供起播更快、播放更流畅、更稳定可靠的服务之外,优酷技术团队还在低延迟、帧享等方面不断努力。

低延迟是为了提高互动体验、降低音视频链路上推流端到播放端的延迟,让用户有一种身临其境的观看感受。主要应用场景是商业化直播如演唱会、大型晚会、体育赛事等场景。目前常用的HLS协议的延迟可以长达20秒,而LHLS协议的延迟可以降低到5-10秒,GRTN协议的延迟可以进一步降低到几百毫秒。不同协议的技术成本也各不相同,在实际使用中要根据业务需求,灵活选择。

帧享是优酷与合作伙伴们联手打造的新一代超高清视听体验。帧享拥有60帧/120帧高帧率、4K/8K高分辨率、HDR高动态对比度、宽色域,以及3D环绕声场等超高清技术,是从画面到声音的全面升级。每一档帧享节目都由画质专家甄选而出并精心重制,每一台帧享设备都经历了严格的音画品质认证,在全方位的体验护航下,帧享将为用户呈现最接近导演视角的新一代超高清观影体验,带给用户一场无与伦比的影像之旅。


千变万化的播放能力

image.png

随着业务发展,优酷技术团队发现了一个新的挑战:在纷繁复杂、能力不一的海量设备面前,如何准确描述用户设备的播放能力、最大限度提供稳定可靠的服务。优酷的移动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等技术都将在优酷逐步落地。

相关文章
|
6月前
|
存储 API
通义点金案例分享:表格修订
本文介绍了在通义点金平台搭建知识库时遇到的表格解析问题及解决方案。问题表现为表格数据被独立存储为chunk,缺少前后说明文字和表名信息,导致大模型回答错乱。解决方法是通过API将前后chunk内容合并到table类型的chunk中,补充表名和说明信息。具体步骤包括获取文档chunk列表、按顺序排序、修订table类型chunk并更新。示例展示了修订前后效果,同时说明了点金平台近期更新对部分问题的优化情况。
289 2
|
9月前
|
存储
鸿蒙开发:openCustomDialog关闭指定Dialog
以上呢就是两种隐藏指定的Dialog方式,比较的简单,具体的场景,常见于,页面多个弹出Dialog,但是需要隐藏指定的Dialog场景,当然了,也适用于常见的普通场景。
150 14
|
12月前
|
前端开发 开发者
|
数据采集 算法 大数据
大数据中缺失值处理填充法
【10月更文挑战第21天】
1295 2
|
前端开发 Java Spring
【Spring】“请求“ 之后端传参重命名,传递数组、集合,@PathVariable,@RequestPart
【Spring】“请求“ 之后端传参重命名,传递数组、集合,@PathVariable,@RequestPart
336 2
|
人工智能 算法 新能源
AI在能源管理中的应用:提升能源效率与可持续性
【9月更文挑战第24天】AI技术在能源管理中的应用,正以其独特的优势与潜力,引领着能源行业向更加智能化、高效化和可持续化的方向发展。随着技术的不断进步、政策的持续支持以及应用场景的不断拓展,AI技术将在能源管理中发挥更加重要的作用,为实现全球能源转型与可持续发展贡献更大力量。我们有理由相信,在AI技术的助力下,未来的能源管理将更加高效、智能和可持续。
1365 6
|
人工智能 搜索推荐 算法
掌握未来:探索人工智能在日常生活的实际应用
随着技术的迅猛发展,人工智能(AI)已不再是遥不可及的概念,而是深入到我们生活的各个层面。本文将探讨AI技术如何影响我们的工作、娱乐和社交活动,同时分析其带来的挑战和机遇。我们将通过具体案例,揭示AI在日常生活中的应用现状及其对未来生活方式的潜在改变。
569 29
|
人工智能 Python
人工智能导论——谓词公式化为子句集详细步骤
在谓词逻辑中,有下述定义: 原子(atom)谓词公式是一个不能再分解的命题。 原子谓词公式及其否定,统称为文字(literal)。$P$称为正文字,$\neg P$称为负文字。$P$与$\neg P$为互补文字。 <font color="ddd0000">任何文字的析取式称为子句(clause)。任何文字本身也是子句。</font> 由子句构成的集合称为子句集。 不包含任何文字的子句称为空子句,表示为NIL。 <font color="ddd0000">由于空子句不含有文字,它不能被任何解释满足,所以,空子句是永假的、不可满足的。</font> 在谓词逻辑中,任何一个谓词公式都可以通过应用等
2320 1
人工智能导论——谓词公式化为子句集详细步骤
|
XML 安全 网络协议
Xxe外部实体注入(XML External Entity Injection)
Xxe外部实体注入(XML External Entity Injection)
|
JavaScript Java 测试技术
基于SpringBoot+Vue的视频网站系统的的设计与实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的视频网站系统的的设计与实现(源码+lw+部署文档+讲解等)
309 0