导读
对于想要学习音视频开发的android开发者来说,使用NDK对FFmpeg进行交叉编译是一道必须迈过去的坎,网上关于使用NDK对FFmpeg进行交叉编译的教程有很多, 但是不经修改能顺利编译通过的比较少。
其实参照网上的教程不能编译通过很多时候不是人家的教程写的有问题,很多时候更多的是因为环境的差异导致了编译出错,而对于一个入门者来说编译报错了自己却不知道怎么改。
如果对交叉编译不太了解的童鞋们可以参考我之前写的文章:音视频学习之NDK交叉编译基础
NDK编译FFmpeg
今天我们来使用NDK对FFmpeg进行交叉编译并集成到Android Studio中去。
笔者的开发环境是:
- 电脑系统 Mac OS
- NDK 21.1.6352462
- FFmpeg源码5.0.1
1、编写编译脚本
首先我们需要下载好对应版本的NDK和FFmpeg源码,然后我们新建一个编译脚本文件build_ffmpeg_android.sh:
#清空上次的编译
make clean
#配置你的NDK路径
export NDK=/Users/flyer/Documents/Android/sdk/ndk/21.1.6352462
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64
function build_android
{
./configure \
--prefix=$PREFIX \
--disable-postproc \
--disable-debug \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-symver \
--disable-doc \
--disable-avdevice \
--disable-static \
--enable-shared \
--enable-neon \
--enable-hwaccels \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-decoder=hevc_mediacodec \
--enable-decoder=mpeg4_mediacodec \
--enable-hwaccel=h264_mediacodec \
--cross-prefix=$CROSS_PREFIX \
--target-os=android \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--enable-cross-compile \
--sysroot=$SYSROOT \
--e