Instagram提出两种视频编码可将时长缩短94%

发布时间:2022-12-14  

眼看用户视频的增长将超过服务器的算力上限,既没有额外的服务器来支持,也不能对用户体验造成大的冲击,Instagram的工程师找到了两种编码过程中重复计算的部分,并将他们合二为一,如此便可节省可观的算力。他们是如何做到的呢?

23eb744e-768c-11ed-8abf-dac502259ad0.jpg

在对效率的不断追求当中,Instagram的工程师们开发出一种新的视频处理方法,能够将基础视频编码的耗时缩短94%。


有了这种方法,Meta的视频基础设施无需添加更多设备即可吸纳更多负载。


由此释放出的资源,可让更多用户观看高清编码流,提供更加清晰流畅的视频体验。这对网络连接不佳国家/地区的用户尤其有益。


Instagram的用户群体不断增长,目前月度活跃用户已超20亿。受众的迅速扩张也要求我们的服务器集群提供更好的性能体验。2021年初,我们的预测表明在未来12个月内,现有基础设施已经不足以消化所有用户的视频上传负载。但凭借对效率的不断追求,Instagram在工程师们开发出一种新的视频处理方法,无需向视频基础设施内添加更多设备即可吸纳更多负载。


Instagram会为用户上传的视频创建多种编码版本,不同版本间各有特性。而只要利用一种类型的视频编码辅助生成另一种类型,即可将观看次数较少的视频所占用的编码计算资源减少94%。由此释放出的更多资源可用于生成更多高清编码视频流,让更多用户获得更清晰、更流畅的播放体验。


Instagram如何分配视频计算资源

对于上传至Instagram的每段视频,我们都会为其生成两种视频编码版本:

基础编码,能够适配所有Instagram客户端,其压缩率较低、可以在较陈旧的设备上顺畅解码和播放。


高级编码,使用更新的压缩技术以提升播放质量。

问题在于,其中基础视频编码占用了我们超过八成的计算资源储备。如果继续沿着这个路线发展,那么基础编码功能将在一年内耗尽Instagram的全部资源。到那个时候,用户上传视频后需要等待更长时间才能完成发布,甚至根本无法正常发布。相比之下,我们的高级编码只占总观看时长的15%,预计将所有算力都花在基础编码上之后,高级视频编码将没有任何资源可用。

移除冗余工作负载

对于其中的基础视频编码部分,Instagram又具体划分出两种类型。对于每段上传视频,我们首先会生成最基础的自适应码率(ABR)版本,也就是最低功能类型。这样一来,客户就可以选择最适合当前连接速度的版本,防止带宽波动导致的画面卡顿——所谓的自适应码率就是这个意思。

另外一种则是很少用到的渐进式编码(另一种最低功能类型),我们同样会持续生成这个版本,以保证其与无法支持ABR的旧版Instagram应用相兼容。

传统上,我们从客户端上传至后端的原始文件会分别对应ABR和渐进式编码两个版本。这个进程会占用计算资源——如以下终端命令所示,将23秒长的视频转码为720p,共需要86.17秒的CPU时间。

$ TIme ffmpeg -i input.mp4 -vf scale=-1:720 -c:v libx264 output.mp4
86.17s user 1.32s system 964% cpu 9.069 total

我们注意到,这两组编码具有相似的设置——使用相同的编解码器,只是编码配置文件和预设略有区别。于是我们意识到,完全可以用渐进式编码的视频帧替换掉基础ABR编码,也就是将其重新打包为支持ABR的文件结构。如此一来,也就消除了生成基础ABR编码所对应的成本。以下终端命令表明,生成manifest文件并将视频帧重新打包为相同输入视频且支持ABR格式的文件结构,只需要0.36秒:

$ TIme MP4Box -add input.mp4 -dash 2000 -profile dashavc264:onDemand -out manifest.mpd 
video_output.mp4
0.36s user 2.22s system 95% cpu 2.690 total

这种方法省出了高级编码所占用的算力,牺牲掉的则是我们基础ABR编码的压缩效率。但我们认为,提高高级编码的生成比例对于Instagram用户而言应该是好事。

24112acc-768c-11ed-8abf-dac502259ad0.png

建立框架,验证我们的理论

在投入生产之前,我们得先验证这个理论。如果单纯比较基础ABR编码在变更前后的占比区别,并不足以得出有意义的结论。我们还需要衡量高级编码占比增加后的净值。从下图可以看到,从基础ABR中释放出算力之后,用户观看高级编码视频的时间确实更长了。这应该足以抵消我们发明的新基础ABR算法牺牲掉的压缩效率。

2443ec96-768c-11ed-8abf-dac502259ad0.jpg

为了做出进一步量化,我们还构建了一套测试框架,其中的测试池和控制池复制了一小部分用户流量。我们将各个池内的视频编码保存至不同的命名空间,稍后作为视频控制目录或测试目录中的一部分。这样在交付时,人们就只能看到来自其中某一目录的编码,帮助我们衡量新的编码方案是否更好。

24600494-768c-11ed-8abf-dac502259ad0.png

在此次测试中,我们证明虽然测试池中基础ABR编码的压缩效率有所下降,但高级编码视频的观看时间变得更长、足以抵消这部分损失。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>