最近正在整理VideoEditor中相机处理相关的功能,接下来会讲到视频录制、声音采集相关的模块,需要用到音视频编码,在此之前,需要先将VideoEditor中涉及到的三方库拎出来讲一讲,如果不把VideoEditor所使用的的三方库先讲一下,后面的一系列文章大家可能会云里雾里的。先说明一下,我的文章不会罗列代码,我觉得没有用,因为对于想看你文章的人来说,最想知道的是思想,你在解决这个问题的时候是怎么想的?有什么心得体会?有什么难点?你能给别人传递不一样的思想就能证明这篇文章的价值。以后的文章都会遵循这样的原则。
这里还是要啰嗦一句,VideoEditor需要实现哪些功能?搞清楚需要实现哪些功能,才明白需要引入哪些库?为什么要引入这个库?Android或者iOS原生的方案有什么缺陷。VideoEditor其实主要要处理四种元素:
Android其实也提供了一批原生的音视频相关的类:MediaCodec、MediaExtractor、MediaMetadataRetriever等等,这些类可以实现部分解封装、解码的部分功能,也有一些问题,例如存在一些兼容性问题、功能实现不全、格式支持不全等等。完全在Java层完成一个VideoEditor,不仅不现实,而且不可能,所以各家在招收音视频工程师时都会要求考察C++,当然不会C++并不能阻止你成为一个音视频工程师,语言只是一个工具,你如果对底层原理有较深的理解的话,语言这种东西可以后天学习的。
下面列出了三方库的下载地址:
当然上面只是实现VideoEditor的基本的库,你如果想实现一些较为高级的功能,还需要一些算法,人脸识别、模型分割、动态插帧、超分算法,还有一些高级的渲染方式,这都是VideoEditor的加分项。这些应用的介绍都会在VideoEditor项目中介绍的。如果你想要上面三方库的编译脚本:建议参考:
https://github.com/JeffMony/JianYing。
如果你还有其他的问题,可以私信留下你的问题,我们一起交流。