前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >facebook如何编码视频

facebook如何编码视频

作者头像
用户1324186
发布2021-04-14 10:33:46
7400
发布2021-04-14 10:33:46
举报
文章被收录于专栏:媒矿工厂媒矿工厂

本文为媒矿工厂翻译的技术文章

原标题:How Facebook encodes your videos

原作者:Taein Kim, Ploy Temiyasathit, Haixiong Wang

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

翻译整理:徐鋆

人们每天都会将数亿个视频上传到Facebook。以最高质量——最高的分辨率和尽可能少的缓冲——交付每个视频,这不仅意味着优化视频编解码器编码和解码视频以供观看的时间和方式,还意味着优化哪些编解码器用于哪些视频。但是,Facebook上视频内容的庞大数量也要求寻找有效的方法,而不消耗大量的计算能力和资源。

为了解决这个问题,我们采用了多种编解码器以及自适应比特率流(ABR),通过根据观看者的网络带宽选择最佳质量来改善观看体验并减少缓冲。但是,虽然像VP9这样的更高级的编解码器比像H264这样的较旧的编解码器具有更好的压缩性能,但它们同时消耗了更多的计算能力。从纯粹的计算角度来看,将最先进的编解码器应用于上载到Facebook的每个视频的效率都非常低。这意味着需要一种方法来确定需要使用更高级的编解码器对哪些视频进行编码的优先级。

如今,Facebook通过将收益成本模型与机器学习模型相结合来满足其对高质量视频内容进行编码的高要求,该模型能够为观看次数最多的视频确定高级编码的优先级。通过预测哪些视频将受到高度观看并首先对其进行编码,可以减少缓冲,提高整体视觉质量,并允许可能受其数据计划限制的Facebook上的人们观看更多视频。

但是,这项任务并不像让最流行的上传者或拥有最多朋友或关注者的上传者的内容跳到最前面那样简单。必须考虑多个因素,以便为Facebook上的人们提供最佳的视频体验,同时确保内容创建者仍可以在平台上公平地编码其内容。

过去如何Facebook上编码视频

传统上,将视频上传到Facebook后,使用ABR的过程就会启动,原始视频会迅速被重新编码为多种分辨率(例如360p,480p,720p,1080p)。编码完成后,Facebook的视频编码系统会尝试进一步优化观看体验,通过使用更高级的编解码器,例如VP9,或更昂贵的“食谱”(用于微调转码参数的视频行业术语),例如H264 very slow配置,以尽可能地压缩视频文件。不同的转码技术(使用不同的编解码器类型或编解码器参数)在压缩效率,视觉质量和需要多少计算能力之间具有不同的权衡。

如何以最大化每个人的整体体验的方式安排工作的问题已经成为首要问题。Facebook有一个专门的编码计算池和调度程序,它接受带有优先级的编码作业请求,并将其放入优先级队列,在此队列中优先处理更高优先级的编码任务。然后,视频编码系统的工作是为每个任务分配正确的优先级。它通过遵循一系列简单的硬编码规则来做到这一点。可以根据多种因素为编码任务分配优先级,这些因素包括视频是否为许可的音乐视频,视频是否用于产品以及视频所有者拥有多少朋友或关注者。

但是这种方法有一些缺点。新的视频编解码器的出现意味着扩大了需要维护和调整的规则数量。由于不同的编解码器和配置具有不同的计算要求,视觉质量和压缩性能的折衷,因此不可能通过一组粗粒度的规则来完全优化最终用户的体验。

而且,也许最重要的是,Facebook的视频消费模式极为偏斜,这意味着Facebook视频是由在朋友或关注者数量方面差异很大的人和页面上传的。将迪斯尼这样的大公司的Facebook页面与可能有200个关注者的vlogger进行比较。vlogger可以同时上传他们的视频,但是迪士尼的视频很可能会被观看更多。但是,即使上传者的关注量很少,他们的视频也可能变得火爆。面临的挑战是要支持各种规模的内容创作者,而不仅仅是观众数量最大的创作者,同时还要承认现实,即拥有大量观众也可能意味着更多的观看次数和更长的观看时间。

加入效益成本模型

新模型仍使用一组快速的初始H264 ABR编码来确保尽快以高质量对所有上传的视频进行编码。不同的是在视频发布后如何计算编码作业的优先级。

效益成本模型是基于以下一些基本观察得出的:

  1. 视频仅在第一次编码时才消耗计算资源。编码完成后,就可以按要求将存储的编码传递多次,而无需其他计算资源。
  2. Facebook上所有视频中的一小部分(大约三分之一)占了整个观看时间的大部分。
  3. Facebook的数据中心只有有限的能源来为计算资源供电。
  4. 通过在观看次数最多的视频上应用更多计算密集型“食谱”和高级编解码器,可以在可利用的功率限制内最大限度地提高每个人的视频体验,这是最大的收获。

