找回密码
 立即注册
LiveVideoStack 首页 资讯 查看内容
  • QQ空间
  • 回复
  • 收藏

Hulu 视频QoS优化策略(1)

2018-6-26 08:01

QoS直接关系到用户体验,如何提升QoS就成为视频平台技术实力的体现。本文来自Hulu全球高级研发经理、视频编解码与传输领域资深专家傅徳良在LiveVideoStackCon 2017上的分享。尽管Hulu提供服务的网络环境与国内大相径庭,但其相关QoS保障策略依然值得借鉴。


文 / 傅徳良

整理 / LiveVideoStack


概述:


大家好,我是Hulu北京的傅徳良,主要负责音视频编解码和视频传输相关优化的团队。非常高兴在这里给大家分享一些Hulu 在流媒体服务质量和用户体验优化方面的经验。由于Hulu是一家美国公司,所以使用的技术路线跟国内常见的技术路线并不完全相同,从技术上讲,不存在谁更先进或者优秀的说法。不过既然是不同的技术路线,那么Hulu也就可能会做一些国内厂商目前还没有太多投入去做的一些事情。今天,主要跟大家分享一下Hulu在QoS优化中的思路、在实践中遇到的问题以及解决方案。首先简单介绍一下Hulu的视频系统以及为什么要做QoS优化?其次会分享对QoS优化和用户体验之间关系的基本理解,最后结合Hulu的技术实践介绍在客户端通过自适应码率调解的方法优化QoS的基本思路和原理,以及构建的一整套QoS优化框架。


一:Hulu视频系统简介



Hulu是一家由美国最大的几家传统媒体行业巨头出资创建的在线视频流媒体服务公司,其创建目标是把更多的优选内容与全美国用户更好地连接在一起。Hulu的终端是跨越全平台的,涵盖网页端、移动端还有电视端。跟国内业态有所不同的是,除了浏览器,Android和iOS外,在美国还需要支持很多在国内看来比较神奇的一些设备,例如以Roku,FireTV和AppleTV为代表的电视盒子和以PS(Sony PlayStation系列),XBox为代表的游戏主机。我们需要在所有的这些平台上面都支持我们的Streaming服务,如大家所知,这些平台相对来讲都是比较异构的,并不像国内的设备,基本都是基于安卓平台进行开发的。因此为了实现对北美市场上所有平台的支持,给技术层面带来了不小的挑战,尤其是对于QoS调优和用户体验调优一致性上的挑战更加艰巨。


Hulu提供的观看内容是比较丰富的,包括当季的美剧、优选电影、自制剧、体育节目、儿童节目等。2017年,Hulu的直播业务上线,美国数百个Broadcast电视台可以在Hulu的应用和网站上进行播放,而且没有UGC(User Generated Content),都是从较大的渠道获取的有版权的视频内容。值得一提的是,在2017年的艾美奖评选中,Hulu的自制剧也大获成功,共斩获10项大奖,堪称是本届艾美奖评选的最大赢家,《使女的故事》(The Handmaids Tale)还获得了Outstanding Drama Series(最佳剧集奖),这在全世界的在线流媒体行业中,都是一件具有里程碑意义的事情。可见,Hulu是有非常多优选内容的,那么如何把这些优选内容以最好的体验呈现给用户,也就成为了工作中的关键。


Hulu商业模式



值得一提的是,Hulu的商业模式也比较特别,采用注册用户+广告的模式。Hulu是由几家传统媒体公司创建的,商业模式跟整个美国电视行业的模式相似,如果你想要观看Hulu,首先需要付费,注册成为我们的用户。在此基础上,可以选择不同的,有广告或无广告的套餐。这种注册用户+广告的模式使得Hulu在整个商业竞争中处在一个十分特殊的位置,也使得技术层面上需要做出相应的改变。在这种商业模式下,用户的单位价值是比较高的,一方面,用户缴纳了注册费。另一方面,用户还观看了广告,这些广告也带来了很多收入。 在此基础上,如何使更多的用户观看Hulu的视频,观看更多的视频,对Hulu来讲特别重要。当然,这个逻辑基本上对于所有的在线流媒体服务公司也都是成立的。由于内容都是花费大价值买来的,用户的单位价值是较高的,因此Hulu有非常强烈的意愿把用户体验做得更好。更好的用户体验可以带来更多的用户,更大的视频播放量,也就是更多的用户订阅数和更高的广告营收。所以说,用户体验是极其重要的,那么通过哪些技术和方法能够优化用户体验呢?我们发现优化流媒体服务质量的方法是非常有效的一种手段。


