前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >直播动画框架探索

直播动画框架探索

作者头像
雁字回时
发布2022-12-13 18:57:38
6320
发布2022-12-13 18:57:38
举报
文章被收录于专栏:安卓随笔

目录

直播动画框架探索

方案对比

动画库对比


直播动画框架探索

方案对比

方案

优点

缺点

帧动画OpenGL

实现简单

播放图片资源占用高;

属性动画

资源占用小

1. 播放图片资源占用高; 2. 实现难度大,实现效率低;

GIF

实现简单

1. 播放图片资源占用高; 2. 资源文件包比较大; 3. 效果不是很好(只支持8位颜色)

webp

1. 实现简单; 2. 相对GIF,资源文件包变小;

1. 播放图片资源占用高

动画库

1. 一套引擎,三端公用; 2. 一套协议,三端各自实现

动画库对比

动画库

Lottie

SVGA

支持平台

Android/iOS/Web

Android/iOS/Web

设计工具支持

After Effects

AE & Flash

导出工具

插件

插件

资源包大小zip

2.6M

767k

优点

三端可用自行缓存不需要二次开发

资源包小测试工具齐全三端可用Protobuf 序列化结构数据格式,传递效率比xml,json 更高

缺点

资源包相较SVGA而言会大一倍多

每个礼物播放时都去重新解压,需要自行实现一套缓存策略svga 用zlib打包,不方便解压和追踪包内容。

实现方式

一层一层完全按照设计工具的设计思路来进行还原,将动画脚本导出并解析。动画脚本非常的轻量。将所有的动画拆成多个层级,每个层级layer都有一个动画配置,播放时解析多个layer的配置,并给每个layer做相应的动画。也达到了图片可以复用。当需要解析高阶插值(二次线性方程,贝塞尔曲线方程)时,性能相对而言差一点。

一帧一帧通过设置帧率,来生成一个配置文件,使得每一帧都有一个配置,每一帧都是关键帧,通过帧率去刷每一帧的画面,这个思路跟gif很像,但是通过配置使得动画过程中图片都可以得到复用。性能就提升上来了。并且不用解析高阶插值(二次线性方程,贝塞尔曲线方程)

官网

地址

地址

官网地址地址

结论:

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

最终选用SVGA。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 直播动画框架探索
    • 方案对比
      • 动画库对比
        • 结论:
        相关产品与服务
        云直播
        云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档