YY视频直播体验优化实践
YY音视频算法中心负责人林绪虹在LiveVideoStackCon 2018音视频技术大会的演讲中介绍了YY如何实现全平台差异化直播能力,以及视频画质、流畅度、音视频同步、弱网条件下开播,连麦质量等直播体验核心技术指标的优化策略。LiveVideoStack对演讲内容进行了整理。
文 / 林绪虹
整理 / LiveVideoStack
大家好,我是来自YY音视频算法中心的林绪虹,今天我将从以下两个方面为大家分享YY在视频直播体验领域的多项优化实践。
1. 全平台差异化直播能力
之所以我们努力实现全平台差异化直播能力,最重要的原因是YY作为最早入局国内直播市场的企业,需要不断保持自身核心竞争力与独特属性,推动全行业良性竞争与发展。
YY最早于2011年上线互联网直播服务,当时的直播画面分辨率仅为320x240,视频帧率也仅维持在10~15fps,码率也仅有100~200kbps,这些在如今看来十分简陋的参数,在当时代表着流畅的视频直播体验;2012年,YY上线了分辨率提升至640x480,码率提升至500kbps的游戏直播服务,这也是目前大家熟悉的虎牙直播的雏形;时间来到2015年,移动直播与游戏直播迎来了爆发式增长,YY也迎来了发展的春天,与此同时我们也发现与如雨后春笋般涌现的友商相比,YY在技术上的优势逐渐不再,对现有直播平台与技术进行改造与升级成为了当时摆在YY面前最为艰巨的任务;而作为最早开展直播业务的企业,YY多年发展积累下来的历史包袱要求我们需要在进行技术重构的同时尽可能将对主营业务正常运营的影响降到最低。
2016年我们对整个直播平台做出技术重构,使得全平台逐渐实现对720P 25fps 1.2Mbps高清直播的支持,同时优化音画同步、色彩等关键技术,并继续拓展业务形式以满足消费者日益多样的直播体验需求;在此基础上,到了2017年我们于全平台大范围应用H.265,增加了对画质、连麦与弱网等一系列关乎用户直播体验的关键项目的优化,上述一系列优化也让直播平台具备了4K H.265的直播能力,这也允许我们可以借助4K直播的极清画质更为精彩地为全网用户呈现YY年度盛典与大型晚会;2018年我们继续前行,主观视觉与场景编码优化成为我们重点探索的方向,与此同时除了推进音效、去噪等方面的优化,我们也实现了对Web H.265的良好支持,使得用户能随时随地享受高清视频直播服务所带来的乐趣。
YY直播业务的特点可以从主播端、服务端与观众端三个方面描述。
主播端无法避免的问题是机器差异化程度越来越大,且随着互联网技术的发展,直播业务不仅局限于单纯的音视频交流,而是集合了娱乐、游戏、交友等多重元素,向着日益多样化的方向发展;同时随着直播行业的不断扩展,许多专业场景如现场直播、大型晚会等也需要互联网直播丰富其表现形式,随之而来的便是互联网直播网络的变化多样,移动、户外等特殊直播场景对直播平台的技术能力提出了更高的要求。
随之变化的,服务端的转码服务需要兼顾各端差异,同时高并发下进一步节省带宽提高资源利用效率也至关重要;而作为直播的灵魂,高质量内容的呈现需要服务端具备内容制作与再创作的能力。
观众端包括传统的PC端与最为常用的移动端,而Web端已日益成为我们的发展重点。
根据我们的业务特点,2016年我们对整个平台进行了一次完整的重构,整体设计原则如上图呈现的那样,首先我们针对不同设备与版本定制了不同的开播策略,以实现开播设备的差异化;同时以轻量化原则重新设计了客户端,使整体交互逻辑趋于简单,降低版本迭代门槛,进一步提升兼容性;随后我们继续提升码流类型的扩展性,陆续实现对H.264、H.265、VP9与AV1的良好支持;接下来推进观众端与主播端的解耦合,通过更新流管理系统使平台具备了主播端呈现原画的同时观众端呈现混画的复杂内容制作能力;最后我们优化平台使其更易于进行灰度实验,支持粒度可控与实时生效,从而为新功能与新算法的开发提供便利。
2. 全平台直播质量优化
如何实现上述多项优化?接下来我将着重分享我们的优化实践过程。
2.1 提升视频画质
提升画质始终是我们的一项关注重点,而YY在PC端的画质优势是有目共睹的。为实现高画质我们在服务器端可根据直播条件定制开播参数,与此同时我们也提供了H.264、H.265的定制化开播方案,依据不同网络环境使直播画质尽可能达到最佳;为解决H.265在性能一般机器上的兼容性我们也提供针对低端PC机器N卡、Intel集成显卡的硬件编码解决方案,同时服务器端也具备多种硬编方案,同时基于大量精准严格的测评与调研得出能够最合理平衡主播机器负荷与视频质量的技术策略。
当然,在致力于提升画质的同时我们也需要解决多项关键问题:例如连麦场景下应当为确保多端兼容性而使用H.264还是为性能与画质而使用H.265?在H.264过渡至H.265的过程中需要重点调整哪些参数?除此之外,移动端对H.265硬编硬解的支持越来越成熟,软解能力也可达到实际应用的需求,但移动端的软编能力仍然十分有限;动态码率与弱网策略依旧是我们的关注重点,这两项直接关系到我们视频直播服务的稳定性,而主观视觉与场景编码的结合更是当下热门的发展趋势。
上图展示的便是手机端的主观视觉效果,以30fps的典型游戏直播场景为例,经过测评我们发现当网络为4~6Mbps时采用720P的直播画面可为观众带来优质的主观视觉体验,而当网络为6Mbps以上则应当采用分辨率为1080P的直播画面。上述逻辑的背后还涉及到许多编码参数的选择策略与科学测评体系,归根结底平台输出直播画面的质量应当尽可能接近人的主观视觉感受。我相信现在有许多厂商都在向此方面不断发展,如急速高清、智能编码、窄带高清等技术实际上异曲同工。
而聊天、跳舞、唱歌等更强调互动性的应用场景所面临的网络环境更加复杂,网络抖动等传输问题需要团队密切配合才能得到妥善解决。我们与此相关的经验与建议是首先你应当根据自身业务特点建立一套完整的质量测评体系,此测评体系应是独立客观精确的且有专门的团队负责维护;其次便是选择最合理的编码参数,将编码器的性能压榨到极致。
2.2 音视频同步及流畅度优化
对音视频同步及流畅度的优化似乎并不是全行业关注的重点,但此项问题曾困扰YY很长一段时间。早期YY的直播服务基于低帧率视频建立,当时音画同步并不是一个亟待优化的命题;可随着网络环境的不断发展我们逐渐升级直播画面的清晰度与帧率,音画不同步的问题也逐渐被放大,尤其是在唱歌直播场景里此现象尤其明显。上图展示了国际上对人相关感知能力的研究成果,图中红线与蓝线中间的部分是人无法分辨音画不同步的范围区间,我们应当控制观众端的音画时间差于此范围之内。如何确定造成音画不同步的众多因素?有人会提出使用人耳分辨的方法,其问题不仅在于高昂的成本,更在于人的不稳定性与主观干扰会对测试准确造成不利影响。
为实现对音视频同步与流畅度的优化,我们需要首先明确哪些环节会干扰音画同步:我们发现从一开始主播端的采集就容易出现不同步的问题,尤其对YY这样使用两条流采集音频与视频,很容易造成时间戳的不同;通过网络传输时数据在经过转码服务器的过程中也会被引入错误的时间戳,而在观众端更是会受到与硬件设备相关的播放缓冲系统的能力限制。针对这些问题我们做出上图展示的多项优化:首先我们会向端到端音视频实时系统输入一个同步测试信号,此同步信号会发出一个严格的音视频同步指令,随后PC端采集此指令并用于音频采样与画面内容的同步优化
为此我们专门研发了一套测试用硬件,通过脉冲信号经过硬件时引起LED灯的变化来反映音频与视频的时间戳位置。通过使用此硬件不断排查我们发现,除了主播端的时间采集可能不正确之外,编码器的延时也亟待修正;而音视频播放器存在的缓冲机制同样会消耗时间,音视频渲染也会造成延时误差;需要特别强调的是,开始出现的时间戳误差可能会被传输等环节引入的时间戳修改抵消,使最终输出的音视频文件处于时间戳无误音画同步的状态,这种情况需要我们着重关注并仔细排查每一个可能对时间戳造成影响的环节,否则会将原本正常的时间戳调整至错误状态。对于许多新平台而言一般并不存在的音视频同步问题对于像YY这样最早入局直播行业的平台来说至关重要,也曾在很长一段时间困扰着我们。
2.3 弱网开播优化
随着互联网直播不断在各行各业大放异彩,诸如体育直播、户外直播等特殊直播场景都面临着复杂的网络环境。如果带宽资源较为充足那么根据带宽情况适当调整编码器的帧率或分辨率从而保证帧间隔稳定并提升画质是我们在进行弱网开播优化时遵循的核心思想之一,而帧间隔稳定与画质的提升也依赖硬件的强大。这就需要我们在同等带宽条件下根据帧率与机器负荷情况将编码效率提升至最大水平。实现带宽预测值、分辨率与帧率、编码复杂度的三方整体均衡。
弱网开播优化的具体策略主要有以下五点:首先我们应当设计分级的编码策略,其次应当优化带宽的探测技术,这也是弱网开播优化的前提;接下来,策略与现实相分离也是十分关键的一点,策略需要允许开发者随时随地调整以适应复杂的直播场景;各弱网区间的平滑处理与过渡也同样重要,编码器一般很容易引入一些卡顿在视频当中,如何在直播过程中妥善处理这些细节成为考验开发者的关键性命题,需要细致严谨的逻辑梳理(为实现平滑处理与过渡,我们的方案并非多次重置摄像头,而是得出丢帧逻辑或使用分辨率差值补偿等处理方法使其尽可能地平滑过渡;各弱网区间的平滑处理与过渡也需要我们重点关注);通过离线模拟测评获取最优配置也能够帮助我们进一步优化弱网开播性能。
上图右下角的表格准确显示了我们一些相关实测研究的数据,对比有弱网配置与无弱网配置我们发现其离散率差异非常大;通过下面两张图展示的不同平台弱网开播主观效果测试我们可以发现,无弱网配置的画面明显出现更多马赛克,画面不清晰,而有弱网配置的在流畅性画面清晰度等方面明显优于无弱网配置。
2.4 连麦延时优化
连麦延时优化已经成为了老生常谈的话题。通过ITU-G.114实验延时体验所展示的数据我们可以发现,用户主观上可以接受小于150毫秒的延时,而小于200毫秒也几乎不会影响通话质量,400毫秒可以说是用户对于延时的最大容忍红线。我们在初期探索连卖延时优化时提出的要求是达到VOIP的延时标准,这对与VOIP有着不同业务逻辑与技术侧重点的直播技术而言不得不说是一件十分困难的事情。我们的目标是将延时控制在200毫秒以内,其关键点首先在于优化双端缓冲策略并选取最优采集、编解码、渲染方案;其次应当降低每一环节的处理时间,同时平衡流畅直播与低延迟的平衡。经过双端优化,iOS与Android双平台都可实现200毫秒的低延迟,而iOS的平均延迟更是达到了190毫秒,媲美专用VOIP通讯工具。