环境:
ffmpeg: v3.0.12 (目前最高版本4.1,如果你不懂c,请不要去尝试最高版本,会报c语言错误)
下载地址:
https://www.ffmpeg.org/download.html#releases
ndk: ndk-r14b (尝试过r16b,报c语言错误)
下载地址:
https://developer.android.com/ndk/downloads/older_releases
版本很重要,真的,请慎重选择!!!
配置脚本:解压下载的ffmpeg文件,查找configure文件,用sublime打开,进行下面的修改,目的是修改生成的文件后缀名为.so:
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文件,vi build_android.sh
, 名字请随意,然后copy下面的内容,地址需要自行修改:
PREFIX=android-build
#设置你自己的NDK位置,这个地址很重要,一定要写对
NDK_HOME=/Users/sxk/Downloads/android-ndk-r14b
#设置你自己的平台,这上Mac上的,linux换成linux-x86_64
NDK_HOST_PLATFORM=darwin-x86_64
COMMON_OPTIONS="\
--target-os=android \
--disable-static \
--enable-shared \
--enable-small \
--disable-programs \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-doc \
--disable-symver \
--disable-asm \
"
function build_android {
./configure \
--libdir=${PREFIX}/libs/armeabi-v7a \
--incdir=${PREFIX}/includes/armeabi-v7a \
--pkgconfigdir=${PREFIX}/pkgconfig/armeabi-v7a \
--arch=arm \
--cpu=armv7-a \
--cross-prefix="${NDK_HOME}/toolchains/arm-linux-androideabi-4.9/prebuilt/${NDK_HOST_PLATFORM}/bin/arm-linux-androideabi-" \
--sysroot="${NDK_HOME}/platforms/android-23/arch-arm" \
--extra-cflags="-march=armv7-a -mfloat-abi=softfp -mfpu=neon" \
--extra-ldexeflags=-pie \
${COMMON_OPTIONS}
make clean
make -j8 && make install
};
build_android
运行 ./build_android.sh
你就会在文件夹下看到android-build文件,里面的lib就是生成的so文件。