目前市面上音视频交互框架基本上分两种,一个是类似抖音快手那样的从相机交互界面出发的,往相机帧加美颜,贴纸等各种特效的交互,另一个是类似剪映,必剪等更专业一点的视频编辑软件,它增加了多轨道,转场等一些更复杂的效果。

  

不过万变不离其宗,都是解出视频帧,然后对视频帧做特效,然后合成视频这一流程。接下来我们就来讲讲整个流程中每个阶段我们会用到什么技术

1.  解码出视频帧与音频帧:这里有两个技术方案,用FFmpeg软解和用MediaCodec硬解。用FFmepg软解的话基本都是在FFmpeg的API上进行操作,不过需要自己去编译FFmpeg的so库,且得考虑包大小问题。用MediaCodec的话首先是用Android的多媒体框架里的MediaExtractor,MediaCodec等类来进行音频文件的视频跟音频轨道分离,以及解码出视频帧跟音频帧。

2. 现在成熟的APP,获得视频帧后基本上都会做一层视频帧的理解,比如做美颜的软件,需要提前去分析该帧来获得眼睛,脸轮廓等的位置,以便后边进行大眼,瘦脸等效果,这一步需要借助深度学习模型,后边我也会补上这一专题(移动端这么进入深度学习)

3. 第三步是去做具体的特效,将视频帧做为纹理输入,将第二步获得的信息作为参数输入,利用Opengl去做特效,这一步基本就是搭建好一个gl的框架和一些shader特效的编写,比如美白,大眼,贴纸等等,每一个都是专题,后边我也会写文章来具体分析

4. 最后就是将渲染出来的最终帧合成视频,这一步跟第一步差不多,要么用FFmpeg,要么用MediaCodec大家族

当然这只是简单带大家领略一下一个视频编辑框架是怎样的,具体里边会有各种多线程处理,音视频数据的解析,各种特效的实现都是非常值得大家学习的

最后也欢迎大家添加我的微信号,第一时间会在这里更新哦,有什么问题也欢迎私信与我交流

Android音视频编辑器架构图与分析相关推荐

  1. Android音视频视频基础(H264)二 SPS分析

    学习目标: SPS分析与读取 图中的标识为哥伦布编码的,均需要通过哥伦布编码解析实际值. 学习内容: 首先肯定得截个sps数据的图来看分析了. 上图红框内就是sps数据了.67是sps标识,不清楚的小 ...

  2. Android音视频入门及架构介绍

    一.多媒体基础 音视频格式 一个视频文件的格式由封装格式+音频码流格式+视频码流格式+字幕流组成. 如下为一个视频文件的信息,是asf封装的wmav2音频+mpeg4视频. 常用的视频格式 MPEG系 ...

  3. Android 音视频开发学习思路

    Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...

  4. Android音视频点/直播模块开发

    前言 随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能,那么作为开发一个小白,如何快速学习音视频基础知识,了解音视频编解码的传输协议,编解码方式 ...

  5. Android 音视频采集与软编码总结

    请尊重原创,转载请注明出处:http://blog.csdn.net/mabeijianxi/article/details/75807435(本文已在 "任玉刚" 微信公众号发布 ...

  6. 反思 | Android 音视频缓存机制的系统性设计

    反思 系列博客是我的一种新学习方式的尝试,该系列起源和目录请参考 这里 . 背景 在自媒体的时代,音视频播放 俨然已成为内容类型 APP 最基础的能力,对于 Android 开发者而言,无论是 Goo ...

  7. 网易云信流媒体首席架构师:新一代音视频技术架构如何构建?

    前沿:5G 与 AI 时代已来,音视频技术持续迭代升级,网易云信推出了全新一代音视频技术架构.新一代音视频架构有哪些核心技术?各技术在线上场景又有哪些落地实践方案? 文|吴桐 网易云信流媒体首席架构师 ...

  8. Android音视频API - MediaCodec/MediaMuxer/MediaStore/MediaController等

    AudioTrack播放音频PCM.[Android] 混音器AudioMixer. MediaPlayer/MediaRecorder, AudioTrack/AudioRecorder, Medi ...

  9. Android 音视频难学?音视频(流媒体)开发学习也有套路

    我们都知道音视频流媒体开发这块的知识比较纷繁复杂,对新手很不友好,自学难度大,想要们既需要比较扎实的C/C++基础,又需要有很多的工程/项目经验,今天就从音视频开发/开源框架/就业方向分析,为广大开发 ...

  10. 【Android 音视频开发打怪升级:FFmpeg音视频编解码篇】一、FFmpeg so库编译

    转自:https://juejin.im/post/5e130df55188253a8b42ebac 目录 一.Android音视频硬解码篇: 1,音视频基础知识 2,音视频硬解码流程:封装基础解码框 ...

最新文章

  1. 计算某天是星期几的方法
  2. HDU4510 小Q系列故事——为什么时光不能倒流【时间计算】
  3. 服务器电源控制芯片,服务器电源中的PFC控制芯片HA16141的应用.pdf
  4. 【博客管理】博客新建栏目的添加—HTML格式书写规范
  5. 姜启源 数学建模 第十章 软件开发人员的薪金Matlab代码
  6. Director 介绍
  7. iar烧录程序步骤_如何利用IAR单片机编程软件建立烧录程序
  8. 【LDO稳压器】SOT23-5封装-RT9193-RT9013-LP2992-LP5907设计
  9. 财报汇总 | 中国生物制药、格林酒店、海亮教育、洪恩教育等5家企业公布最新业绩...
  10. android卡在开机画面,请教:用迅为4412开发板开机时卡在Android静止画面
  11. visio2016 数据库模型图_越来越火的图数据库究竟是什么?
  12. Web安全—常见加密编码方式详解(持续更新)
  13. 辛弃疾最有代表性的十首词
  14. Scala的下载与安装
  15. Poser v7.0 1DVD(3D 角色动画)
  16. protobuf repeated数组类型的使用
  17. 什么是JavaBeans
  18. 变频电源是否要加功率补偿器?为什么?
  19. 编程题:网上题库网站
  20. sharepoint主题样式定制

热门文章

  1. robocode基本原理之坐标锁定
  2. Ubuntu18.04安装TIM、微信
  3. python decimal模块_实例详解Python模块decimal
  4. android o系统字体下载,fonts软件安卓下载-fonts字体 安卓版v4.0.0-PC6安卓网
  5. python刷课系统教师_让教师只想刷课的继续教育不能继续了
  6. Latex参考文献引用格式,期刊参考文献引用格式注意事项
  7. python统计代码行数_使用Python简单快速实现统计代码行数
  8. linux 中文字体 推荐,适合阅读的中文字体
  9. word文档如何设置多级标题
  10. 调试at91-sama5d27遇到的一些问题(3)