基于这些观察,我们为收益,成本和优先级提出了以下定义:

  1. 收益 = (固定质量的编码系列的相对压缩效率)*(有效的预计观看时间)
  2. 成本 = 系列中缺少编码的标准化计算成本
  3. 优先级 = 收益/成本

固定质量的编码系列的相对压缩效率:根据编码系列的压缩效率来衡量收益。“编码系列”是指可以一起分发的一组编码文件。例如,H264 360p,480p,720p和1080p构成一个系列,而VP9 360p,480p,720p和1080p构成另一个系列。这里的一个挑战是比较不同系列在相同视觉质量下的压缩效率。

要了解这一点,首先必须了解一种度量标准,即每GB数据包的高质量视频分钟数(MVHQ)。MVHQ将压缩效率直接链接到一个人们对他们的互联网流量感到疑惑的问题:给定1 GB的数据,可以流传输多少分钟的高质量视频?

从数学上讲,MVHQ可以理解为:

例如,假设我们有一个视频,其中使用H264 fast配置编码的MVHQ为153分钟,使用H264 slow配置编码的MVHQ为170分钟,使用VP9为200分钟。这意味着与H264 fast配置相比,在较高的视觉质量阈值下,使用VP9传输视频可以将使用1 GB数据的观看时间延长47分钟(200-153)。在计算此特定视频的收益值时,我们将H264 fast作为基准。将H264 fast设为1.0,H264 slow为1.1(170/153),VP9设为1.3(200/153)。

实际的MVHQ仅在编码后才能计算,但是在编码可用之前我们需要该值,因此使用历史数据来估算给定视频的每个编码系列的MVHQ。

有效的预计观看时间:如将在下部分中进一步说明的,我们拥有完善的ML模型,该模型可以预测在不久的将来将在所有观众中观看视频的时间。一旦获得了视频级别的预计观看时间,就可以估计将编码系列应用于视频的效果如何。这是因为并非Facebook上的所有人都拥有可以播放更新编解码器的最新设备。

例如,大约20%的视频消费发生在无法播放使用VP9编码的视频的设备上。因此,如果视频的预计观看时间为100小时,则使用广泛采用的H264编解码器的有效预计观看时间为100小时,而VP9编码的有效预计观看时间为80小时。

系列中缺少编码的标准化计算成本:这是需要使编码系列可分发使用的逻辑计算周期的数量。编码系列要求在提供视频之前必须提供最低限度的分辨率集。例如,对于特定的视频,VP9系列可能需要至少四个分辨率。但是某些编码要比其他编码花费更长的时间,这意味着不能同时提供视频的所有分辨率。

举例来说,假设视频A缺少VP9系列的所有四个码流。则可以汇总所有四种的估计CPU使用率,并为所有四个作业分配相同的归一化成本。

如果我们只缺少四个码流中的两个,如视频B所示,则计算成本是产生其余两种编码的总和。两种作业使用相同的成本。由于优先级是收益除以成本,因此,随着可用码流的增加,任务的优先级变得更加紧迫。编码码流在分发之前不会提供任何价值,因此尽快获得完整码流很重要。例如,拥有一个带有全部VP9码流的视频所带来的价值要比具有不完整(因此无法分发)的VP9码流的10个视频的价值更大。

使用机器学习估计观看时间

有了新的效益成本模型来指导某些视频应如何编码,接下来的难题就是确定应优先处理哪些视频以进行编码。这里我们使用机器学习来预测观看次数最多的视频,它们应优先考虑使用高级编码。

我们的模型会考虑多种因素,以预测视频在接下来的一个小时内将获得多少观看时间。它通过查看视频上传者的朋友或关注者数量以及他们先前上传的视频的平均观看时间,以及视频本身的元数据,包括时长、宽度、高度、隐私状态、视频类型(直播,故事,电影等),拍摄时间,以及它在平台上的受欢迎程度。

但是,使用所有这些数据进行决策会带来一些内在的挑战:

观看时间具有很大的差异,并且具有很长的尾部偏斜性。即使专注于预测下一小时的观看时间,根据内容,上传者和视频的隐私设置,视频的观看时间范围也可以从零到50,000多个小时不等。该模型必须不仅能够判断视频是否会受欢迎,而且还能判断其受欢迎程度。

