admin管理员组文章数量:1565840
目前市面上音视频交互框架基本上分两种,一个是类似抖音快手那样的从相机交互界面出发的,往相机帧加美颜,贴纸等各种特效的交互,另一个是类似剪映,必剪等更专业一点的视频编辑软件,它增加了多轨道,转场等一些更复杂的效果。
不过万变不离其宗,都是解出视频帧,然后对视频帧做特效,然后合成视频这一流程。接下来我们就来讲讲整个流程中每个阶段我们会用到什么技术
1. 解码出视频帧与音频帧:这里有两个技术方案,用FFmpeg软解和用MediaCodec硬解。用FFmepg软解的话基本都是在FFmpeg的API上进行操作,不过需要自己去编译FFmpeg的so库,且得考虑包大小问题。用MediaCodec的话首先是用Android的多媒体框架里的MediaExtractor,MediaCodec等类来进行音频文件的视频跟音频轨道分离,以及解码出视频帧跟音频帧。
2. 现在成熟的APP,获得视频帧后基本上都会做一层视频帧的理解,比如做美颜的软件,需要提前去分析该帧来获得眼睛,脸轮廓等的位置,以便后边进行大眼,瘦脸等效果,这一步需要借助深度学习模型,后边我也会补上这一专题(移动端这么进入深度学习)
3. 第三步是去做具体的特效,将视频帧做为纹理输入,将第二步获得的信息作为参数输入,利用Opengl去做特效,这一步基本就是搭建好一个gl的框架和一些shader特效的编写,比如美白,大眼,贴纸等等,每一个都是专题,后边我也会写文章来具体分析
4. 最后就是将渲染出来的最终帧合成视频,这一步跟第一步差不多,要么用FFmpeg,要么用MediaCodec大家族
当然这只是简单带大家领略一下一个视频编辑框架是怎样的,具体里边会有各种多线程处理,音视频数据的解析,各种特效的实现都是非常值得大家学习的
最后也欢迎大家添加我的微信号,第一时间会在这里更新哦,有什么问题也欢迎私信与我交流
版权声明:本文标题:Android音视频编辑器架构图与分析 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726608186a1077818.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论