“PAG到目前为止已经迭代了5年,经历了四个大版本。最新的PAG4.0版本在今年年初开源…” PAG由腾讯研发,是一套完整的动效工作流解决方案,提供从AE(Adobe After Effects)导出插件,到桌面预览工具PAGViewer,再到各端的跨平台渲染SDK。能够一键将设计师在AE中制作的动效内容导出成素材文件,并快速上线应用于几乎所有的主流平台。观其发展,可以看出是人们对视频内容生产的效率与丰富度的要求不断提升。本次,我们有幸邀请到了腾讯 OVBU 计算内容中心副总监 陈仁健,聊一聊腾讯PAG动效解决方案的生产能力与开源情况。
陈仁健 腾讯 , OVBU 计算内容中心副总监
职业经历的前期主要在游戏行业,曾主导过开源 UI 框架 FlexLite 与 Egret 游戏引擎的设计研发。2018 年加入腾讯,作为腾讯多媒体技术委员会下 AVGenerator Oteam 核心 PMC 成员,持续专注在音视频编辑、图形图像特效、C++ 跨平台渲染等领域。主导研发的中台组件 PAG 动画解决方案已接入服务了腾讯系 60+ 应用,包含微信、QQ、王者荣耀等头部 App,并于 2022 年 1 月正式对外开源。
文 /陈仁健
策划、编辑 / Teresa
LiveVideoStack:陈老师好,很高兴能够采访到您。请您介绍下您目前在腾讯所负责的项目和您最近比较关注的技术吧。
陈仁健: 我们团队在腾讯主要负责音视频发布相关的中台建设,在过去四年沉淀下来的音视频解决方案已经对接服务了腾讯内60+的业务场景。最近比较关注的技术领域也主要是图形渲染方面。
LiveVideoStack:据了解,腾讯PAG动画组件已在今年1月份正式开源,您能为我们介绍一下它的功能,以及具体的应用范围吗?
陈仁健: PAG是一套完整的动效工作流解决方案,提供从AE(Adobe After Effects)导出插件,到桌面预览工具PAGViewer,再到各端的跨平台渲染SDK。能够一键将设计师在AE中制作的动效内容导出成素材文件,并快速上线应用于几乎所有的主流平台。方案目前已经接入了腾讯内外200余款应用,包括微信、手机QQ、王者荣耀、腾讯视频、QQ音乐等头部产品,稳定性经过了海量用户的持续验证,可以广泛应用于UI动画、贴纸动画、视频编辑、模板设计等场景。相比其他同类型方案,PAG目前具有显著的技术优势。相同的动画内容,PAG导出的文件只有其他方案一半大小,还额外支持全部AE特性导出,更加丰富了运行时的编辑接口,以及对几乎所有主流平台的覆盖。
LiveVideoStack:开源项目往往会遇到社区运营管理与产品实现商业化问题,对此咱们是如何进行产品布局的?以及为什么会把腾讯PAG动画组件作为开源产品?
陈仁健: PAG是基于Apache 2.0协议开源的,可以免费商用。目前我们不仅完全开源了PAG的渲染引擎,同时也开源了它核心的编解码模块。目前只有AE导出插件的部分是没有开源的, 但它所依赖的PAG编解码模块是开源的,再结合AE SDK, 要从头实现一个导出插件在技术上并没有障碍。我们没有把导出插件的业务代码直接开源的原因是为了保护文件格式的统一性。因为 PAG格式是一种动态演进的格式,去中心化管理容易出现大量不兼容分支。我们希望PAG是中立、通用的,而不是快速变成某些业务的私有格式。PAG解决了行业里在动效领域的一个比较普遍的痛点,开源有助于进一步推广PAG成为动效的标准承载格式。未来我们也会逐步开始探索PAG的商业化,可能会围绕技术支持服务以及素材社区等方向尝试,但总体会持续保持PAG格式的中立以及通用能力的免费。良好的商业化配套支持,也可以让开源方案发展的更加成熟稳健。
LiveVideoStack:那么腾讯PAG动画组件从最初立项到开源,在这个研发过程中有没有遇到一些重点的技术挑战?又是如何应对的?
陈仁健: PAG到目前为止已经迭代了5年,经历了四个大版本。最新的PAG 4.0版本是在今年年初开源的。在PAG 1.0版本的时候,我们主要的挑战是在设计文件格式上,PAG吸收借鉴了不少Flash成熟的文件格式设计,并针对AE的时间轴特点做了进一步的极限压缩,最终实现了相同动效内容只有Lottie一半左右的大小。与此同时,它的解码速度还加快了12倍。
在2.0版本的时候最大的挑战是纯矢量导出的生产效率无法满足设计师需求,于是我们又引入了BMP预合成的机制,创新的实现了矢量和序列帧的混合导出能力,保持运行时编辑性的同时又可以支持所有AE特性导出,极大地提升了素材生产效率。
到3.0版本时最大的挑战是模板的拼装组合需求,我们在占位图和文本替换的编辑接口外又引入了图层级别的自由组合接口,很好地满足了类似一键出片和游戏战报等智能模板的需求。前三个版本基本把上层遇到的问题都解决的差不多了,到4.0版本时,我们最大的挑战是包体和性能的进一步突破。我们花了一年半的时间完成了对Skia绘图引擎的替换,实现了移动端包体直线降低 65%,并且矢量渲染性能还提升了60%左右。
LiveVideoStack:现在人们对视频的依赖性非常强,在视频内容生产端的需求也在不断提升。对此,腾讯PAG动画组件的产品规划方向是什么?有哪些功能特色?主要针对哪些目标客户?
陈仁健: 在音视频发布的场景下,动效素材的需求是源源不断的,比如贴纸、花字,以及照片或者视频的模板等。但在传统工作流中,依赖代码手工还原动效的方式存在巨大的生产瓶颈。例如一个典型的视频模板,在设计完成后通常还需要研发投入5天还原才能上线。而接入PAG方案后,利用导出插件和桌面预览工具提供的所见即所得的工作流,生产周期可以从一周降低到4个小时左右。PAG方案最早就是诞生在音视频发布的需求场景下,后来才逐步扩展到覆盖其他几乎所有的动效场景。比较特色的功能主要是具有非常丰富的运行时编辑能力,除了能够在保留设计师预设动效的前提下,动态修改文本或者占位图为用户内容外,还支持图层级别的自由排列组合,灵活性可以满足各种业务场景下的复杂需求。PAG接下来也会继续聚焦在通用动效素材的生产效能提升上,帮助音视频发布场景以及其他通用动效场景引入源源不断的高质量素材。
LiveVideoStack:当前深度学习技术发展较为迅速,视频内容生产多借助深度学习等技术实现智能自动化图像内容理解、制作、审核,那么咱们在深度学习方面有哪些应用?
陈仁健: 深度学习在视频特效处理中有非常丰富的应用,而PAG在这方面起到的更多是在消费链路上的串联配合作用。例如AI识别抠图后放进一个PAG视频模板进行套用,或者在表情驱动的玩法中用于排列美化AI输出的视频原片。未来PAG也有可能在AE导出插件的工作流里直接集成调用或配置AI能力的功能,供设计师制作出可玩性更高的动效素材,具体路径目前还在探索中。
LiveVideoStack:从视频内容生产端到消费端,偏向UGC的视频内容形式越来越多,您觉得这中间的技术难点是什么?(比如,在内容生产端的制作时长问题;消费端用户体验感等)
陈仁健: 相比图文时代的UGC,视频时代的内容生产一直是门槛比较高的。因此音视频和渲染相关的技术在降低UGC门槛这件事上就尤为重要。过去四、五年我们可能主要是聚焦在解决音视频处理相关的底层技术难点,例如:怎么实现UGC需要的各种功能;怎么充分开启硬件加速提升性能体验;怎么解决大量硬件设备的兼容性问题等等。如今,这个领域已经沉淀的相对比较成熟了。行业里有比较多成熟的音视频解决方案,无论是付费的还是自研的,在能力层面基本都不会拉开太大的差别。我认为视频时代的UGC再往后发展,比较关键的技术难点是解决海量的素材生产的效率。近几年很多公司也在加大工具链这方面的投入,像游戏引擎里才用到的ECS系统,已经广泛地被用在了视频领域的各种特效编辑器里。目的就是希望利用起已经积累的各种原子能力,直接打通创意到消费的通路,完善的底层能力,结合高效的工具链,可以更进一步降低UGC的创意门槛。
LiveVideoStack:很高兴您能参加本次LiveVideoStackCon 2022 音视频技术大会 北京站,本次您将会分享哪些精彩的内容,可以提前给大家剧透一下吗?
陈仁健: 本次分享主要会分为三大块:首先会介绍PAG方案的诞生背景以及方案概述,帮助大家了解腾讯在解决动效素材生产痛点方面的探索和思考。然后重点介绍前面提到的架构演进和技术挑战细节,这部分会有大量的技术细节干货。其中比较值得重点关注的是PAG里孵化出的全新绘图引擎 tgfx。目前谷歌开源的Skia绘图引库是行业里2D绘图的事实标准,多年来几乎没有可实质性替代的方案出现,Chrome、Firefox、Flutter、Adobe系列软件,乃至Android系统都在基于Skia做文本和矢量的绘制。tgfx的出现给行业提供了Skia外的另一个选项,我将在北京站大会上详细分享其背后的技术难点和实现细节。最后会分享一下PAG的当前总结与未来展望。通过这次的分享,希望能够帮助大家快速了解PAG目前的成果及接下来的重点规划方向。
LiveVideoStack:好的,感谢您接受采访,期待您在11月北京站大会上的精彩分享。