下一小时观看时间的最佳指导是其先前的观看时间轨迹。本质上,视频流行度通常非常不稳定。由同一内容创建者上传的不同视频有时会根据社区对内容的反应而具有截然不同的观看时间。在尝试了多种功能之后,我们发现过去的观看时间轨迹是未来观看时间的最佳预测指标。在设计模型架构和平衡训练数据方面,这带来了两个技术挑战:

  1. 新上传的视频没有观看时间轨迹。视频在Facebook上停留的时间越长,我们从过去的观看时间中学到的信息就越多。这意味着最具预测性的功能将不适用于新视频。我们希望我们的模型在缺少数据的情况下能够表现良好,因为系统越早识别出将在平台上流行的视频,提供高质量内容的机会就越多。
  2. 热门视频倾向于主导训练数据。最受欢迎的视频的模式不一定适用于所有视频。

观看时间的性质因视频类型而异。故事视频比其他视频更短,并且平均收看时间更短。直播会在直播期间或之后的几个小时内获得大部分观看时间。同时,如果人们以后开始共享视频,则视频点播(VOD)的寿命可能会有所不同,并且在最初上传后很长的时间都会延长观看时间。

机器学习指标的改进不一定与产品改进直接相关。传统的回归损失函数(例如RMSE,MAPE和Huber损失)非常适合优化离线模型。但是减少建模错误并不总是直接转化为产品改进,例如改善的用户体验,更长的观看时间覆盖范围或更好的计算利用率。

建立用于视频编码的机器学习模型

为了解决这些挑战,我们决定使用观看时间事件数据来训练模型。训练/评估的每一行都代表系统必须对其进行预测的决策点。

由于观看时间事件数据可能会以多种方式偏斜或失衡,因此我们在关注的维度上执行了数据清理,转换,存储和加权采样。

另外,由于新上传的视频没有观看时间轨迹,因此我们决定建立两种模型,一种用于处理上传时间请求,另一种用于观看时间请求。观看时间模型使用上述三组功能。上载时间模型会查看内容创建者上载的其他视频的性能,并将其替换为过去的观看时间轨迹。当视频在Facebook上的播放时间足够长以提供一些过去的轨迹时,我们将其切换为使用观看时间模型。

在模型开发过程中,我们通过查看均方根误差(RMSE)和均值绝对百分比误差(MAPE)来选择最佳候选者。使用这两个指标,是因为RMSE对异常值敏感,而MAPE对小值敏感。我们的观看时间标签差异很大,因此使用MAPE评估受欢迎或中等受欢迎的视频的性能,并使用RMSE评估观看次数较少的视频。我们还关心该模型能够很好地概括不同视频类型,年龄和受欢迎程度的能力。因此,评估也将始终包括每个类别的指标。

MAPE和RMSE是用于模型选择的良好汇总指标,但不一定反映直接的产品改进。有时,当两个模型的RMSE和MAPE相似时,我们也会将评估转换为分类问题,以了解取舍。例如,如果视频获得了1,000分钟的观看时间,但模型A预测了10分钟的观看时间,则模型A的MAPE为99%。如果模型B预测观看时间为1,990分钟,则模型B的MAPE将与模型A相同(即99%),但是模型B的预测将导致视频更有可能具有高质量的编码。

我们还评估了视频的分类,因为希望在过于频繁地应用高级编码和在有好处的情况下错过应用它们的机会之间取得平衡。例如,在10秒的阈值下,我们计算实际视频观看时间少于10秒且预测也少于10秒的视频数,反之亦然,以便计算模型的误报和假阴性率。我们对多个阈值重复相同的计算。通过这种评估方法,可以深入了解该模型如何在具有不同受欢迎程度的视频上执行效果,以及该模型是否倾向于建议进行不必要的编码工作,或者是否会错过一些机会。

新视频编码模型的影响

除了通过新上传的视频改善观看者体验外,新模型还可以识别Facebook上应使用更高级编码进行编码的较旧视频,并将更多的计算资源分配给它们。这样做已经将观看时间的很大一部分转移到了高级编码上,从而减少了缓冲,而无需额外的计算资源。改进的压缩功能还允许Facebook上数据计划有限的人们(例如新兴市场的人们)以更好的质量观看更多视频。

而且,随着引入新的编码方式,我们不再需要花费大量时间来评估优先级范围内的分配方式。取而代之的是,模型会根据配置的收益和成本价值自动分配一个优先级,该优先级将使整体收益最大化。例如,可以引入一个计算量很大的配置,只有将其应用于非常受欢迎的视频才有意义,并且该模型可以识别此类视频。总体而言,这使我们更容易继续投资于更新和更高级的编解码器,从而为Facebook上的人们提供最优质的视频体验。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档