mac上编译Android的arm64位ffmpeg
在涉及对视频进行操作的场景,ffmpeg可以很好地满足一些需求,下面以arm64的Android系统为例,记录ffmpeg编译的实现。
一、下载源码
可以通过git的方式获取源码,这里直接从ffmpeg.org下载到4.3.1的tar包。
二、配置和编译
ffmpeg的编译方式跟其他unix*开源工具类似,先configure再make即可。但这里我们是要在mac上编译用于Android的二进制文件,所以需要使用交叉编译工具链。
1. 引用Android ndk编译,这里使用的是ndk r21版本,亲测可用
NDK=$ANDROID_NDK_HOME
2. 指定需要用到的toolchain和sysroot路径
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64 SYSROOT=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/sysroot CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang # c compiler path CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ # c++ compiler path
3. 根据实际需求打开或关闭ffmpeg的feature,这些可以从configure中获得
./configure --enabe-* --disable-* make make install
4. 最后放出完整脚本
#!/bin/bash NDK=$ANDROID_NDK_HOME ARCH=aarch64 TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64 SYSROOT=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/sysroot ROOT_FOLDER=$PWD/.. OUTPUT=$ROOT_FOLDER/output/android/ffmpeg/arm64 CC=$TOOLCHAIN/bin/aarch64-linux-android21-clang # c compiler path CXX=$TOOLCHAIN/bin/aarch64-linux-android21-clang++ # c++ compiler path ADDI_CFLAGS="-fPIE -pie -mfloat-abi=softfp -mfpu=neon" ADDI_LDFLAGS="-fPIE -pie" echo "sysroot:$SYSROOT" echo "output:$OUTPUT" echo "arch:$ARCH" echo "CC:$CC" echo "CXX:$CXX" ./configure \ --disable-shared \ --enable-static \ --disable-stripping \ --enable-debug \ --prefix=$OUTPUT \ --toolchain=clang-usan \ --enable-cross-compile \ --target-os=linux \ --arch=$ARCH \ --sysroot=$SYSROOT \ --cc=$CC \ --cxx=$CXX \ --cross-prefix=$TOOLCHAIN/bin/aarch64-linux-android- \ --extra-cflags="$ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ --extra-libs=-ldl \ --disable-avdevice \ --disable-ffplay \ --disable-network \ --disable-doc \ --disable-symver \ --disable-ffprobe \ --disable-opencl \ --enable-neon \ --enable-gpl \ --enable-pthreads \ --enable-encoder=aac \ --enable-encoder=gif \ --enable-encoder=mpeg4 \ --enable-encoder=yuv4 \ --enable-decoder=h264 \ --enable-bsf=h264_mp4toannexb \ --enable-bsf=hevc_mp4toannexb \ --enable-bsf=mpeg4_unpack_bframes rm -rf $OUTPUT make clean make -j9 make install
posted on 2021-01-27 01:25 JacobChen2012 阅读(502) 评论(0) 编辑 收藏 举报