05.音视频编码解码及音视频混合

yangchong211 / 文 发表于2018-02-07 18:53 次阅读

目录介绍

  • 1.做Android视频编辑的可行性开源方案
  • 1.1 第三方流行框架
  • 1.2 Android自带框架
  • 1.3 这些方案功能分析
  • 1.4 这些方案学习门槛分析
  • 2.使用系统API进行音视频编码
  • 2.1 待更新实现
  • 3.对音视频进行解码
  • 3.1 待更新实现
  • 4.对音频如何混音添加背景音乐
  • 4.1 待更新实现

1.做Android视频编辑的可行性开源方案

1.1 第三方流行框架

  • 大家熟知的ffmpeg,将ffmpeg移植到anroid平台,编译成so文件,由jni 调用,可以实现音视频的分离、裁剪、拼合、加字幕、滤镜等功能。

1.2 Android自带框架

  • android 自带的MediaCodec 框架,MediaCodec框架底层调用的是StageFright库,StageFright库是默认封装在android系统里面的

1.3 这些方案功能分析

  • 1.3.1 ffmpeg功能分析
  • ffmpeg 无疑排第一位,他集合了视频编解码、视频滤镜、流媒体推流、音频各种特效等等,基本上你能想到的功能都在里面。
  • 在网上看到说,国内像暴风,某某影音,某某视频等等都用到了该开源框架,

  • 1.3.1 MediaCodec功能分析
  • MediaCodec涵盖了音视频解复用、音频解码、视频解码、音频编码、视频编码、音视频合并的整个流程。跟ffmpeg相比,MediaCodec 更接近底层硬件。这个方案如果想要实现视频的滤镜、字幕、拼接等功能的话,需要自己配合OpenGL ES 来实现,另外,音视频拼接的话,要考虑到不同音频采样率的重采样问题,音频重采用问题,需要懂得傅立叶变换相关的离散信号变换方法,如果要实现音频特效,如变声、均衡器的话,也需要懂得上述信号变换方法。

1.4 这些方案学习门槛分析

  • 如果只是做视频转码、加文字、图片特效等,ffmpeg和MediaCodec 旗鼓相当。如果是要拼接视频、做音频的变声、均衡器特效的话,MediaCodec是难度最高的,因为这一切需要你从底层原理做起。
  • 运行效率:MediaCodec硬解硬编最快,ffmpeg硬解硬编方案稍慢。
  • 稳定性: MediaCodec和ffmpeg 的硬解硬编方案旗鼓相当。
  • 打包占用空间:国内最得最好的ffmpeg硬解硬编方案,其so文件在10.几M,MediaCodec由于是纯java 代码,占用空间很容易做到几百K甚至几十K。

5.其他问题说明

5.1 版本更新情况

  • v1.0.0 2017年12月8日
  • v1.0.1 2018年2月2日

5.2 参考链接

  • Android硬编码——音频编码、视频编码及音视频混合:http://blog.csdn.net/junzia/article/details/54018671
  • android MediaCodec 音频编解码的实现——转码:https://www.cnblogs.com/Sharley/p/5964490.html
  • Android音频开发(5):音频数据的编解码:http://blog.51cto.com/ticktick/1760191
  • Android 音视频编辑经验总结及开源工程分享:https://www.cnblogs.com/jerrychen33/p/8148993.html

5.2 个人博客

收藏 赞 (0) 踩 (0)