博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高性能动画组件VAP开源啦!
阅读量:4196 次
发布时间:2019-05-26

本文共 915 字,大约阅读时间需要 3 分钟。

VAP(Video Animation Player)是企鹅电竞开发,用于播放酷炫动画的实现方案。

  • 相比Webp,Apng动图方案,具有高压缩率(素材更小)、硬件解码(解码更快)的优点

  • 相比Lottie,能实现更复杂的动画效果(比如粒子特效)

 

特效展示

VAP还能在动画中融入自定义的属性(比如用户名称, 头像)

支持平台

Android, iOS, web

性能简述

VAP在文件大小与解码性能上有很大的优势,实验参数请参考github:https://github.com/Tencent/vap/Introduction.md

原理说明

 

mp4视频方案无论从效果、大小与解码性能上都是最优的,但H264的里存的是YUV数据,并没有带透明通道。VAP方案基于mp4,解决视频里透明度的问题,这样就能兼具更好的压缩效率,与更好的解码性能。

1. 视频透明度实现

H264解码出来每一帧的数据是YUV,转换为RGB后是不带Alpha通道的,而我们可以在视频中额外开辟一块区域,在RGB通道里存储Alpha的值,最后利用OpenGL将这些数据合成为ARGB图像(带透明通道的图像)。

  

2. 动画配置信息

动画播放过程中,需要一些配置信息协助播放(比如Alpha区域声明,包括融合动画信息),配置是JSON格式。为了组件更方便使用,所有相关文件都合并到mp4文件里,这样播放动画只需要一个mp4文件即可。

 

3. 融合动画

VAP还支持在动画中融入自定义属性,比如用户名称, 头像。我们称其为VAP融合动画。视频内容无法直接实现属性的插入,只能曲线救国,通过对图片进行修剪,欺骗用户的眼睛,让其看起来像是在视频内容里,实现最终的融合效果(效果如文章开头展示)。

https://github.com/Tencent/vap

(点击文末阅读原文直接访问)

请给项目 一个 Star !

欢迎提出你的 issue 和 PR!

 国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source/vap

(登录后才能访问公开项目)

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像

转载地址:http://qxzli.baihongyu.com/

你可能感兴趣的文章
《JavaScript高级程序设计》学习笔记(一)JavaScript简介
查看>>
JavaScript基础教程之字符串对象
查看>>
JavaScript基础教程之数学对象
查看>>
JavaScript基础教程之数组对象
查看>>
《JavaScript高级程序设计》学习笔记(三)基本概念
查看>>
关于bootstrap-table冻结列生成多个冻结表头和表格主体的问题
查看>>
《CSS世界》学习笔记(一)
查看>>
swiper组件如何自定义分页符和前进后退按钮
查看>>
jQuery中attr()与prop()的区别
查看>>
spring JPA动态查询
查看>>
Node.js 学习笔记(一)
查看>>
U3D框架搭建(一):订阅者模式
查看>>
U3D使用:带有骨骼信息的节点无法旋转、位移
查看>>
C#使用的一些小技巧
查看>>
addbehaviour 的无法执行
查看>>
七,laya发布的问题
查看>>
游戏引擎学习阶段总结
查看>>
俄罗斯方块Laya源码(非商用未拆分无架构)
查看>>
U3D将场景数据存为表格
查看>>
C#入门学习笔记(一):hello world与学习大纲
查看>>