咱们好,我是苍王,很久没有在发布文章,今年在公司内开发了一个mp4的特效结构,用于支撑各种礼物特效的玩法,是继SVGA特效结构的另外一个极致的特效结构。自己也是有幸参与Android端开发以及各种优化。 可以看咱们主推的文章 YYEVA-通明MP4播映器支撑动态元素 这里介绍的是YYEVA结构生成原理

为何要选用MP4资源作为特效结构?

这里一张图告知你通明MP4特效的优势

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

可以看到通明mp4结构支撑软解硬解,H264/265压缩,支撑特效元素替换,支撑通明通道。

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

为何称为极致?

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

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

YYEVA-Android 已经出了2.0.0-beta版别,为咱们带来业界抢先的功用。

1.这个版别支撑了结构多进程,将解码器放到子进程远程。

支撑多进程解码,让主进程内存压力削减,让主进程更专注于烘托作用。 开发中主要遇到是,进程间的烘托的生命周期的回调,主进程中如何剥离出独立解码器等问题。

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

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

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

如果你想对使用到技能深化了解,可以订阅我的小专栏 Android进程化&C++音视频