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

相关推荐
没有余地 EliasJie15 小时前
FFmpeg介绍与ESP32资源受限下的视频流传输优化策略
单片机·物联网·ffmpeg
不想看见40415 小时前
Qt+FFmpeg 极简播放器示例【音视频方向简单讲解】
qt·ffmpeg·音视频
郭涤生16 小时前
FFmpeg 最常用的 200 条命令分类整理
ffmpeg
yikegis17 小时前
TOP 5 在线音频剪辑软件 免费(2026)
人工智能·ffmpeg·音视频·语音识别·学习方法·canva可画
无巧不成书02183 天前
FFmpeg 保姆级安装教程!Windows/macOS/Linux全平台覆盖,
windows·macos·ffmpeg
kkoral5 天前
OpenCV 与 FFmpeg 的关系
opencv·ffmpeg
kkoral5 天前
如何在 Python 中使用 OpenCV 调用 FFmpeg 的特定功能?
python·opencv·ffmpeg
山栀shanzhi5 天前
【FFmpeg】音视频MP4封装格式转封装MOV
ffmpeg·音视频
山栀shanzhi5 天前
【FFmpeg】是什么是未压缩的裸流?
c++·ffmpeg
Maverick065 天前
02-SQL执行计划与优化器:Oracle是怎么决定“该怎么查“的
数据库·sql·oracle·ffmpeg