前期准备工具
- win10下挂的ubuntu子系统
我用的是ubuntu版本2004.2020.424.0 - ffmpeg官方推荐Android平台编译的开源工程: ffmpeg-android-maker
- ubuntu下的编译工具:clang、make、yasm等,这里如果没有安装,编译时候会有提示,按照提示apt install 就可以
- Android sdk、ndk,这里可以直接去Android官网下载,我用的ndk版本是android-ndk-r21
- ubuntu中设置好下载的ANDROID_SDK_HOM、ANDROID_NDK_HOME环境变量
开始编译
ffmpeg-android-maker的wiki文档已经写的非常清楚了,这里做个记录加深印象
1、单纯编译ffmpeg库
进去到ffmpeg-android-maker根目录,执行一行命令:
./ffmpeg-android-maker.sh
默认情况下会编译出armeabi-v7a,arm64-v8a,x86,x86_64四个平台的动态库
2、指定Android api版本
–android-api-level = x或-android = x
指定要编译的Android API级别。较新版本的Android支持更广泛的API。
支持的最小值为16。它受Android NDK的约束,因为它不再支持较低的API。
无论指定值如何,64位ABI(arm64-v8a和x86_64)的最小值均为21(因为Android 5是第一个具有64位支持的ABI)。如果指定的标志值大于21,则将其用于所有ABI。
例如:
如果为-android=19,则针对API 19编译32位ABI,再次针对API 21编译64位ABI。
如果为-android=24,则所有ABI都会再次通过API 24进行编译。
默认值为16。
./ffmpeg-android-maker.sh --android-api-level=24
3、添加外部库支持
ffmpeg-android-maker默认已经添加了几个库的支持,如下表:
库 | 使用例子 |
---|---|
libaom | ./ffmpeg |