YYEVA支持动态元素的透明MP4动效播放器 - 在线自动更新AE扩展能力 (五)

392 阅读3分钟

YYEVA(YY Effect Video Animate)是一个开源的支持可插入动态元素的MP4动效播放器解决方案,包含设计资源输出的AE插件,客户端渲染引擎,在线预览工具。

对比传统的序列帧的动画播放方式,具有更高的压缩率,硬解码效率更高的优点,同时支持插入动态的业务元素;对比SVGA、Lottie等播放器,支持更多的特效支持,如复杂3D效果、描边、粒子效果等,达到所见即所得的效果。

我们发布项目已经有数月,也有很多朋友加入了我们的社群提出一些优化方案,我们陆续在支持。也欢迎大家到 github给我们继续点个Star,您的Star是对我们最大的支持。

今天我们来主要介绍下,我们是如何支持YYEVA插件完成热更新功能的。

out.gif

YYEVA扩展

在设计资源输出端,我们为设计同学在Adobe After Effects开发了一个AE扩展,用来解析设计师的图层,导出一个Json描述文件,并将该Json写入MP4的metadata段。YYEVA插件原理篇有对这部分介绍的。大家可以跳转到该链接去探索下YYEVA的扩展原理,内部使用了很多矩阵变换的相关运算。

Adobe After Effects安装扩展可以使用ZXP Installer工具

YYEVA扩展热更新支持

AE扩展是一个zxp文件格式,通过查看文件相关信息, 我们发现zxp文件实质是一个zip文件。通过修改文件后缀,再使用zip解压缩工作,可以把文件内容解压缩出来。

随着设计同学对该扩展的使用频率越来越多,也提出了很多的需求,我们每次完善功能,都需要发一个版本给到设计同学去重新通过zxp_installer安装。这样增加了设计师使用YYEVA扩展的成本,而且大部分设计同学使用的版本都不统一,大家不能及时使用到优化后的版本。

因此,我们在Q4着手研究并实现了YYEVA扩展的热更新功能。

整个步骤分为以下几步:

  1. 启动AE扩展,检查当前下载的版本 和 Github发布的最新版本的 时间戳

  2. 如果时间戳相同,直接调过

  3. 如果时间戳小于Github发布最新版本的时间戳,启动zxp文件下载的任务

  4. 下载完成后,将当前zxp安装在磁盘的文件夹清空,并将新下载的zxp文件解压缩到安装目录

  5. 关闭扩展,保证下次点击是使用最新的版本

大家可以发现,我们整个更新步骤中,需要去下载远程的zxp安装包,因此大部分耗时操作都是在下载文件的过程。目前我们的扩展是60M左右,如果每个用户每次更新都下载一个60M的文件,而且github相对下载速度比较慢,会大大降低用户体验。因此我们将ffmpeg整个工具做了抽离,放在了外部,最终我们的扩展减小到了500KB,大大提高了整个插件的更新速度。提高了用户体验。

大家现在可以去github安装最新的扩展,以后有任何问题,我们都可以直接远程更新,让大家及时使用到我们的最新功能。

Star

希望可以为我们的项目 YYEVA 点上一个 Star,感谢您的支持