音视频开发中要用到的,之前修改编译没问题,现在记录下,方便下次使用
可编译 arm64-v8a和armv7-a架构的
ffmpeg集成x264需要编译好先编译好x264然后在configure 指令中的extra-cflags加入x264编译后的头文件路径和库的路径
1.ffmpeg编译脚本
#!/bin/bash
export NDK=/home/ubuntu/android-ndk-r21d #这里配置先你的 NDK 路径
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
function build_android
{
   
	./configure \
		--prefix=$PREFIX \
		--enable-gpl   \
		--enable-static \
		--disable-shared \
		--disable-x86asm \
		--disable-doc \
		--cross-prefix=$CROSS_PREFIX \
		--target-os=android \
		--arch=$ARCH \
		--cpu=$CPU \
		--cc=$CC \
		--cxx=$CXX \
		--enable-cross-compile \
		--sysroot=$SYSROOT \
		--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS -L/home/ubuntu/x264/android/arm/lib" \
		--extra-ldflags="$ADDI_LDFLAGS -I/home/ubuntu/x264/android/arm/include"
	make clean
	make -j16
	make install
	echo "============================ build android arm64-v8a success =========================="
}
#arm64-v8a
#ARCH=arm64
#CPU=armv8-a
#API=21
#CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
#CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++
#SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
#CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-
#PREFIX=$(pwd)/android/$CPU
#OPTIMIZE_CFLAGS="-march=$CPU"
#armv7-a
ARCH=arm
CPU=armv7-a
API=21
CC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang
CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "
build_android
echo $PREFIX
  
- x264编译脚本
 
#!/bin/sh
ANDROID_NDK=/home/ubuntu/android-ndk-r21d
SDK_VERSION=21
build() {
   
	ARCH=$1
if [ "$ARCH" = "arm64" ]; then
    PLATFORM_PREFIX="aarch64-linux-android-"
    CCPREFIX=aarch64-linux-android
    HOST="aarch64"
    PLATFORM_VERSION=4.9
elif [ "$ARCH" = "arm" ]; then
    PLATFORM_PREFIX="arm-linux-androideabi-"
    HOST="arm"
    PLATFORM_VERSION=4.9
else
    echo "unsupport ARCH:$ARCH."
    exit
fi
PREFIX=~/android/${ARCH}
SYSROOT=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
TOOLCHAIN=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64
CC=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/${CCPREFIX}${SDK_VERSION}-clang
echo "helsmdlsd+++++++++++++++++$CC"
echo "helsmdlsd+++++++++++++++++$SYSROOT"
CXX=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/${CCPREFIX}${SDK_VERSION}-clang++
CROSS_PREFIX=$TOOLCHAIN/bin/${PLATFORM_PREFIX}
NM=$TOOLCHAIN/bin/${PLATFORM_PREFIX}nm
./configure \
    --prefix=$PREFIX \
       --cross-prefix=$CROSS_PREFIX \
  --sysroot=$SYSROOT \
       --host=arm-linux \
  --prefix=$PREFIX \
      --enable-shared \
      --enable-static \
  --disable-asm \
   --enable-pic \
   --disable-cli \
       --host=arm-linux \
make clean
make -j4
make install
}
build arm
build arm64

京公网安备 11010502036488号