直播动画框架探索

目录

直播动画框架探索

方案对比

动画库对比


直播动画框架探索

方案对比

方案优点缺点
帧动画OpenGL实现简单播放图片资源占用高;
属性动画资源占用小

1. 播放图片资源占用高;

2. 实现难度大,实现效率低;

GIF实现简单

1. 播放图片资源占用高;

2. 资源文件包比较大;

3. 效果不是很好(只支持8位颜色)

webp

1. 实现简单;

2. 相对GIF,资源文件包变小;

1. 播放图片资源占用高

动画库

1. 一套引擎,三端公用;

2. 一套协议,三端各自实现

 

 

动画库对比

动画库LottieSVGA
支持平台Android/iOS/WebAndroid/iOS/Web
设计工具支持After EffectsAE & Flash
导出工具插件插件
资源包大小zip2.6M767k
优点
  • 三端可用
  • 自行缓存
  • 不需要二次开发
  • 资源包小
  • 测试工具齐全
  • 三端可用
  • Protobuf 序列化结构数据格式,传递效率比xml,json 更高
缺点
  • 资源包相较SVGA而言会大一倍多
  • 每个礼物播放时都去重新解压,需要自行实现一套缓存策略
  • svga 用zlib打包,不方便解压和追踪包内容。
实现方式
  • 一层一层
  • 完全按照设计工具的设计思路来进行还原,将动画脚本导出并解析。动画脚本非常的轻量。
  • 将所有的动画拆成多个层级,每个层级layer都有一个动画配置,播放时解析多个layer的配置,并给每个layer做相应的动画。也达到了图片可以复用。当需要解析高阶插值(二次线性方程,贝塞尔曲线方程)时,性能相对而言差一点。
  • 一帧一帧
  • 通过设置帧率,来生成一个配置文件,使得每一帧都有一个配置,每一帧都是关键帧,通过帧率去刷每一帧的画面,这个思路跟gif很像,但是通过配置使得动画过程中图片都可以得到复用。性能就提升上来了。并且不用解析高阶插值(二次线性方程,贝塞尔曲线方程)
官网地址地址

结论:

直播场景下(动画时间短,播放频率高),主要考虑资源占用:
Lottle 因为要在绘制时间计算一些高阶曲线导致绘制效率比较低,并且动画资源文件比较大;
SVGA动画资源更小,由于是一帧一帧绘制,并且复用图片,所以在直播场景下资源占用更加小;

最终选用SVGA。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值