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

相关推荐
来鸟 鸣间21 小时前
linux下ffmpeg源码编译
linux·运维·ffmpeg
Echo_NGC22371 天前
【FFmpeg使用指南】Part 2:滤镜图架构与信号处理
架构·ffmpeg·音视频·信号处理
Echo_NGC22371 天前
【FFmpeg使用指南】Part 1:核心架构与媒体流处理
ffmpeg·音视频·媒体·视频
ssxueyi1 天前
用 Claude Code 从零开发自己的Direct3D 硬件加速播放器
ffmpeg·ai编程·directx·视频播放器·从零开始·claude code·csdn征文活动
Yan_uuu1 天前
ubuntu18.04 安装 x264、ffmpeg、nv-codec-hearers 支持GPU硬件加速
c++·图像处理·ubuntu·ffmpeg
runner365.git2 天前
做一个基于ffmpeg的AI Agent智能体
人工智能·ffmpeg·大模型
彷徨而立2 天前
【FFmpeg】理解 av_packet_from_data 和 av_packet_unref 接口
ffmpeg
runner365.git2 天前
ffmpeg8.0合入whisper,语音识别模型终于进入ffmpeg
ffmpeg·whisper·语音识别
小徐敲java3 天前
视频推流服务器与FFmpeg 安装配置
服务器·ffmpeg·音视频
假装我不帅3 天前
ffmpeg操作mp3去除封面信息
ffmpeg