FFmpeg编译Android端so文件纪要(附资源下载)

相信来到这里的朋友稍稍有点赶时间,直接上总结流程:

(特别赶时间的直接下载第三步的资源文件,使用现成的ffmpeg.so文件)

1、 进入Linux系统(windows可以使用VMware)

2、下载SDK 并解压 NDK下载地址
尽量选择跟资源中一样的版本:android-ndk-r13b,否则build.sh文件需要做相应修改
记得选择 linux 系统的ndk

3、解压这个资源文件(里面包含了ffmpeg源码、sh文件以及 编译好的armeabi和arm64-v8a的so文件)(资源文件正在上传…请等待更新)
效果如下:
FFmpeg编译Android端so文件纪要(附资源下载)
binary:存放编译日志的地方,出错了可以在这里查找错误原因
temp:是一个空文件夹,编译时缓存用的,千万不要删除
dist:编译结果存放的地方,也就是.so文件和.a文件,如下
FFmpeg编译Android端so文件纪要(附资源下载)

4、右键build.sh文件使用编辑模式打开,稍稍修改下路径:
FFmpeg编译Android端so文件纪要(附资源下载)
5、最后,右键空白处使用终端打开,输入’sh build.sh’即可安心等待
如果报权限不足可先输入‘su’,在提示你输入密码之后即可获得管理员权限

特殊情况以及忠告:
  • 网上的build.sh文件内容大多都没有问题,之所以拷贝后不能用是格式以及编码的问题,如果你是直接网页上copy的话,尽量在linux进行copy操作,如果还是出现不能编译尝试手动清除所有空格和换行后再次手敲复原,以及注意每一个${}是否都正确执行了(亲身经历看起来一模一样的毫无问题的代码一编译就出现文件地址中缺少几个字母,或者某一段代码不正常执行导致各种错误还十分难以排查以至于浪费了超级多的时间)
  • 资源文件中的 build.sh 在运行时打印了所需要的地址信息,若出现问题请仔细排查地址是否正确
  • 当你进行 build.sh 的更改后,记得重新打开终端再执行,否则可能会发生一些有趣的事情,比如运行效果跟代码不一致等。
  • 你问我为什么要不用windows? 好吧,我编译失败了(-_-)
最后非常感谢以下几位博主的博文

https://www.jianshu.com/p/9ee83933009a:我在这里确定了基本的编译流程以及build.sh的基本内容

https://blog.****.net/lakebobo/article/details/77650590:我在这里找到了控制.so和.a文件的生成,以及多个.a文件打包成一个ffmpeg.so文件的方法

https://blog.****.net/chenwr2018/article/details/101023811:这里提供了比较详细的ffmpeg configure配置选项