编译FFmpeg-4.0
网上找了大多数资料Mac下编译ffmpeg,基本上都不成功,也不知道怎么的,这玩意就这么浪费时间?
官方真的该出一个教程了,免得每个开发者都得重复一次这个过程。
ffmpeg每个版本编译方式还不一样,NDK的版本也有差异,建议保持一致,免得出错。
ffmpeg版本:4.0
ndk版本:android-ndk-r16b
可以选择去官网下载,国内的地址参考 Android NDK下载(r10d r13b r14b)
下载源码并解压后,在目录下新建文件ffmpeg_build.sh文件,内容如下:
#!/bin/bash
ADDI_CFLAGS="-marm"
API=27
PLATFORM=arm-linux-androideabi
CPU=armv7-a
NDK=/Users/xxx/Downloads/android-ndk-r16b # 修改自己本地的ndk路径
SYSROOT=$NDK/platforms/android-$API/arch-arm/
ISYSROOT=$NDK/sysroot
ASM=$ISYSROOT/usr/include/$PLATFORM
TOOLCHAIN=$NDK/toolchains/$PLATFORM-4.9/prebuilt/darwin-x86_64
OUTPUT=/Users/xxx/share #自己指定一个输出目录
function build_one
{
./configure \
--prefix=$OUTPUT \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-I$ASM -isysroot $ISYSROOT -Os -fpic -marm" \
--extra-ldflags="-marm" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
build_one
然后执行./ffmpeg_build.sh,等待编译结果吧。
说明:ffmepg编译过程出错的地方太多,建议大家保持环境一致,如有问题,欢迎大家讨论!
我的编译结果如下: