1.编译要求
Ubuntu 14.04 lts 64位
ffmpeg-3.1.3
android-ndk-r12b
2.编译步凑
1.下载ffmpeg 3.13 源码
https://github.com/FFmpeg/FFmpeg/releases/tag/n3.1.3
下载完后解压,我的解压目录是 /home/wh/ffmpeg-3.1.3
2.安装yasm:
sudo apt-get install build-essential git pkg-config yasm
3.下载NDK r12b
https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip
下载完后解压,我的解压目录是 /home/wh/android-ndk-r12b
4.在ffmpeg 的源码目录下面创建编译脚本 build.sh ,脚本内容如下:
NDK="/home/wh/android-ndk-r12b"
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
function build_one
{
./configure --prefix=$PREFIX \
--enable-shared --disable-static \
--disable-doc --disable-ffmpeg \
--disable-ffplay --disable-ffprobe \
--disable-ffserver --disable-avdevice \
--disable-doc --disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android --arch=arm --enable-cross-compile \
--sysroot=$SYSROOT --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" $ADDITIONAL_CONFIGURE_FLAG
make clean
make -j $(nproc)
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
注意:上面的脚本里面的NDK 路径要改为你存放的ndk 路径
5.进入ffmpeg 源代码目录里面 执行如下命令:
sudo su
会提示你输入密码,输入密码后会获得root权限
6.执行如下命令进行编译:
sudo bash build.sh
编译完成后会在源码目录下面生成一个android 的文件夹,里面就是生成的静态库,如下所示: