FFmpeg简介
FFmpeg是一个全球领先的多媒体框架,能够友好的在大部分设备实现解码、编码、转码、复用、解复用、流媒体、过滤和播放。谈到音视频处理必须提到雷霄骅博士(行内称为雷神),我想音视频开发的从业人员应该都看过雷神的博客,这里首先致敬一下雷神,博客地址:《雷霄骅的博客专栏》,分享了很多音视频方面的技术文章、开源代码以及 FFMPEG 源码的分析,无论对入门者还是资深开发,都有很大的价值。
本系列文章主要讲解Android平台对FFmpeg这个开源库的集成,实现一些Android相关的音视频处理的功能。作为一个非资深的Android音视频开发者,希望和大家共同学习,一起提升。
1. FFmpeg的编译
FFmpeg是使用C语言编写的库,移植到Android平台上需要编译为so文件,网上关于FFmpeg编译的资料很多,请自行搜索这里不再赘述。编译成功后,会在FFmpeg的根目录下会生成一个Android目录,包括一个include目录(一些头文件)和一些so文件。如果没有编译成功,也可以下载本文的源码(里面有我编译成功的so库和头文件)。
这里使用的IDE工具是Android Studio,需要配置java和ndk相关的环境变量,配置成功后我们就可以在Android Studio里面的Terminal命令窗口使用javah和ndk-build命令,这个很重要。
2. 在Android程序中打印FFmpeg版本信息
这里开始我们最简单的一个打印FFmpeg版本信息的Android程序,PS:Android平台中使用FFmpeg库,需要懂一些NDK和C++相关的知识。
-1-build.gradle文件的编写
在build.gradle文件的buildTypes中添加下面的内容,添加后的内容如下:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
sourceSets {
main {
jni.srcDirs = []
}
}
}