百万个冷知识百万个冷知识

百万个冷知识
一起学习百万个冷知识

Facebook 是如何对视频进行编码的?(facebook录制视频解封)

据 Facebook 2020 年第四季度半年报披露,截至 2020 年 12 月,Facebook 日活耀采用者平均值达至 18.4 亿,全年当月活耀采用者达至 28 亿,Facebook 应用家族(Facebook、Instagram 等)当月活耀采用者平均值达至 33 亿。Facebook 的规模这般巨大,由此代普雷,该网络平台要处置的音频数量级有多大。那么难题来了,Facebook 是怎么处置这般海量数据的视频的?

现代人每天在 Facebook 上载数百万的音频。为了确保每一段音频的传输产品质量(最高解析度和更少的缓冲器),不仅要强化他们的音频MPEG以及填充和Cogl音频以便观赏,还要强化什么样MPEG用作什么样音频。但,Facebook 上巨大的音频文本也意味着要找出一种有效的方式来实现而此目标,并且不会耗用大量的排序资源和资源。

为化解而此难题,他们采用了多种相同MPEG以及比特率自适应控制技术(Adaptive Bitrate Streaming,ABR),根据观众的网络连接选择最佳的收听产品质量,进而提升收听新体验并增加缓冲器。不过,尽管 VP9 等更一流的MPEG提供更多了比 H264 等旧式MPEG更快的填充性能,但它们也会耗用更多的排序资源。如果把最一流的MPEG应用作上载至 Facebook 的每一音频上,从纯粹的排序角度来看,工作效率会很低。换言之,他们须要找出一种方式来确定什么样音频须要用更一流的MPEG来代码。

现在,Facebook 通过结合效益 - 成本数学模型和机器学习数学模型,化解了对高产品质量音频文本代码的巨大需求,这使得他们能够优先选择考量对观赏率高的音频展开高级代码。如果能预测什么样音频将会受高度关注,并展开代码,他们就能增加缓冲器,提升整体听觉产品质量,让 Facebook 上可能受流量优惠券限制的采用者观赏更多的音频。

但,这项各项任务并不像让最畅销的TopStyle或者拥有最多挚友或影迷的文本跳出最前面那样简单。还有一些因素须要考量进去,这样他们就可以在 Facebook 上为现代人提供更多最好的音频新体验,同时也确保了文本制作者的文本在这个网络平台上仍然被公平地代码。

过去 Facebook 是怎样代码音频的?

传统上,一旦音频上载至 Facebook,就会启动 ABR 过程,原始音频很快就会重新代码成多种相同解析度(比如 360p、480p、720p、1080p)。当代码完成时,Facebook 的音频代码系统将尝试采用更一流的MPEG(如 VP9)或更昂贵的“食谱”(recipe,音频行业名词,用作微调音频文件模块),例如 H264 veryslow 的命令行,尽可能填充音频文件,进而进一步改善观赏音频的新体验。各种音频文件控制技术(采用相同的编码标准类型或编码标准模块)在填充工作效率、听觉产品质量和所需的排序资源方面存在着相同的取舍。

怎样把工作安排得更快,让每一人的整体新体验最小化,已经成为现代人最关心的难题。Facebook 有专门的编码排序池和运维器。该方式接受一个附加错误率值的代码作业请求,将其放到错误率堆栈中,高错误率的代码各项任务得到优先选择处置。因此,音频代码系统的工作就是给每项各项任务分配适当的错误率。这可以通过一系列简单的、硬代码规则来实现。代码各项任务可以根据几个因素来分配错误率,包括音频是否为授权音乐音频、音频是否为产品音频、音频所有者有多少朋友或影迷。

但,这个方式有其缺点,随着新的音频MPEG的出现,须要维护和调整的规则越来越多。因为相同的MPEG和食谱有相同的排序要求、听觉产品质量和填充性能的取舍,所以不可能通过一组粗粒度的规则对最终采用者的新体验展开全面强化。