二、流媒体服务质量和用户体验


QoS



这一节主要介绍Hulu对流媒体服务质量的认知,它和用户体验之间有着怎样的联系。流媒体服务质量常被称为QoS(Quality of Service),在传输领域,这其实是一个老词。对于流媒体服务来讲,QoS到底意味着什么?在我们的理解中,QoS其实是衡量音视频播放质量的一系列客观指标,可以划分为三个重要维度:


第一个重要维度是连续性,也就是用户在播放音视频时的连贯性。其中最常见的指标就是Rebuffer(卡顿),Failure rate(播放的失败率)。显而易见,这些事件的发生意味着播放更加的不连续。此外,还有Frame drop(掉帧)等指标。


第二个重要维度是响应速度,这个维度表征了用户在进行交互行为时,我们的Player以及整个应用对于用户的交互行为能否有及时的反馈,常见的一些指标包括Loading time(加载速度),Seek(视频跳转时)带来的延迟,以及广告和内容切换时的延迟等。


最后一个重要维度就是画面质量,常用的指标有码率,分辨率。一般来讲,在同样的Encoding参数下,我们认为码率越高,分辨率越高,用户看到的画面质量也更高。


QoE



与QoS相对应的是概念是QoE(Quality of Experience)。QoE与QoS的不同之处在于QoE是一系列衡量用户对流媒体服务满意程度的一种主观的体现,虽然QoE也是由客观指标构成,但实际上是用户主观满意度的一种衡量。QoE的常见指标包括了观看时长、观看视频数量、观看完成度、用户的退订率等。通过比较,可以发现QoE与Business KPI更加的贴近,是我们最终想要优化的目标。但是由于QoE衡量用户的主观感受,因此会受到很多非技术因素的干扰。如果直接把QoE指标运用到实践中进行优化,效率比较低,容易出现一些问题。Hulu内部也曾对QoE的优化进行过一些尝试,比如想要优化视频的观看完成度,并在技术上做了很多魔改的东西。但是上线AB测试后,发现仅仅是略微有所变化,和周末上了一个新剧带来的抖动相比,基本可以忽略。这样的一些问题就会使得相关的技术优化变得难以实现。另一方面来看,QoS指标要好很多,因为QoS指标客观的反映了我们的服务质量,如优化Rebuffer的比例,从5%降到3%,相对来说这是比较客观、稳定且容易实现的一些指标。从这些问题中,我们可以发现:QoE是我们希望优化的目标,QoS是比较可行的手段。那么能否把QoS和QoE连接起来,通过优化QoS来实现优化QoE?如果这个方式可行,就可以把工作重心放在对QoS的优化上。


流媒体服务与用户体验


幸运的是,这个问题的答案非常乐观的,学界的研究和业界的实践充分证实了流媒体的服务质量是可以显著影响用户体验的。



上图简单罗列了几个数据


(1)在播放卡顿或是加载时间太长的时候,66%的用户会直接退出当前的播放。

(2)17%的用户会因为服务质量的问题退订流媒体服务。

(3)严重卡顿会使用户的满意程度从接近满分跌到几乎为0。


这些研究和以及Hulu的技术实践都充分论证了流媒体的服务质量QoS能显著的影响QoE,因此可以通过优化QoS去达到优化QoE的目的。



这张图是美国一家相关公司对美国市场上流媒体服务的退订原因进行的调差问卷数据统计。我们能够看到Technically Problems(即与OoS相关的因素),占到了17%的比重。值得一提的是, 服务太贵,视频内容不够丰富, 广告太多这三个指标,虽然是比Technical Problem更为重要,但是这些指标是相对难以优化的。如果减少广告投放,那么营收必然会下降。如果购买更多的内容,肯定会带来更多的支出。相比于QoS来讲,在这些维度上想要做出优化所付出的代价会更大,并且不能单纯的通过技术途径来有效的解决。从这里我们能够看出:QoS优化是有效率的,也是相对经济的一种方法。


