下载相关工具与源码
- 下载 Linux 的 NDK 工具包
https://developer.android.google.cn/ndk/downloads/index.html - 下载FFmpeg源码
可以去Github下载,也可以使用命令git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
环境准备
将FFmpeg源码与NDK工具包放入Linux环境,并解压。我这里使用的是Ubuntu虚拟机。
编写编译脚本
进入FFmpeg源码根目录,创建android_build.sh
脚本文件,里面写相关编译脚本。需要根据自己的源码与NDK来修改相关路径。
最好使用root用户来运行命令./android_build.sh
armv7-a
编译脚本
#!/bin/bash
make clean
SYSROOT=/home/jerry/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64/sysroot
TOOLCHAIN=/home/jerry/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64
CPU=armv7-a
ARCH=arm
API=29
CROSS_PREFIX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-
CC=${CROSS_PREFIX}clang
CXX=CC=${CROSS_PREFIX}clang++
PREFIX=./android/${CPU}_${API}/
OPTIMIZE_CFLAGS="-march=$CPU"
./configure --target-os=android \
--prefix=$PREFIX \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--cpu=$CPU \
--strip=$TOOLCHAIN/bin/llvm-strip \
--nm=$TOOLCHAIN/bin/llvm-nm \
--enable-shared \
--disable-static \
--disable-doc \
--disable-x86asm \
--disable-yasm \
--disable-symver \
--enable-gpl \
--cross-prefix=$CROSS_PREFIX \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make -j4
make install
# chmod -R 777 ./
armv8-a
编译脚本
#!/bin/bash
make clean
SYSROOT=/home/jerry/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64/sysroot
TOOLCHAIN=/home/jerry/android-ndk-r24/toolchains/llvm/prebuilt/linux-x86_64
CPU=armv8-a
ARCH=arm64
API=29
CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android$API-
CC=${CROSS_PREFIX}clang
CXX=${CROSS_PREFIX}clang++
PREFIX=./android/${CPU}_${API}/
OPTIMIZE_CFLAGS="-march=$CPU"
./configure --target-os=android \
--prefix=$PREFIX \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--cpu=$CPU \
--strip=$TOOLCHAIN/bin/llvm-strip \
--nm=$TOOLCHAIN/bin/llvm-nm \
--enable-shared \
--disable-static \
--disable-doc \
--disable-x86asm \
--disable-yasm \
--disable-symver \
--enable-gpl \
--cross-prefix=$CROSS_PREFIX \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make -j4
make install
# chmod -R 777 ./