或许最重要的是,Facebook 的音频消费模式极不均衡,这意味着 Facebook 音频的TopStyle和主页在挚友或影迷数量方面存在巨大差异。与迪士尼等大公司的 Facebook 主页相比,播客的主页可能只有 200 个影迷。摄像师可以同时上载他们的音频,但迪士尼的

输入效益 - 成本数学模型

这个新数学模型仍然采用了一套 quick 的初始 H264 ABR 代码,以确保所有上载的音频能够尽快得到高产品质量的代码。但,他们改变的是怎样排序音频发布后的代码工作错误率

效益 - 成本数学模型是根据以下基本观察得出的:

只在第一次代码时,音频才会耗用排序资源。代码完成后,存储的代码可以根据须要多次发送,而不须要额外的排序资源。Facebook 上的所有音频中,有一小部分(约三分之一)产生了大部分的整体观赏时间。Facebook 数据中心只有有限的支持排序资源的能源。在现有能源有限的情况下,通过将排序密集型的“食谱”和一流MPEG应用作最常观赏的音频,他们可以使每一人的音频新体验最小化。

以此为基础,他们对效益、成本和优先选择权作出如下定义:

效益 =(固定产品质量下代码族的相对填充工作效率)*(有效预测观赏时间)成本 = 族中丢失代码的归一化排序成本错误率 = 效益 / 成本

固定产品质量代码族的相对填充工作效率:通过代码族的填充工作效率来衡量效益。“代码族”(Encoding family)指的是一组可一起交付的代码文件。举例来说,H264 360p、480p、720p 和 1080p 代码通道构成一个族;而 VP9 360p、480p、720p 和 1080p 则构成了另一个族。在相同听觉产品质量的情况下,比较相同族间的填充工作效率是一个挑战。

为了理解而此点,他们先来看看他们开发的一个指标,即每 GB 数据包的高产品质量音频分钟数(Minutes of Video at High Quality,MVHQ)。MVHQ 把填充工作效率和互联网流量补贴的难题直接联系在一起:对于 1GB 的数据,他们可以流式传输多少分钟的高产品质量音频?

MVHQ 在数学上可理解为:

