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
 

相关推荐

  1. ndk编译android系统运行ffmpeg配置

    2024-04-30 20:12:01       34 阅读
  2. ubuntu使用ndk编译libevnet

    2024-04-30 20:12:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-30 20:12:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-30 20:12:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-30 20:12:01       82 阅读
  4. Python语言-面向对象

    2024-04-30 20:12:01       91 阅读

热门阅读

  1. 使用通义千问,为汽车软件需求生成测试用例

    2024-04-30 20:12:01       28 阅读
  2. WebSocket 的封装

    2024-04-30 20:12:01       38 阅读
  3. Android Glide 获取动图的第一帧

    2024-04-30 20:12:01       33 阅读
  4. 原生小程序分页/上拉加载(通过页面生命周期)

    2024-04-30 20:12:01       30 阅读
  5. Czi.算法学习(三)

    2024-04-30 20:12:01       33 阅读