ndk编译android系统下运行的ffmpeg配置

#!/bin/bash
#build by VinterYoung
export NDK_HOME=/media/system/juruiyuan/ndk/android-ndk-r19c
if [ "$NDK_HOME" = "" ]
then
    export NDK_HOME=./../android-ndk-r20b
    echo NDK variable not set , assuming ${NDK_HOME}
fi

HOST_TAG=linux-x86_64
TOOLCHAIN=$NDK_HOME/toolchains/llvm/prebuilt/$HOST_TAG
API=28

configure()
{
    CPU=$1
    PREFIX=`pwd`/android/$CPU
    ARCH=""
    SYSROOT=""
    CROSS_PREFIX=""
    CC=""
    CXX=""
    EXTRA_CFLAGS=""
    EXTRA_LDFLAGS=""
    EXTRA_LIBS=""

    if [ "$CPU" = "armv7a" ]
    then
        ARCH=arm
        SYSROOT=$TOOLCHAIN/sysroot
        CROSS_PREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-
        CC=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang
        CXX=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++
        EXTRA_CFLAGS="-march=armv7-a -marm -mtune=cortex-a8 -mfloat-abi=softfp -mfpu=neon "
    else
        ARCH=aarch64
        SYSROOT=$TOOLCHAIN/sysroot
        CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-
        CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
        CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++
        EXTRA_CFLAGS="-march=armv8-a "
    fi

CONFIG_FLAG="--target-os=android \
--prefix=$PREFIX \
--arch=$ARCH \
--sysroot=$SYSROOT \
--cross-prefix=$CROSS_PREFIX \
--cc=$CC \
--cxx=$CXX \
--enable-cross-compile \
--disable-shared \
--enable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
"

echo $CONFIG_FLAG --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" --extra-libs="$EXTRA_LIBS"
./configure $CONFIG_FLAG --extra-cflags="$EXTRA_CFLAGS" --extra-ldflags="$EXTRA_LDFLAGS" --extra-libs="$EXTRA_LIBS"
}

build()
{
    CPU=$1
    echo "build $CPU"
    configure $CPU
    make -j32
    make install
    
    if [ "$CPU" = "armv7a" ]
    then
        mkdir -p $(pwd)/../ffmpeg_prebuild/lib
        cp $(pwd)/android/$CPU/lib/*.a* $(pwd)/../ffmpeg_prebuild/lib

        mkdir -p $(pwd)/../ffmpeg_prebuild/include
        cp -rf $(pwd)/android/$CPU/include/* $(pwd)/../ffmpeg_prebuild/include/
    else
        mkdir -p $(pwd)/../ffmpeg_prebuild/lib64
        cp $(pwd)/android/$CPU/lib/*.so* $(pwd)/../ffmpeg_prebuild/lib64
        mkdir -p $(pwd)/../ffmpeg_prebuild/include
        cp -rf $(pwd)/android/$CPU/include/* $(pwd)/../ffmpeg_prebuild/include/
        #cp $(pwd)/prebuild.make $(pwd)/../ffmpeg_prebuild/Android.mk
        cp $(pwd)/Android.bp.prebuild $(pwd)/../ffmpeg_prebuild/Android.bp
        #cp $(pwd)/all-subdir-makefiles.make $(pwd)/../Android.mk
    fi
    make clean
}

make clean

build armv7a
 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值