-
确保你的开发环境已经设置好,包括安卓NDK和相应版本的FFmpeg源码。
-
下载并配置FFmpeg源码。
git clone https://git.ffmpeg.org/ffmpeg.git
cd ffmpeg
-
使用NDK-build或者cmake来编译FFmpeg。
-
在ffmpeg路径下,新建build.sh , 下载MYSYS,安装好后,cd 到build.sh 所在路径。build.sh 中内容如下: 编译版本支持 :
armeabi-v7a', 'arm64-v8a', 'x86_64'
调整的自己的环境路径。
#ndk工具链路径 -可配置
#FFmpeg源码路径 修改成为自己的路劲
SRC_DIR=E:/ffmpeg/ffmpeg
DST_DIR=E:/ffmpeg/ffmpeg/build_an
#NDK路径
NDK=D:/Android/SDK/ndk/28.0.12433566/toolchains/llvm/prebuilt/windows-x86_64
API=30
cd $SRC_DIR
function build_onearch
{
echo ">> configure $CPU start"
./configure \
--enable-cross-compile \
--enable-postproc \
--enable-gpl \
--target-os=android \
--prefix=$DST_DIR/$ANDROID_ABI \
--cross-prefix=$CROSS_PREFIX \
--cc=$CC \
--cxx=$CXX \
--strip=$NDK/bin/llvm-strip \
--nm=$NDK/bin/llvm-nm \
--arch=$ARCH \
--sysroot=$NDK/sysroot \
--enable-shared --disable-static \
--enable-small --disable-programs --disable-doc \
--enable-asm --enable-neon \
--enable-jni --enable-mediacodec \
--disable-vulkan #fatal error: 'vulkan_beta.h' file not found
--cpu=$CPU \
echo "<< configure $CPU finish"
make clean
make
make install
}
#编x86-64动态库
ANDROID_ABI=x86-64
CPU=x86_64
ARCH=x86_64
CROSS_PREFIX=$NDK/bin/x86_64-linux/x64
CC=${CROSS_PREFIX}clang
CXX=${CROSS_PREFIX}clang++
build_onearch
#编arm64-v8a动态库
ANDROID_ABI=arm64-v8a
ARCH=arm64
CPU=armv8-a
CROSS_PREFIX=$NDK/bin/aarch64-linux-android$API-
CC=${CROSS_PREFIX}clang
CXX=${CROSS_PREFIX}clang++
build_onearch
#编armeabi-v7a动态库
ANDROID_ABI=armeabi-v7a
ARCH=arm
CPU=armv7-a
CROSS_PREFIX=$NDK/bin/armv7a-linux-androideabi$API-
CC=${CROSS_PREFIX}clang
CXX=${CROSS_PREFIX}clang++
build_onearch