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

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

前言

随着互联网的发展,用户对于观看体验的需求和预期也在不断提高。千兆光纤入网的用户无法接受频繁的网络卡顿,购买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等技术都将在优酷逐步落地。

相关文章
|
8月前
|
存储 API 开发工具
直播源码的神奇之处,直播回放功能
直播源码的功能有很多,之前的文章也列举了很多,那直播SDK和回放功能连在一起会将如何实现直播回放呢,今天我们来聊一聊这个技术点,感兴趣的朋友们可以关注下。
直播源码的神奇之处,直播回放功能
|
8月前
|
开发者
盘点一对一直播源码的那些小功能
在之前的文章中我们聊过很多次一对一直播源码的开发和前景,安全可靠,功能种类丰富有趣的直播播源码能够帮助开发者减少很多开发成本,那么直播这么火,功能你又了解多少呢?今天我们就来聊下一对一直播源码的功能。
|
9月前
|
定位技术 CDN
开源直播源码平台处理卡顿问题技巧方案
开源直播源码加速器功能就成功实现了,加速器功能有助于提高直播平台的竞争力,并满足用户对高质量、稳定和流畅的直播体验的需求,这也让加速器功能成为开源直播源码平台的重要功能之一。
开源直播源码平台处理卡顿问题技巧方案
|
9月前
|
编解码 JSON 数据格式
实现在线直播源码高质量直播体验重要功能
在线直播源码平台中会出现各种各样问题,而应对这些问题,在线直播源码平台又开发出不同的功能,云端混流转码就是其中重要功能之一,它为平台带来了很大的优势。
直播平台源码功能分享:直播回放功能的实现
这个直播平台源码功能可以将主播的直播内容录制下来保存在直播平台云端中,用户进入到主播首页就可以看到这个直播平台源码功能,点击后就可以播放主播以往储存的直播内容。
直播平台源码功能分享:直播回放功能的实现
|
开发工具
如何实现一套可切换的声网+阿里的直播引擎
小盒的直播业务一开始是打算用两套引擎切换使用的,所以需要封装一下。而且因为声网和阿里的直播sdk的官方文档都不是很全面,甚至有的还有错误(可能是文档没及时更新)导致无法正常运行,接入时问题多多,所以同时记录一下的接入过程中的问题及处理。
212 0
|
缓存 前端开发 API
优酷播放体验优化实战(七)--优酷高性能弹幕渲染技术大揭秘
优酷高性能弹幕渲染引擎的目标,是在全平台实现对弹幕内容的高效渲染。渲染的内容包括文本、emoji、普通图片、apng动图和3D mesh等元素,并且支持节奏弹幕、燃弹幕、弹幕穿人、流光弹幕等各种特效玩法。下面,将对优酷高性能弹幕渲染引擎所涉及的技术做一次大揭秘。
1207 0
优酷播放体验优化实战(七)--优酷高性能弹幕渲染技术大揭秘
|
Web App开发 编解码 JavaScript
优酷播放体验优化实战(六)--Electron跨平台进阶:Native播放器融合
随着桌面应用开发技术的发展,程序的跨平台性和代码的维护成本显得尤为重要,目前优酷Windows平台采用QT作为UI的主要开发方案,DuiLib辅助一些扩展插件开发,Mac平台采用原生的Native UI开发,由于历史原因并没有将Windows端的QT框架迁移到Mac端,两端分别维护耗费不同人力。
1763 0
优酷播放体验优化实战(六)--Electron跨平台进阶:Native播放器融合
|
编解码 缓存 边缘计算
优酷播放体验优化实战(三)--低延时直播
5G到来后用户的网络速度逐渐提高,同时用户对直播延迟等播放体验的要求也越来越高,在此背景下,优酷技术团队结合业内主流的直播技术架构提出了两种基于HLS(HTTP Live Streaming)的低延迟直播方案(Low Latency HLS),并且正式应用到了优酷直播业务。
370 0
优酷播放体验优化实战(三)--低延时直播
|
编解码 安全 算法
淘系的音视频编辑方案:非线性编辑引擎
在经历移动设备的更新换代,网络速度的持续提升和费用降低,手机用户已经经历了从文字阅读到图片浏览再到视频观看的内容消费的变革后,淘系音视频技术如何灵活根据需求做出技术创新与变革。
淘系的音视频编辑方案:非线性编辑引擎