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

相关推荐
VidDown11 小时前
从一堆脚本到能维护的系统:视频处理管道的工程化
服务器·ffmpeg·音视频·视频编解码
FlightYe1 天前
视界原理之2D视频(二):视频文件里有什么
android·linux·网络·c++·ffmpeg·音视频·aac
可乐鸡翅yeah_1 天前
hls.js 切换多个视频源,新手开发常见踩坑
开发语言·前端·javascript·ios·ffmpeg·音视频·safari
程序员老陆1 天前
FFmpeg 日志级别深度解析:从 AV_LOG_ERROR 到 AV_LOG_TRACE 的完整指南
ffmpeg·音视频
用户2181697049302 天前
FFmpeg (一)使用opencv实现马赛克
ffmpeg
cpp_learner2 天前
FFmpeg RTSP播放时钟实现揭秘
ffmpeg
程序员老陆9 天前
WHIP 与 WHEP:WebRTC 直播的标准化入口与出口
ffmpeg·音视频·webrtc·whip·whep
可乐鸡翅yeah_10 天前
混合内容 Mixed‑Content 安全策略,HLS HTTPS 页面加载 HTTP 资源排错实战
运维·ffmpeg·音视频·媒体·m3u8
刘广睿11 天前
视频导出为什么发灰?色彩空间与色彩范围(BT.601/709/2020)的 ffmpeg 转换实战
ffmpeg·音视频·视频处理·色彩空间·素材管理
yivifu11 天前
精选FFmpeg 实用音频视频转换命令集
ffmpeg·音视频转换