MVHQ= Average (MvhqBitratevid1, MvhqBitratevid2, MvhqBitratevid3,... 1GB

比如说,他们有一个音频,用 H264 fast 预置代码的 MVHQ 为 153 分钟,用 H264 slow 预置代码的 MVHQ 为 170 分钟,用 VP9 的 MVHQ 为 200 分钟。换言之,采用 VP9 代码的音频,在听觉产品质量门槛较高时,与 H264 fast 预置相比,采用 1GB 数据可以延长 47 分钟的观赏时间(200-153)。他们采用 H264 fast 作为基线来排序这个音频的效益值。他们将 1.0 分配给 H264 fast,1.1(170/153)分配给 H264 slow,1.3(200/153)分配给 VP9。

实际的 MVHQ 只能在代码产生后才能排序出来,但他们须要在代码产生之前就得到它,所以他们采用历史数据估算出给定音频的每一代码族的 MVHQ。

有效预测的观赏时间:正如下面所描述的,他们有一个复杂的机器学习数学模型,它可以预测观众在不远的将来看一段音频的时间。当他们在音频级别上获得预测的观赏时间后,他们就可以估计代码族在音频应用的工作效率。它揭示了一个事实,那就是并非所有 Facebook 采用者都拥有能够播放更新的编解码器的最新设备。

举例来说,大约 20% 的音频消费发生在无法播放 VP9 代码音频的设备上。所以,如果一个音频的预测观赏时间是 100 小时,那么采用广泛应用的 H264 MPEG的有效预测观赏时间是 100 小时,而 VP9 代码的有效预测观赏时间是 80 小时。

代码族中缺失代码的归一化排序成本:这是他们为使代码族可交付所需的逻辑排序周期量。在交付音频之前,代码族须要提供更多一组最低的解析度。举例来说,VP9 族至少须要 4 种解析度才能代码特定的音频。但一些代码须要比另一些代码更长的时间,这意味着不是所有的音频解析度都可以同时提供更多。

举个例子,假设音频 A 缺少 VP9 族中的所有 4 个通道。通过总结所有 4 个通道的估计 CPU 采用量,他们可以为四个各项任务分配相同的归一化成本。

如音频 B 所示,如果他们在 4 个通道中只有 2 条缺失,那么排序成本就是产生其余两个代码的总和。同样的成本适用作两个各项任务。因为错误率是效益除以成本,所以当更多通道可用时,各项任务的错误率就变得更加急迫。代码通道直到可交付时才有价值,所以尽快得到完整的通道非常重要。比如说,拥有包含所有 VP9 通道的音频要比拥有 10 个不完整(因此无法交付)VP9 通道的音频更有价值。

通过机器学习预测观赏时间

一种新的效益 - 成本数学模型告诉他们应该怎样对某些音频展开代码,下一个难题是怎样确定什么样音频应该优先选择代码。因此,他们现在采用机器学习来预测什么样音频将被观赏的次数最多,进而应该优先选择考量采用高级代码。

这个数学模型将考量一些因素来预测音频在接下来的一小时里的观赏时间。它通过查看音频TopStyle的挚友或影迷的数量和他们之前上载的音频的平均值观赏时间,以及音频本身的元数据,包括音频的长度、宽度、高度、隐私状态、帖子类型(直播、故事、观赏等等)、音频的发布日期、音频过去在网络平台上的畅销程度,来实现而此目的。

但当将所有这些数据都用作决策时,会遇到一些内在的挑战:

观赏时间具有高度的差异性,而且长尾效应非常显著。即便他们集中精力预测下一个小时的观赏时间,一段音频的观赏时间也可能从零到 5 万小时以上,这取决于音频的文本、TopStyle和音频的隐私设置。这个数学模型不仅须要能够判断音频是否会畅销,而且须要能够判断其畅销程度。

下一个小时的观赏时间最好的指标是它之前的观赏时间轨迹。一般而言,音频的畅销程度很不稳定。同一文本制作者上载的相同音频,有时会因为社区对该文本的反应而导致相同的观赏时间。通过对相同特征的实验,他们发现,过去的观赏时间轨迹是未来观赏时间的最佳预测指标。在设计数学模型结构和平衡训练数据方面,这将带来两项控制技术挑战:

新上载的音频没有观赏时间轨迹。一段音频在 Facebook 上停留得越久,他们就能从它过去的观赏时间中获得更多信息。也就是说,最能预测的特征将不适用作新音频。在数据缺失的情况下,他们希望他们的数学模型也能很好地发挥作用,因为系统越早确定将在网络平台上流行的音频,就越有可能提供更多更高产品质量的文本。热播音频有控制训练数据的趋势。最畅销的音频模式未必适合所有的音频。

观赏时间的性质因音频类型的相同而相同。故事音频较短,平均值观赏时间比其他音频短。在流媒体播放过程中或之后的几个小时里,直播流可以获得大部分观赏时间。同时,点播音频(VOD)的寿命也是多种相同多样的,如果现代人后来开始分享这些音频,那么在最初上载之后很长一段时间就可以积累观赏时间。

机器学习指标的提升未必与产品改进直接相关。RMSE、MAPE 和 Huber Loss 等传统的回归损失函数对离线数学模型的强化效果良好。但,建模误差的降低并不一定会直接导致产品的改进,例如改善采用者新体验、增加观测时间的覆盖率或者提升排序工作效率。

构建音频代码的机器学习数学模型

为应对这些挑战,他们决定通过采用观赏时间事件数据堆数学模型展开训练。在训练 / 评估中的每一行都表示一个决策点,表示系统必须对它展开预测。

因为他们的观赏时间事件数据会在许多方面出现偏离或不平衡的情况,所以他们对他们所关注的维度展开了数据清洗、转换、桶化和加权采样。

此外,由于新上载的音频没有可供参考的观赏时间轨迹,他们决定建立两种数学模型,一种用作处置上载时间请求,另一种用作处置观赏时间请求。视图 - 时间数学模型采用了上面提到的三组功能。上载时间数学模型可以看到文本制作者上载的其他音频的表现,并用过去的观赏时间轨迹代替。当一段音频在 Facebook 上停留了足够长的时间,并且有了一些过去的轨迹,他们就把它转换成采用视图 - 时间数学模型。

在数学模型开发过程中,他们通过研究均方根误差(Root Mean Square Error,RMSE)和平均值绝对百分比误差(Mean Absolute Percentage Error,MAPE)来选择最佳发布候选者。由于 RMSE 对异常值敏感,而 MAPE 对小值敏感,所以他们采用了这两种指标。观赏时间标签具有较高的方差,所以他们采用 MAPE 评估流行和中度流行的音频的表现,而采用 RMSE 评估较少观赏的音频。同时,他们也关注与相同音频类型、年龄和畅销程度上的泛化能力。因此,他们的评估也总是包含了每一类别的指标。

MAPE 和 RMSE 是很好的数学模型选择总结指标,但不一定能直接反映产品的改进。有时候,当两个数学模型的 RMSE 和 MAPE 相似时,他们也会将评估转化为分类难题,以了解其取舍。例如,如果一个音频获得了 1000 分钟的观赏时间,但数学模型 A 预测的是 10 分钟,那么数学模型 A 的 MAPE 是 99%。如果数学模型 B 预测的是 1990 分钟的观赏时间,那么数学模型 B 的 MAPE 将与数学模型 A 的相同(即 99%),但数学模型 B 的预测将会使音频更有可能具有高产品质量的代码。

同时,他们也对音频分类展开了评估,因为他们希望在过度频繁地采用高级代码和失去采用这些代码的好处之间找出一个平衡点。举例来说,在 10 秒的阈值下,为了排序数学模型的假阳性和假阴性率,他们排序出实际音频观赏时间少于 10 秒且预测时间也少于 10 秒的音频数量,反之亦然。他们对多个阈值展开了同样的排序。而此评估方式使他们能够深入研究该数学模型在相同畅销程度的音频中的表现,以及它是倾向于推荐过多的代码工作还是错失了一些机会。

新音频代码数学模型的影响

而此新数学模型不仅提升了采用者对新上载音频的新体验,而且能够识别 Facebook 上应该采用更高级代码的老音频,并为它们分配更多排序资源。这会把大部分看难题的时间转移到高级代码上,进而增加缓冲器时间,而无需额外的排序资源。经过改良的填充控制技术还可以让 Facebook 上那些流量有限的采用者,如新兴市场采用者,观赏更多产品质量更高的音频。

更重要的是,当他们引入新的代码食谱时,他们不再须要花费很多时间去评估在错误率范围中将它们分配在哪个位置。相反,该数学模型根据食谱的效益和成本值自动分配错误率,进而最小化整体效益吞吐量。举例来说,他们可以引入一种排序密集型的方式,这种方式只适用作一些极畅销的音频,并且数学模型能够识别这种音频。总而言之,这使得他们能够继续投资更新、更高级的MPEG,为 Facebook 上的采用者提供更多最好的音频新体验。

作者介绍:

Taein Kim,Facebook 软件工程师;Ploy Temiyasathit,Facebook 数据科学家;Haixiong Wang,Facebook 软件工程师。

原文链接:

https://engineering.fb.com/2021/04/05/video-engineering/how-facebook-encodes-your-videos/

未经允许不得转载:百万个冷知识 » Facebook 是如何对视频进行编码的?(facebook录制视频解封)
分享到: 更多 (0)

百万个冷知识 带给你想要内容

联系我们