Android 编译 ffmpeg7.1.1
将ffmpeg-7.1.1目录中configure文件中的:
#SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
#LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
#SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
#SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'#替换为:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
编译脚本:
#!/bin/bash
NDK=/Users/xuyan/Library/Android/sdk/ndk/26.1.10909125
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64
API=26
OPENSSL=/Users/xuyan/Desktop/openssl-3.5.2/function build_android
{
echo "Compiling FFmpeg for $CPU"
./configure \--prefix=$PREFIX \--enable-shared \--enable-static \--enable-protocol=http \--enable-protocol=https \--enable-openssl \--enable-protocol=ssl \--enable-protocol=rtsp \--enable-protocol=rtmp \--enable-protocol=tcp \--enable-protocol=udp \--enable-protocol=file \--enable-protocol=tls \--enable-network \--disable-doc \--disable-programs \--disable-avdevice \--disable-avfilter \--disable-postproc \--disable-symver \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--enable-pic \--disable-gpl \--target-os=android \--arch=$ARCH \--cpu=$CPU \--cc=$CC \--cxx=$CXX \--enable-cross-compile \--sysroot=$TOOLCHAIN/sysroot \--cross-prefix=$CROSS_PREFIX \--extra-cxxflags="-fPIC -DPIC" \--extra-ldflags="-L$OPENSSL/$CPU/lib -fPIC" \--extra-cflags="-I$OPENSSL/$CPU/include -Os -fPIC -DPIC -DANDROID $OPTIMIZE_CFLAGS" \$ADDITIONALmake cleanmake -j12make installecho "The Compilation of FFmpeg for $CPU is completed"
}echo "Begining Compiling FFmpeg for $CPU without ========= neon ========"
#armv8-a
ARCH=arm64
CPU=armv8-a
CC=$TOOLCHAIN/bin/aarch64-linux-android${API}-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android${API}-clang++
PREFIX=$(pwd)/android/$CPU
CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"
ADDITIONAL=""
build_androidecho "==================================================================="
#armv7-a
ARCH=arm
CPU=armv7-a
CC=$TOOLCHAIN/bin/armv7a-linux-androideabi${API}-clang
CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi${API}-clang++
CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"
ADDITIONAL=""
build_android# echo "Begining Compiling FFmpeg for $CPU with ========= neon ========"
# #armv8-a
# ARCH=arm64
# CPU=armv8-a
# CC=$TOOLCHAIN/bin/aarch64-linux-android${API}-clang
# CXX=$TOOLCHAIN/bin/aarch64-linux-android${API}-clang++
# PREFIX=$(pwd)/android/$CPU-neon-hard
# CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
# OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU "
# ADDITIONAL="--enable-asm \
# --enable-neon \
# --enable-jni \
# --enable-mediacodec \
# --enable-decoder=h264_mediacodec \
# --enable-hwaccel=h264_mediacodec \
# --enable-decoder=hevc_mediacodec"
# build_android# #armv7-a
# ARCH=arm
# CPU=armv7-a
# CC=$TOOLCHAIN/bin/armv7a-linux-androideabi${API}-clang
# CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi${API}-clang++
# CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
# PREFIX=$(pwd)/android/$CPU-neon-hard
# OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "
# ADDITIONAL="--enable-asm \
# --enable-neon \
# --enable-jni \
# --enable-mediacodec \
# --enable-decoder=h264_mediacodec \
# --enable-hwaccel=h264_mediacodec \
# --enable-decoder=hevc_mediacodec"
# build_android# echo "==================================================================="
# #x86
# ARCH=x86
# CPU=x86
# CC=$TOOLCHAIN/bin/i686-linux-android${API}-clang
# CXX=$TOOLCHAIN/bin/i686-linux-android${API}-clang++
# CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
# PREFIX=$(pwd)/android/$CPU
# OPTIMIZE_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
# ADDITIONAL=""
# build_android# echo "==================================================================="
# #x86_64
# ARCH=x86_64
# CPU=x86-64
# CC=$TOOLCHAIN/bin/x86_64-linux-android${API}-clang
# CXX=$TOOLCHAIN/bin/x86_64-linux-android${API}-clang++
# CROSS_PREFIX=$TOOLCHAIN/bin/llvm-
# PREFIX=$(pwd)/android/$CPU
# OPTIMIZE_CFLAGS="-march=$CPU -msse4.2 -mpopcnt -m64 -mtune=intel"
# ADDITIONAL=""
# build_android