mac下 ffmpeg 編譯到android平臺

#!/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文件所在路徑linux

相關文章
相關標籤/搜索