将该文件中的如下四行:
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)'
编写build_android.sh
有Linux下编译源代码经验的都知道,在make之前一般都有./configure -xxxx等配置参数操作,但配置众多,这里不一一叙述,编写脚本文件更方便后续修改操作。
build_android.sh内容如下:
#!/bin/bash
NDK=/home/chow/android-ndk-r9d
SYSROOT=$NDK/platforms/android-15/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffserver \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
这里解析一下这个脚本文件,NDK目录是android-ndk-r9d-linux-x86.tar.bz2是解压后的文件夹绝对路径,可以按情况修改;android-15是因为本人所使用的是android4.0.3版本,也可以按需修改。NDK,SYSROOT,TOOLCHAIN目录要确保存在,可能与上面提供的路径不同,可以按情况修改。
修改build_android.sh的权限
chmod 777 build_android.sh
执行build_android.sh
./build_android.sh
编译
make -j8
make install
编译完成后,在FFmpeg目录下有一个android目录,里面有我们需要的.so文件与头文件,这都是后续android开发需要的。
库文件如下:
头文件如下:
至此,FFmpeg for android编译完毕,后面会继续记录android开发的操作。