用windows的ubuntu子系统来编译,这样会省很多麻烦和操作非常简便,比如不用去安装VMware和下载linux系统安装,全部文件代码都是在Windows的磁盘下,可以直接编辑。
1、安装ubuntu子系统,已安装的请忽略这一步,参考链接:Windows10安装Ubuntu桌面子系统,新装的系统很需要装一些工具,比如git、vim、make等。
2、下载ffmpeg源码和ndk。使用git下载源码,这样可以用命令来切换想要的哪一个版本,用的是3.2分支,FFmpeg下载地址。ndk使用android-ndk-r14b,ndk下载地址。
3、修改ffmpeg的configure,对应的字段修改为以下内容,因为android只能加载*.so结尾的动态库。
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_linkS='$(SLIBNAME)'
4、编辑适用arm的脚本。编译脚本要适配对应ffmpeg版本和ndk版本,不然一些编译链工具会找不到而编译失败。
#!/bin/bash make clean export NDK=/mnt/f/13_Android/01ffmpeg/android-ndk-r14b export SYSROOT=$NDK/platforms/android-9/arch-arm/ export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 export CPU=arm export PREFIX=$(pwd)/android/$CPU export ADDI_CFLAGS="-marm" ./configure --target-os=linux --prefix=$PREFIX --arch=arm --disable-doc --enable-shared --disable-static --disable-yasm --disable-symver --enable-gpl --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-doc --disable-symver --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- --enable-cross-compile --sysroot=$SYSROOT --extra-cflags="-Os -fpic $ADDI_CFLAGS" --extra-ldflags="$ADDI_LDFLAGS" $ADDITIONAL_CONFIGURE_FLAG make clean make make install



