ffmpeg在arm64下编译

最近项目要求对ffmpeg在arm64下进行编译。发现原来在arm64下编译是多么的麻烦。其实真正的麻烦是在使用baidu搜索搜的东西基本都可以忽略。没有一个内容是可用的。明显的是对--arch都无法给到准确的值。


1 编译准备

ndk使用的是12b。支持到platform-24。顺便提下该版本尤其增强了安全性检查,尤其是TEXTREL的检查。同时也对许多的系统inline函数进行了最新实现。导致原来可以正常编译的项目,现在无法通过,不是缺少这个函数就是缺少那个函数。目前个人的临时解决方法就是使用platform-19或则将19中的一些头文件替换到24.哈哈。

2 ffmpeg编译开始

ffmpeg需要在指定官方网站下载。这个可以通过baidu轻松找到。我仅仅需要264的解码功能,所以将一些不需要的进行了disable。

编译指令如下:

mkdir -p ./build/android

chmod 777 ./configure
chmod 777 ./version.sh

export ARM_ROOT=$ANDROID_NDK_ROOT
export ARM_INC=$ARM_ROOT/platforms/android-23/arch-arm64/usr/include/
export ARM_LIB=$ARM_ROOT/platforms/android-23/arch-arm64/usr/lib
export ARM_TOOL=$ARM_ROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64
export ARM_LIBO=$ARM_TOOL/lib/gcc/aarch64-linux-android/4.9.x
export PATH=$ARM_TOOL/bin:$PATH
export ARM_PRE=arm-linux-androideabi

CC=$ARM_ROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin

./configure \
--target-os=linux \
--arch=aarch64 \
--enable-cross-compile \
--sysroot=$ARM_ROOT/platforms/android-23/arch-arm64 \
--cross-prefix=$ARM_TOOL/bin/aarch64-linux-android- \
--cc=$ARM_TOOL/bin/aarch64-linux-android-gcc \
--nm=$ARM_TOOL/bin/aarch64-linux-android-nm \
--extra-cflags="-fvisibility=hidden -fdata-sections -ffunction-sections -Os -fPIC -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300" \
--enable-asm \
--disable-yasm \
--enable-static \
--disable-shared \
--enable-small \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--enable-neon \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffserver \
--disable-ffprobe \
--disable-avdevice \
--disable-avformat \
--disable-postproc \
--disable-avfilter \
--disable-pthreads \
--disable-network \
--disable-swscale-alpha \
--disable-swscale \
--enable-fft \
--enable-mdct \
--disable-rdft \
--disable-dxva2 \
--disable-encoders \
--disable-decoders \
--disable-hwaccels \
--disable-muxers \
--disable-demuxers \
--disable-parsers \
--disable-bsfs \
--disable-protocols \
--disable-indevs \
--disable-outdevs \
--disable-filters \
--disable-debug \
--disable-stripping \
--disable-armv5te \
--disable-armv6 \
--disable-armv6t2 \
--enable-decoder=h264 \
--disable-doc \
--enable-pic

# build for arm64
make clean
make
# copy out the armv8 libs
mkdir ./build/android/armv8
cp -f ./libavcodec/libavcodec.a ./build/android/armv8/libavcodec.a
cp -f ./libavutil/libavutil.a ./build/android/armv8/libavutil.a


打完收工。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值