注册

[YYEVA]一个极致的特效框架

今年在公司内开发了一个mp4的特效框架,用于支撑各种礼物特效的玩法,是继SVGA特效框架的另外一个极致的特效框架。这里介绍的是YYEVA框架生成原理

为何要选用MP4资源作为特效框架?

这里一张图告诉你透明MP4特效的优势

31158067e0c8477289e929828cdf5f55~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

可以看到透明mp4框架支持软解硬解,H264/265压缩,支持特效元素替换,支持透明通道。

dc06ecc6d586481c9283f10f47af7b38~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

为何称为极致?

YYEVA-Android 稳定版本是1.0.11版本,支持了业界中独有功能,例如文字左右对齐,元素图片缩放方式,支持嵌入背景图片,循环播放。

9597303087f6493b8e5be8b1fd5d347f~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

YYEVA-Android 已经出了2.0.0-beta版本,为大家带来业界领先的功能。

1.这个版本支持了框架多进程,将解码器放到子进程远程。

支持多进程解码,让主进程内存压力减少,让主进程更专注于渲染效果。 开发中主要遇到是,进程间的渲染的生命周期的回调,主进程中如何剥离出独立解码器等问题。

这里有个小插曲,尝试过是否能够单独使用子进程进行主进程传递的Surface渲染以及解码,答案是无法做到的,因为主进程创建Surface的egl环境无法和子进程共通,所以只能独立出解码器。或者使用Service创建Dialog依附新的windows来来创建egl环境和surface来做独立渲染。

7718cd7b5af64f01b865d522f5a9b5c6~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?

2.支持高清滤镜,未来支持更多的高清滤镜功能。

支持高清滤镜,小尺寸资源,缩放效果不再纯粹的线性缩放,可以带有高清的滤镜计算来优化,各种屏幕上的表现。当然高清滤镜需要耗费一些性能,由开发接入sdk来自行判断使用策略。

现在分别支持 lagrange和hermite两种不同的滤镜算法,这两种算法已经在手Y中得到很好的实践,还有更加强大的高清滤镜正在试验中。

如果有更好的滤镜算法,也可以提供我们嵌入优化。

3.将opengles从2.0升级到3.1,并加入多种opengles的特性来优化整个gpu的缓存读取

使用了vbo,ebo,vao等opengles缓存技术来优化整个gpu运行缓存。优化特效渲染的压力,让特效渲染更好更快。 将原来Java层I妈个View中进行图片变换效果,完全转移到opengles来完成,进一步提高了整个绘制效率。还有将整个点击触摸系统反馈系统缩放计算置于Native中。

4.将硬解解码器下放到native层,未来正式版将兼容ffmpeg软解。

将原来1.0版本视频解码模块,音频解码和音频播放逻辑,转移到Native层实现,更好的功能代码统一性。 未来我们将加入ffmpeg软解/硬解,能够更好支持解码嵌入技术。

YYEVA未来将会提供更多业界领先的能力,发布更多重磅功能,欢迎大家点赞收藏一波

YYEVA-Android

YYEVA

作者:Cang_Wang
来源:juejin.cn/post/7166071141226774565

0 个评论

要回复文章请先登录注册