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

相关推荐
开开心心就好4 小时前
课堂随机点名工具,绿色版免安装双击即用
java·服务器·前端·ffmpeg·音视频·perl·symfony
小鹿软件办公5 小时前
不依赖 FFmpeg 也能录屏?ShareX 22 新增录屏等十余款新工具
ffmpeg·sharex·免费录屏工具
lll23526917796 小时前
Android APP短视频音频提取,主流工具怎么选
ffmpeg·音视频
成都旺小宝科技1 天前
首访决策人没来,AI一客一策两天成交!
大数据·人工智能·机器学习·ffmpeg·语音识别
余槐i1 天前
加了Cookie yt-dlp仍报HTTP 403:3个容易漏的请求头差异
python·http·ffmpeg·开发工具·yt-dlp
余槐i1 天前
yt-dlp 线程开到 16 反而更慢:1000 个视频的实测与限速原因
性能优化·ffmpeg·自动化·开发工具·yt-dlp
Maxwin2 天前
Manim 竖屏画布选 9×16 还是 4.5×8?从 font_size 和每单位像素数说起
python·ffmpeg
FlightYe2 天前
音视频修炼之容器与协议(一):MP4和MOV的box剖析
android·linux·c++·ffmpeg·音视频
开开心心就好6 天前
手机虚拟化学实验室,混合燃烧都能模拟
jupyter·智能手机·ffmpeg·计算机外设·电脑·音视频·visual studio
VidDown6 天前
用户说“卡顿“,服务器一切正常:播放质量监测与 QoE 指标
运维·服务器·ffmpeg·音视频·视频