首先,被这部分烦的不行的可以去github里clone一些别人的成品轻松拿到适合Android的编译结果
说下自己的环境
win10 x64
VMware® Workstation 12 Pro
ubuntu 14.04 LTS
android-ndk-r10b
ffmpeg3.0.2
Step1
android-ndk-r10b的安装,超级简单,去官网按照自己的配置下载一个,然后放到你习惯的目录下(我直接放/目录下了)。最后export配置下就好了
export NDK_HOME=/android-ndk-r10b
export PATH=$NDK_HOME:$PATH
Step2
到ffmpeg的官网下载最新的源码包http://www.ffmpeg.org/。并解压到你习惯的位置(我这里依然解压在/根目录下)然后对他的配置文件稍作修改,原因是为了让编译出来的so库适合Android。
su gedit /ffmpeg-3.0.2/configure
将
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
改成
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
这里无脑改即可,不需要做其它修改。
Step3
这步卡死了枭雄无数,关键在于网上很多说明不是很详细;其实就是一个configure的参数(至于参数的意思自己–help查看哈),ffmpeg的参数比较多根据个人的不同要求可以有不同的配置,网上很多写成*.sh的文件都是可以用的,只不过不清楚里面几个变量的意思含义的话很容易报错卡这里。我也是在这里卡了好一会,感谢github上大神的详解,这里抄袭下:
1.指定临时目录
export TMPDIR=/home/djia/tmpdir
指定一个临时目录,可以是任何路径,但必须保证存在,ffmpeg编译要用;
2.指定NDK路径
NDK=/home/djia/android/android-ndk-r10