您的位置:首页 > 移动开发 > Android开发

mac下 ffmpeg 编译到android平台(支持 frei0r)

2016-05-12 17:35 1566 查看
#!/bin/bash

# set the base path to your Android NDK (or export NDK to environment)

if [[ "x$NDK_BASE" == "x" ]]; then
NDK_BASE=/Users/zd/androidStudio/ndk/android-ndk-r10e
echo "No NDK_BASE set, using $NDK_BASE"
fi
#编译外部文件临时目录
#export TMPDIR=/usr/local/include #默认目录 tmp

NDK_PLATFORM_VERSION=16
NDK_ABI=arm
NDK_COMPILER_VERSION=4.9
NDK_SYSROOT=$NDK_BASE/platforms/android-$NDK_PLATFORM_VERSION/arch-$NDK_ABI
NDK_UNAME=`uname -s | tr '[A-Z]' '[a-z]'` # Convert Linux -> linux
HOST=$NDK_ABI-linux-androideabi
NDK_TOOLCHAIN_BASE=$NDK_BASE/toolchains/$HOST-$NDK_COMPILER_VERSION/prebuilt/$NDK_UNAME-x86_64
CC="$NDK_TOOLCHAIN_BASE/bin/$HOST-gcc --sysroot=$NDK_SYSROOT"
LD=$NDK_TOOLCHAIN_BASE/bin/$HOST-ld

BUILD_PATH=/Users/zd/Desktop/ffmpeg-2.8.4

./configure \
$DEBUG_FLAG \
--arch=arm \
--target-os=linux \
--enable-runtime-cpudetect \
--enable-pic \
--enable-frei0r \
--enable-filter=frei0r \
--enable-gpl \
--disable-shared \
--enable-static \
--cross-prefix=$NDK_TOOLCHAIN_BASE/bin/$NDK_ABI-linux-androideabi- \
--sysroot="$NDK_SYSROOT" \
--extra-cflags="-pie -fPIE -march=armv6 -L/usr/local/include -L/Users/zd/androidStudio/ndk/android-ndk-r10e/platforms/android-16/arch-arm/usr/include" \
--extra-ldflags="-pie -fPIE -L/usr/local/lib -L/usr/local/lib -L/Users/zd/androidStudio/ndk/android-ndk-r10e/platforms/android-16/arch-arm/usr/lib" \
--enable-ffmpeg \
--enable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-network \
--enable-decoder=h264 \
--enable-decoder=aac \
--enable-vdpau \
--enable-decoder=h264_vdpau \
--enable-parser=h264 \
--enable-version3 \
--enable-w32threads \
--enable-libx264 \
--enable-encoder=libx264 \
--enable-yasm \
--enable-small \


#添加了cflags 和 ldflags 的路径 libx264路径找到安装/usr/local/include已经变移到系统
frei0r:/Users/zd/androidStudio/ndk/android-ndk-r10e/platforms/android-16/arch-arm/usr/include 头文件丢到了里面
 
#单独执行frei0r的 configure文件后把里面的frei0r.h文件放入ndk对应的platforms
api ex:android-ndk-r10e/platforms/android-16/arch-arm/usr/include下面 这里的android版本与 上面 NDK_PLATFORM_VERSION 对应
#并且 此目录下的math.h文件下函数后缀  __NDK_FPABI_MATH __pure2去掉了
#makefile 的文件加入了pie
#only position independent executables (PIE) are supported
#LOCAL_CFLAGS += -pie -fPIE
#LOCAL_LDFLAGS += -pie -fPIE
#libx264 ./configure  --enable-static
#在   /ffmpeg/libavfilter/下的 vf_frei0r.c 里面的frei0r_init函数包含外部滤镜引入路径
名称:frei0r_pathlist
#修改这个替换so文件所在路径

ps:作为后期学习资料,不喜勿喷
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: