Android平台下FFmpeg类库一共包含下面8个:
上图是我编译好的arm架构的,我编译的FFmpeg的版本为2.6.9,NDK版本为R12b,编译环境为Linux。
1、Linux环境下NDK配置
1、安装vim
2、配置vim
vim /etc/vim/vimrc 打开vim的配置文件
set nu 显示行号
set tabstop tab键长度
set cursorline 高亮显示当前这一行
set ruler 右下角显示光标位置
3、下载NDK Linux环境的包
NDK下载链接
4、解压NDK安装包
5、配置NDK环境
vim ~/.bashrc 在末尾加上如下你NDK目录配置如下图:
然后保存退出
source ~/.bashrc 更新一下环境变量
执行ndk-build命令,如下图NDK配置完成
2、FFmpeg下载解压
FFmpeg下载地址
自行选择对应的版本
3、执行FFmpeg的configure文件
cd到FFmpeg解压目录
vim configure,修改几行命令
然后执行 ./configure 命令,如果没有安装yasm,执行 ./configure --disable-yasm。
4、编写编译shell脚本
我的脚本如下:
脚本中可以尽情发挥,FFmpeg有几大模块,你需要什么就配置什么,这样可以减少so库的大小。
5、编译
执行编写的shell脚本 ./buil_android.sh就完事了。就这么简单
6、题外话
如上编译,如果项目中几大模块都需使用的话,8个so库都的搬运到项目中去,CMAKE配置挺麻烦的,有没有简单的办法,只有一个so库呢?答案是肯定的,必须有啊,哈哈。
这次脚本跟上面不一样,这是编译生成的是.a文件,libavcodec.a,libavfilter.a,libswresample.a,libavformat.a,libavutil.a,libswscale.a,libpostproc.a,libavdevice.a
该脚本运行完后,会把上述的.a文件打包为1个.so文件:libffmpeg.so,这是make install后面的那一行命令的结果。