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-androideabiAPI-clang

CXX=TOOLCHAIN/bin/armv7a-linux-androideabiAPI-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-androidAPI-clang

CXX=TOOLCHAIN/bin/aarch64-linux-androidAPI-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

相关推荐
daizhe16 小时前
基于JavaCV实现FFmpeg设置视频moov前置以及截取封面图片
ffmpeg·音视频·javacv
一点晖光3 天前
ffmpeg合并视频
ffmpeg·音视频
简鹿视频3 天前
mp4视频转换成avi格式攻略
ffmpeg·音视频·视频编解码·格式工厂
呆萌小新@渊洁3 天前
Linux离线环境安装ffmpeg
linux·ffmpeg·php
番茄啊3 天前
FFmpeg 使用RTSP服务器录屏并推流
ffmpeg
CHS_Lab4 天前
“非标”MP4文件的恢复方法
ffmpeg·数据恢复·视频恢复·mp4恢复
一点晖光4 天前
ffmpeg视频分辨率转换
ffmpeg·音视频
数据库生产实战4 天前
Oracle的DBMS_SPACE.SPACE_USAGE和dba_segments计算的对象块数为什么不一样?表空间异常暴增的秘密可能就在这里!
oracle·ffmpeg·dba
hjjdebug4 天前
ffmpeg -map 是什么意思?
ffmpeg·map