编译FFmpeg动态库
环境
- macOS High Sierra
- FFmpeg 4.3
- android-ndk-r21b
编译so库
下载FFmpeg4.3源代码,进入源码目录创建build_android.sh
脚本,ffmpeg从4.0起新增了target-os=android
,所以不用再修改configure
文件。
注意:
-
ndk-17
以前内置的编译器是gcc
,而新版的ndk已经用clang
替代了gcc
编译器,所以使用-cc
和-cxx
指令时要特别注意自己要使用的编译器是gcc
还是clang
。 -
还有个我遇到的问题就是在
ndk-r17c
和ndk-18b
中的toolchains/llvm/prebuilt/darwin-x86_64/bin
中没有clang
编译工具集,而是在上层目录中。 -
只有
armv7-a
的执行文件中间有eabi
结尾,其他没有。例:armv7a-linux-androideabi21-clang
,x86_64-linux-android21-clang
。如果报错not found xxx file
的错误,就自行到相应目录查看。
#!/bin/bash
# ndk路径
NDK=/Users/chenpeng/Desktop/work_space/ndk/android-ndk-r21b
# 编译工具链目录,ndk17版本以上用的是clang,以下是gcc
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/darwin-x86_64
# 版本号
API=21
# 交叉编译树的根目录