Redian新闻
>
Instagram如何将视频编码时长缩短94%?

Instagram如何将视频编码时长缩短94%?

科技
 点击上方“LiveVideoStack”关注我们

▲扫描图中二维码或点击阅读原文
了解音视频技术大会更多信息

编者按

Editor's note

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

作者:Ryan Peterman, Haixia Shi

译者:核子可乐

审校:Haixia Shi


  • 在对效率的不断追求当中,Instagram的工程师们开发出一种新的视频处理方法,能够将基础视频编码的耗时缩短94%。
  • 有了这种方法,Meta的视频基础设施无需添加更多设备即可吸纳更多负载。

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


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


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


Instagram如何分配视频计算资源

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

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

  2. 高级编码,使用更新的压缩技术以提升播放质量。在以下示例中的两端视频帧可以看到,我们完全能够用更低码率提供更清晰的画面细节(请注意,与左侧视频相比,右侧视频的清晰度明显更高)。


问题在于,其中基础视频编码占用了我们超过八成的计算资源储备。如果继续沿着这个路线发展,那么基础编码功能将在一年内耗尽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.mp486.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.mp40.36s user 2.22s system 95% cpu 2.690 total

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



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

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


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

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


推向生产

在上线这项优化后,我们的基础编码与高级编码视频观看时间有了显著变化。新的编码方案将基础ABR编码的生成成本降低了94%凭借更多可用资源,我们能够将高级编码的观看时间占比提升至33%。换句话说,如今有更多Instagram用户能够体验到更清晰、更流畅的视频内容了。这对于网络连接不佳国家/地区的用户们尤其有益。


我们的工程创新探索永不止步,Instagram知道不断增长的用户群体正对我们的服务器集群提出越来越高的要求。更多优化即将发布,敬请关注!


本文来自Meta技术博客,LiveVideoStack已获授权转载。
原文链接:https://engineering.fb.com/2022/11/04/video-engineering/instagram-video-processing-encoding-reduction/




▼识别二维码或猛戳下图订阅课程
喜欢我们的内容就点个“在看”吧!

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
趣图:调试代码时大脑的平均性能如何将数字化基因注入财富管理业务?海通证券2023年首秀:e海通财9.0新版发布平价买到高级感!IKEA全新 OBEGRÄNSAD系列,全系列都好看!音视频编辑技术新拐点:AI智能力量的隐形突破OpenStack 已死?最新报告显示 OpenStack 部署呈爆发式增长,整体规模超4000万视频编解码的新突破不影响开发体验,如何将单体 Node.js 变成 Monorepo咀外文嚼汉字(179)“雎鸠”VS.“魚鷹”(Misago)官方回应石家庄核酸疑造假:公安机关已将视频中人员带走对话哥大/杜克/西北早申录取学生:他们如何将“热爱”打成“王牌”?瞄准千亿市场,这家企业如何将“恶臭”垃圾变废为宝?仅花200行代码,如何将60万行的RocksDB改造成协程如何将一座绘本馆和一个科普课堂轻松搬进家里?这里有教程!在美国如何将你的企业做大做强?必看这篇!更有新春重磅福利等你来拿!图像视频编码新纪元,体验升级&技术变革,AR及其关键技术......资深视觉效果主管:如何将好莱坞电影制作方式用到游戏里?如何将感冒症状扼杀在摇篮里英国银行 | NatWest Group 2023 Graduate Programme 开放中,福利待遇优厚【E诗配画】Spring MorningRust 编码风格团队宣布完成重组毛泽东工农红军的武器从哪里来IKEA x OBEGRÄNSAD联名!宜家22年最受瞩目系列开售!​Transformer升级之路:旋转位置编码的完备性分析英国内政大臣计划缩短PSW签证时长!内伦敦月租首破3000镑!独揽国内九成订单,拿下PICO华为,七鑫易维如何将眼动追踪做到第一?佩飞机内幕. 台湾被卖? 中美缓和赵薇「被消失」一年多突更新Instagram 网惊:要回归?「还珠格格」王艳2亿美元豪宅遭法拍 老公下落不明!康复与理疗的区别BB鸭 | 今年起新购iPhone送半年苹果会员;抖音上线弹幕功能;京东年度账单出炉;微信视频号使用时长已达朋友圈80%卓越的技术如何将彭博、贝莱德、Citadel转变为金融巨头?​当当网入驻京东;视频号总用户使用时长超朋友圈80%;Win 7将于本周彻底退出历史舞台……新一代视频编码标准VVC的芯片设计思考澳洲总理:澳洲国庆日规则大变!“我和上届政府不一样!”中澳即将视频会议,关系继续缓和古人如何将日子过得诗意盎然?如何将敏捷开发与V模型深度融合?这家企业给出答案
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。