飞道的博客

如何使用下一代编码技术提升流媒体体验

301人阅读  评论(0)

Photo by Elina Krima from Pexels

本文来自Bitmovin总裁及联合创始人Stefan Lederer LiveVideoStackCon2019北京大会上的分享。Stefan介绍了下一代编解码器和编码技术的实施,以及如何让观众有更好的流媒体和视频体验。另外,还进一步解释HEVC、VP9和AV1如何在不同的设备上运作。如果将这些编解码器结合,可以降低比特率获取更大的存储空间,把CDN成本降低30%。

文 / Stefan Lederer

整理 / LiveVideoStack

读者们好,今天我将使用本公司Bitmovin与Hulu合作的案例,探讨Multi-Codec Streaming, 3-pass和Per-Title encoding技术。

1. Bitmovin

首先,简单介绍一下Bitmovin,Bitmovin 是一家提供编码产品、播放器产品、分析产品的公司。我们专注于开发商以及API, 所以工具都聚焦在API开发人员的各个需求。

这对于我们以及客户是一个很重要的话题,因为我们的客户是根据特定用例配置我们的软件的开发者,所以每个用例都是独特的。

1.1 Hulu 日本社区

 

说到新的编码技术和编解码器,我们的研究数据和结果是以Hulu 日本社区的一个实际例子为基础。Hulu Japan是日本广泛使用的视频流平台。

Hulu Japan使用了一些新推出的编码技术,使它们能够更高效地在市场上提供更好的质量的内容。同时,通过这些新的编码方式和新的编码技术,可以降低CDN的成本。

Hulu Japan为客户提供各种设备平台接入支持

 

我们能想到的,比如电脑、平板电脑、智能手机、游戏机和电视都包括在内。

这从编码技术的选择的角度来看,加上实际编解码器的循环选择挺有意思。这些设备都支持H.264, 像浏览器一样支持VP9,我们知道大多数移动设备都支持VP9和HEVC。

接下来,你可以看到主要支持HEVC的电视机,还有一些支持VP9的Android的电视机。从配置的角度来看,每个设备都将面临挑战。

1.2 设备方面的挑战

比起其他的VOD流媒体服务,存储成本和CDN成本依然是最大的成本组成。尽管这样,理想的目标还是保持高质量、同时降低成本。大多数的流媒体服务都希望能够受市场驱动,因此大多数流媒体服务使用singleencoding比特率阶梯。

 

目前,一个single encoding比特率阶梯可能不是各媒体流服务的最佳配合。我们所播放很多不同类型的内容,比如动画,动作片等等。单个的比特率阶梯(比如one ABR比特率阶梯)不能支持所有流服务中的内容。Per-Title Approach想达到的是在于平台的per-asset和per-content的基础上提供更好的质量。

在每个市场,因为多个流媒体服务的竞争对手太多,能输出高质量的内容分布是非常重要的。在日本,我们有Hulu,Netflix及一系列的服务平台。如果能够用最新的技术区分质量和用户体验,那当然会助于产品改进。

他们也是想要使用市场上最新的技术栈,但是我们应该从设备支持的角度评估这方面的可能性。比如说,我们正在研究AV1和VVC,AV1已是成品标准而VVC还不是。大多数设备都支持AV1,但是它可以实施落地吗?

我们第一批的客户为正在对protected content(受保护的内容)部署AV1。对于Hulu Japan的运营,AV1最大的障碍之一还是因为Chrome和Firefox所使用的H.265/HEVC并不支持protected content。

1.3 Hulu Japan

我们探讨过在adaptive bitrate ladder (自适应比特率阶梯)中使用Per-Title Encoding技术。另外,我们也使用multiplecodecs (多个编解码器)。这些技术的结合让我们每月节省大约30%的 CDN总成本。

我们使用的新技术称为3-pass 编码,帮助提高编码效率。基本上,我们优化现有的编解码器,无论是H.264、HEVC还是VP9,最后决定理想比特率的阶梯。

 

基于per-asset,我们先把基本值的ideal bitrate configuration(理想比特率配置)定下来,过后才选择multi-codec(多编解码器):在H.264、HEVC、VP9中做出选择。

2. 3-pass 编码

3-pass 编码增加多一个pass 以便做出整个基本值的最初分析。第二,我们将分析每一阶段段的动作位数。在第三步骤,我们对会每一块chunk separate fridge进行编码,并采用分布式速率控制,并做出适当的改变。这方式与multi-passencoding和multi-weight control有很大差异。这也是我们从零开始构建的,称之为3-pass 编码。

 

 

H.264是个高效的编解码器,在市场上已应用15年,但是我们觉得可以改进的地方是weight-control。从图中,我们看到了对速率控制和3-Pass编码步骤的改进。我们可以通过不同的分辨率和比特率阶梯平均将文件大小减少大概13%。

最终的质量影响极小,你可以节省大约13%的输出文件大小,但是质量差距不大。例如,我们只损失0.05 Db PSNR,它对质量方面的影响不大,但对文件方面的影响更大。它确实在于较低的比特率输出当下,挤出相同质量的视频。

3. Per-Title Encoding

现在我们已经对编码进行了优化。之后我们再仔细看看比特率阶梯,决定哪个ABR比特率配置最适合这个特定用例。

