用android-ndk-r21b 在linux上编译ffmpeg4.2.2
1,下载android-ndk-r21b 和 ffmpeg4.2.2
2,解压ndk和ffmpeg4.2.2
3,在解压的ffmpeg4.2.2目录下写两个shell文件,build-ndk-r21b-ffmpeg4_2_2-armv7.sh 和 build-ndk-r21b-ffmpeg4_2_2-arm64.sh,内容如下
build-ndk-r21b-ffmpeg4_2_2-armv7.sh
#!/bin/bash
API=21
#armv7-a
ARCH=armv7
PREFIX=../out-ffmpeg/$ARCH
TOOLCHAIN=/home/bili/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64
build()
{
./configure \
--prefix=$PREFIX \
--disable-static \
--enable-shared \
--enable-small \
--enable-gpl \
--disable-doc \
--disable-programs \
--disable-avdevice \
--enable-cross-compile \
--target-os=android \
--arch=$ARCH \
--cc=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-
make clean
make -j4
make install
}
build
build-ndk-r21b-ffmpeg4_2_2-arm64.sh
#!/bin/bash
API=21
#arm64 x86 x86_64 aarch64 i686 x86_64
ARCH=arm64
ARCH2=aarch64
PREFIX=../out-ffmpeg/$ARCH
TOOLCHAIN=/home/bili/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64
build()
{
./configure \
--prefix=$PREFIX \
--disable-static \
--enable-shared \
--enable-small \
--disable-doc \
--disable-programs \
--disable-avdevice \
--enable-cross-compile \
--target-os=android \
--arch=$ARCH \
--cc=$TOOLCHAIN/bin/$ARCH2-linux-android$API-clang \
--cross-prefix=$TOOLCHAIN/bin/$ARCH2-linux-android-
make clean
make -j4
make install
}
build
4,在解压的ffmpeg4.2.2目录下,分别执行两个sh文件即可编译完成。编译后的结果分别放在与ffmpeg4.2.2同级的out-ffmpeg目录下