Android 编译ffmpeg

首先我是在mac下编译的ffmpeg, 下载了android 的SDK
在这之前就已经编译过了x264, 如果你不要x264, 则可以关闭x264选项
或者直接下载已经编译好的x264库

如果脚本没有权限, 执行一下
chmod 777 ./build_ffmpeg.sh (你的脚本名)

#!/bin/bash

ANDROID_NDK="/Users/RunningDay/Library/Android/sdk/ndk-bundle"
SDK_VERSION=21
#ARCH=arm64
ARCH=arm

if [ "$ARCH" = "arm64" ]
then
    PLATFORM_PREFIX="aarch64-linux-android-"
    HOST="aarch64"
    X264_LIB=$(pwd)/../x264-lib-android/arm64
    PLATFORM_VERSION=4.9
else
    PLATFORM_PREFIX="arm-linux-androideabi-"
    HOST="arm"
    X264_LIB=$(pwd)/../x264-lib-android/arm
    PLATFORM_VERSION=4.8
fi

PREFIX=$(pwd)/android/${ARCH}

SYSROOT=$ANDROID_NDK/platforms/android-${SDK_VERSION}/arch-${ARCH}
TOOLCHAIN=$ANDROID_NDK/toolchains/${PLATFORM_PREFIX}${PLATFORM_VERSION}/prebuilt/darwin-x86_64
CC=$TOOLCHAIN/bin/${PLATFORM_PREFIX}gcc
CXX=$TOOLCHAIN/bin/${PLATFORM_PREFIX}c++
CROSS_PREFIX=$TOOLCHAIN/bin/${PLATFORM_PREFIX}
NM=$TOOLCHAIN/bin/${PLATFORM_PREFIX}nm

CFLAGS="-Os -fpic -DANDROID -std=c99"
CFLAGS="$CFLAGS -I${SYSROOT}/usr/include"
CFLAGS="$CFLAGS -I$X264_LIB/include"

LDFLAGS="-L${SYSROOT}/usr/lib"
LDFLAGS="$LDFLAGS -L$X264_LIB/lib"
LDFLAGS="$LDFLAGS -llog -lc -lm -ldl -lx264"

echo "--extra-cflags="$CFLAGS""
echo "--extra-ldflags="$LDFLAGS""
echo ${PREFIX}

./configure \
--prefix=$PREFIX \
--target-os=linux --arch=${ARCH} --enable-cross-compile \
--cc=$CC \
--cxx=$CXX \
--cross-prefix=$CROSS_PREFIX \
--nm=$NM \
--sysroot=$SYSROOT \
--extra-cflags="$CFLAGS" \
--extra-ldflags="$LDFLAGS" \
--enable-version3 \
--enable-nonfree \
--disable-shared --enable-static --disable-debug --enable-pthreads --disable-stripping \
--disable-programs --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver \
--enable-network --enable-postproc --enable-gpl \
--enable-protocols \
--enable-muxers \
--enable-demuxers \
--disable-devices \
--enable-avfilter --enable-bsfs --enable-filters \
--disable-encoders \
--enable-libx264 --enable-encoder=libx264 \
--enable-encoder=mjpeg --enable-encoder=aac \
--disable-decoders \
--enable-decoder=h264 \
--enable-decoder=aac \
--enable-decoder=aac_latm \
--enable-decoder=ac3 \
--enable-decoder=mp3 \
--enable-decoder=pcm_alaw \
--enable-decoder=pcm_s8 \
--enable-decoder=pcm_s8_planar \
--enable-decoder=pcm_u16be \
--enable-decoder=pcm_u16le \
--enable-decoder=pcm_u8 \
--enable-decoder=pcm_mulaw \
--enable-decoder=pcm_s16be \
--enable-decoder=pcm_s16le \
--enable-decoder=pcm_s16le_planar \
--enable-decoder=movtext \
--enable-decoder=text \
--disable-symver \
--disable-doc --disable-asm --enable-neon \
--pkg-config=/usr/bin/pkg-config \


# "$?" is configure result
if [ $? -ne 0 ];then
echo "configure fail..."
exit $?;
fi

echo ""
echo "###################################"
echo "Configure success ..."
echo "###################################"
echo ""

#make clean
#make -j8
#make install

修改一下ANDROID_NDK的路径为自己的NDK路径
SDK_VERSION=你的SDK版本
ARCH=你要编译的平台(arm 或者arm64)

最后生成的ffmpeg库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值