将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" \
$ADDITIONAL
make clean
make -j12
make install
echo "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_android
echo "==================================================================="
#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
posted on 2025-09-20 17:15  ycfenxi  阅读(6)  评论(0)    收藏  举报