ffmpeg编译android的so库

一、编译环境

本人编译环境是在mac下的,此方法同样适用于linux

除了系统要求,还要ndk,大家去下一个mac版的,如果不想找的话---https://pan.baidu.com/s/1i5utCkX,直接解压出来就行

二、编译ffmpeg

如果大家需要编译的是ffmpeg-3.0版本,则可去https://github.com/zhu12345618/ffmpeg-android直接下载,解压后,cd到解压出来的目录里,里面会有build_android.sh文件。

里面有build_android.sh文件,这个是本人简化的脚本。

这里要说一下这个脚本的原作者链接https://pan.baidu.com/s/1nuqKjjF

build_android_full.sh是原作者的未简化脚本。

cd到解压出来的目录后执行./build_android.sh或者./build_android_full.sh命令。

一键编译!完!


如果编译的不是ffmpeg-3.0版本,则需要去官网下载相应的ffmpeg版本,把下面的脚本(脚本名为build_android.sh)放到下载下来的根目录里,再在根目录新建ffmpegtemp文件夹。

#!/bin/bash
export TMPDIR=/Users/zhufu/ffmpeg-3.0/ffmpegtemp #这句很重要,不然会报错 unable to create temporary file in

# NDK的路径,根据自己的安装位置进行设置
NDK=/Users/zhufu/android-ndk-r12b

# 编译针对的平台,可以根据自己的需求进行设置
# 这里选择最低支持android-14, arm架构,生成的so库是放在
# libs/armeabi文件夹下的,若针对x86架构,要选择arch-x86
PLATFORM=$NDK/platforms/android-14/arch-arm

# 工具链的路径,根据编译的平台不同而不同
# arm-linux-androideabi-4.9与上面设置的PLATFORM对应,4.9为工具的版本号,
# 根据自己安装的NDK版本来确定,一般使用最新的版本
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
function build_one
{
./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --enable-demuxer \
    --disable-static \
    --disable-programs \
    
    
    --disable-encoders \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-avfilter \
    --disable-swscale \
    --disable-muxers \
                
    --disable-devices \
    --disable-filters \
    --disable-parsers \

    --disable-doc \
    --disable-postproc \
    --disable-w32threads \
    --disable-avdevice \
    
    \
    --disable-everything \

    --enable-protocol=pipe \
    
    --enable-hwaccels \
    --enable-memalign-hack \

    --enable-asm \

    --enable-pthreads \
    --enable-network \

    \
    --enable-decoder=h264 \
    --enable-decoder=aac \
    \
    --enable-demuxer=flv \
    --enable-demuxer=mov \
    \
    --enable-protocol=rtmp \
    --enable-protocol=http \
    --enable-protocol=rtsp \
    \
    --disable-zlib \
    --disable-bzlib \

    --enable-pic \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --enable-cross-compile \
    --sysroot=$PLATFORM \
    --extra-cflags="-I./include" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
# arm v7vfp
CPU=armv
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "
PREFIX=./android/$CPU-vfp
ADDITIONAL_CONFIGURE_FLAG=
build_one
# CPU=armv
# PREFIX=$(pwd)/android/$CPU
# ADDI_CFLAGS="-marm"
# build_one
#arm v6
#CPU=armv6
#OPTIMIZE_CFLAGS="-marm -march=$CPU"
#PREFIX=./android/$CPU 
#**********/=
#build_one
#arm v7vfpv3
# CPU=armv7-a
# OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
# PREFIX=./android/$CPU
# ADDITIONAL_CONFIGURE_FLAG=
# build_one
#arm v7n
#CPU=armv7-a
#OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8"
#PREFIX=./android/$CPU 
#ADDITIONAL_CONFIGURE_FLAG=--enable-neon
#build_one
#arm v6+vfp
#CPU=armv6
#OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"
#PREFIX=./android/${CPU}_vfp 
#ADDITIONAL_CONFIGURE_FLAG=
#build_one
和刚刚一样,执行./build_android.sh或者./build_android_full.sh命令。完!

同时,脚本里也有注释,大家可以结合博文和注释去理解。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值