Facebook尝试在自己的视频服务中使用AV1编码,并通过“切片+分布式”的方式解决AV1编码延迟的问题。LiveVideoStack对文章进行了翻译。
文 / Daniel Baulig,Yu Liu
译 / 蒋默邱泽
审校 / 包研
最近发布的AV1是一种全新的开源、专利免费视频编码标准,重点是希望压缩效率方面更进一步。不久前Facebook发布了包含详细测试环境的AV1 基准测试,现在开始为Facebook视频增加AV1编码支持。官方AV1发布版本的浏览器支持仍在开发中,编码速度仍然滞后于当前的编码器替代品如:x264和libvpx-vp9。为了Facebook视频支持AV1,我们通过Chrome Canary上的MPEG-DASH来实现。要启动此功能,我们必须使用早期版本的AV1,一旦Chrome和Firefox等主流网页浏览器正式支持AV1,我们就会切换到官方的AV1发行版。
AOMedia成立于2015年,由视频点播提供商组成包括:亚马逊,Facebook,谷歌,微软和Netflix,以及网络浏览器开发商和半导体芯片公司——他们共同开发并优化AV1,为实现更高质量的视频和更高效的压缩性能。AV1通过降低带宽和存储需求,降低4K视频播放成本。在我们目前测试中AV1(libaom)的压缩比libvpx-vp9提升30%,比x264提升50%。以往重复测试的条件与Facebook视频的最常见实际使用案例非常相似,因此结果显示AV1的内容将会减少30%~50%的缓冲。由于新的编解码器增加了更长的编码时间复杂度与当前的实际方案对比来看。下图将编码时间与当前常用的编码方式进行比较。
如何AV1?
为了克服AV1编码器的低性能问题,我们采用了基于分段切片编码。首先视频沿着GOP边界切割成较小对齐GOP的视频片文件,以便输出片是独立且格式完整片视频文件。其中在每一片段执行切片,再输入分布式集群中,并对视频每段进行并行编码,这样使我们可以几乎线性加速整个AV1编码集群。最后这些视频片分段编码完成后,执行拼接合并工作,生成一个DASH(动态自适应http流传输)列表。要查看Facebook视频上现有的AV1编码样本视频,请按照以下步骤操作。
https://www.google.com/chrome/browser/canary.html安装Chrome Canary(金丝雀版本67.0.3393.0或更高开发版)。
在chrome://flags 启用AV1视频解码
在下面嵌入的Facebook视频中播放示例AV1编码的工程样板。(对于其他浏览器,非AV1编码的视频也可以正常播放,但不会使用AV1。)
https://www.facebook.com/330716120785217/videos/330723190784510/
在早期阶段试用AV1支持可以使社区工程师和他人有更多机会体验今天新规格视频编码,而无需等待完整的网络浏览器支持。由于主流的网络浏览器有了对AV1的支持,Facebook视频将逐渐增加使用AV1的编码数量,同时我们继续帮助加速视频生态系统中AV1的开发和实施部署。
WebRTCon 2018
继2017年第一届LiveVideoStackCon音视频技术大会之后,LiveVideoStack又一次出发——WebRTCon 2018,将于5月在上海举行,这是一次对过去几年WebRTC技术实践与应用落地的总结。
WebRTCon 2018设立了主题演讲,WebRTC与前端,行业应用专场,测试监控和服务保障,娱乐多媒体开发应用实践,WebRTC深度开发,解决方案专场,WebRTC服务端开发,新技术跨界,WebRTC与Codec等多个专场。邀请30余位全球领先的WebRTC技术专家,为参会者带来全球同步的技术实践与趋势解读。