三、流媒体服务质量优化



前面主要介绍了为什么QoS优化能做,有必要去做 , 接下来从三个方面介绍如何进行QoS优化。


首先介绍如何根据码率自适应的算法进行流媒体服务质量的优化,然后根据Hulu的技术实践,介绍在流媒体服务质量优化中遇到的一些挑战,以及我们自己设计的QoS优化的一套体系。


码率自适应算法



码率自适应算法在国际上的应用已经比较广泛了,不过出于各种各样的原因,在国内的应用的还不是很广泛,所以我就在这里多赘述几句,介绍它的一些原理,希望能让大家更好地认识这项技术,也希望大家能更多地去运用这一项技术。


码率自适应算法是随着自适应视频传输这类协议的兴起而出现的,我们常把它称为ABR(Adaptive BitRate Streaming)或者MBR(Multiple BitRate Streaming)。这类算法的基本思路是在客户端根据用户的网络情况实时对用户当前播放的码率进行切换,这一点跟自适应视频传输协议是分不开的。在常见的自适应视频传输协议下,如HLS和Dash,音视频都被切成了时域上较短的一个个片段,可能是2秒或是5秒,这样的一种切分使得在客户端灵活地对当前的码率进行切换,变得可能和高效,也就可以做到在Player端无缝地对码率进行切换,这样的自适应视频传输协议使得码率自适应算法变得可行而且有效率。Hulu既使用了HLS(因为它是苹果支持的一套协议),同时也使用了Dash,实际上在全球整个业界范围内,Hulu可以说是最早大规模使用标准的Dash的协议来做流媒体服务的公司之一,因此也在这一领域积攒了大量经验。



下面介绍一下为什么码率自适应算法是有必要的,假设说我们的用户的带宽分布如图所示(单峰样式)。


那么如果需要定一个固定码率给用户进行Streaming,该怎么定呢?不论怎么定,其实都不会优。现在图上画的已经还算OK了,我的第一思路是在用户最多的这个点确定固定码率,但是会立刻遇到问题,有一半的用户好像都有卡顿的风险,那怎么办?保守一点,把固定码率往低调一点,就长成现在这个样子,变成在平均值稍微低一点的地方切一刀。但是我们可以看到,这仍会使一些用户存在卡顿的风险,并且另外一部分用户的带宽也没有被充分地利用,其实它的码率是可以更高的。所以说固定码率不能够达到最优化用户体验的一个目的,码率自适应的算法是必要的。其实我们仔细看这张图,思考一下,会发现这张图将问题简化了许多。首先,用户的带宽分布并不容易得到,得到了也可能不是单峰的,也可能是多峰的,这就使固定码率的选择更加艰难。另一方面,用户的带宽会随时域变化,每年的不同时候:过节和不过节会不一样、很多Show上映的时候和没有Show上映的时候会不一样、每天的不同时段会不一样、白天的工作时间和晚上的Peak hour(高峰时间)肯定是不一样的。在每一个用户播放的同一个Session中时带宽也会变化,因为网络的情况是非常复杂的,可能不知道在什么地方就突然发生了一种竞争或者拥塞。所以说这样的一种时域上的抖动,更是固定码率的方法不能够很好地去解决的,也就说明了码率自适应算法的必要性。常见的码率自适应算法有基于带宽估计的方法,基于缓冲大小的方法和混合类的算法。



基于带宽估计的码率自适应算法



基于带宽估计的码率自适应算法比较直观,通过实时估计用户当前可用带宽大小,根据带宽选取一个比较合适的码率。如图,黑色实线是用户的带宽,我们假设固定带宽是1000kbps,在两个阴影的区域,用户就会遇到卡顿,因为它当时的带宽低于Streaming的码率。基于带宽估计的码率自适应调解算法会灵活的估计,估计当前的带宽的位置相应地进行选择。


来自: LiveVideoStack
文章点评