我们都知道每个内容都不一样,如果ABR-HLS内置有一个通用的比特率阶梯,那可能会消耗带宽,以非常高的比特率或不必要的质量进行编码,我们在产生噪音。第二,我们可能在过低的比特率进行编码后引入了encoding artifacts(编码伪影)。

任何低于35 PSNR的产品都被认为是质量低劣的。任何高于45 PSNR的标准,质量可能不会有太大的下降,一般观众还能接受的。

例如,一般的比特率阶梯有许多不同的表示,其中许多表示低于35db,而大部分都高于45db。我们需要考虑其理想配置的分辨率和比特率,还有使用的比特率的数量。

这个standard profile bitrate ladder标准配置文件比特率阶梯(橙色线)可以缩减为Per-title 比特率阶梯(蓝色线),以较小的比特率在35和45 dB PSNR之间提供理想配置。

这是我们从Hulu Japan中所使用的动画内容以及漫画内容,比较极端的一个例子。这种方式显然在浪费带宽、编码算力,而我们可以将特定基本值减少到较小的表示形式。

Adaptive bitrate ladder到底有什么好处?比特率会降低;如果我们只使用对于内容有意义的比特率,我们可以保持CDN Egress 的输出。因为我们没必要对每个representation进行编码,所以会减少存储空间。

一旦有固定的质量输出,整个储存库的质量会提升。如果没有过高质量或低质量的视频,总体用户体验将变得更加顺畅。

值得注意的是,每个内容都有不同的比特率阶梯配置。上图可见,从九种不同的比特率和分辨率选择,减少到六种。

如果阶梯之间的质量差太小,最好把它删除掉。例如,我们分析了1080p视频需要达到6500 Kbps的比特率。基本上,当你计算出所有比特率的平均值时,我们从每秒2350kbps变成了平均1362.25kbps。

我们发现比特率阶梯的平均比特率降低了,因为我们平均只需要减少40%的比特率。我们创建的所有编码存储都减少了54%,由于该内容所需的存储空间更少,从而提高了用户的体验质量。1080p的最低比特率是4500kbps。使用自适应比特率阶梯,我们估计可以以2100 Kbps的速率转换1080p质量的视频。

Generic 比特率阶梯(橙色线)

Per-Title 比特率阶梯(蓝线)

如果我们根据使用的比特率和产生的质量来比较bitrate ladder,我们可以看到橙色线的GenericBitrate Ladder (通用比特率阶梯)。Per-Title的比特率阶梯(蓝线)始终产生的质量很高,每秒不超过3000 Kbps。这反过来又为观众带来了更高的平均质量。

这是每月成本汇总的原始设置。Per-Title在编码上投入了大约相同的资金,虽然额外的成本的还花在编解码器和3-Pass编码。但我们的CDN成本的确下降了不少。每个月,Hulu可以利用这个技术降低30%的总成本。

4. multiplecodecs

在中国,大约29%的移动市场份额被iOS占据,其中大部分是iOS 11或更高版本,也可以在这些设备上支持HEVC。中国78.2%的移动市场是Android,所以VP9支持Android 4.4KitKat或更高版本。

 

理论上,77.3%的移动设备可以使用VP9。虽然很多安卓设备都不能正确的支持VP9,但其中许多设备都是低功耗的。依据基础的理论,可以支持VP9的设备的最大数量是77.3%。

一般上,你可以为97%的移动设备提供比HEVC更高效的编解码器,而不是H.264。我们都知道HEVC的效率比H.264高50%,也知道VP9的效率不差,效率的比数比H.264高出40%。

这些移动设备只是一个例子,只想展示其使用比H.264更先进的编解码器以及无限的可能性。

以Hulu Japan为例,我们使用标准比特率阶梯并按标题制作Per-Title。这已经减少了56%的平均比特率。当我们使用H.264和VP9时,这个配置降低了大约39%平均比特率

因此,以1080p视频为例,我们只需要800kbps就可以开始使用最低的full HD表示。虽然这是为VP9或HEVC上支持的设备保留的,但是它是迈向下一个优化级别的正确轨道。

如果你使用创建的static bitrateladder,并且年复一年地对每项资产使用,你可能就在浪费比特率和金钱。例如,1080p需要4500 Kbps。

我们可以节省空间,选择800 Kbps的第一个HD表示。通过使用更高级的编解码器,我们可以将编码的文件大小从1.5gb减少到380mb。

我们之前看到的标准比特率阶梯的橙色线,我们看到的是蓝色的优化每标题行,现在我们添加的是黄色的H.265和HEVC。我们能够产生更高的质量,并进一步降低比特率。

基本上,我们可以看到三通编码如何通过更好的权重控制来提高编码效率。我们可以看到每个标题编码如何在每个资产的基础上优化比特率阶梯,并删除不必要的表示。除此之外,更先进的编解码器的结合对很多设备更有利用价值。当然的,通过现有的VP9或HEVC,或者AV1和VVC,你可以在大多数设备上实现这个技术。

LiveVideoStackCon 2020 讲师招募

2020年LiveVideoStackCon将持续迭代,4月在上海,9月在北京,11月在旧金山。欢迎将你的技术实践、踩坑与填坑经历、技术与商业创业的思考分享出来,独乐不如众乐。请将个人资料和话题信息邮件到 speaker@livevideostack.com 或点击【阅读原文】了解成为LiveVideoStackCon讲师的权益与义务,我们会在48小时内回复。


转载:https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/103776034
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场