前言
FFmpeg的源码编译,我不知道该怎么说好!难吧?但网上教程好像很简单。不难吧?就没有编译成功几次,一模一样的源码和脚本,也编译不成功!三个月来,只要一闲下来我就查阅各种资料进行各种实验,都达不到想要的结果。上周五,整整编译了一天,都没有编译成功,后来下班了,没关电脑让他编译了一个周末,才完全成功了的。FFmpeg的坑就在这儿,编译都能坑死多半的人!
本片文章主要将如何在Windows下使用MinGW+msys将FFmpeg-3.2.5的源码编译成全平台架构的so库
正文
-
1 工具准备
平台:win10 64位
ndk版本: r14b
FFmpeg版本:3.2.5
minGW-w64.exe
-
2 MinGW安装
双击下载的mingw-w64.exe如图配置安装:
运行后大概就是这个样子,选择Basic Setup,
都完成以后cmd中运行gcc -v,如图则一切顺利可进行后续操作:
-
3 FFmpeg的so库编译
FFmpeg的编译我完全是按照编译Android下可用的全平台FFmpeg(包含libx264与libfdk-aac)编译的,这里我给出跳转链接就好,但有两点请注意:
1: 脚本中的ndk路径替换的时候,切记一定是“/”,如:D:/Java/android-ndk-r14b,可以简单的把MinGW+msys理解成模拟的linux系统,linux系统的文件分隔符是正斜杠“/”,而Windows的文件分隔符是反斜杠“\”,所以这个必须替换
2: 脚本中的darwin-x86_64(mac系统),如果操作系统是Linux则改为linux-x86_64,Windows系统则改为windows-x86_64,实际以ndk路径为准,当然我的已经替换过了。
最后会在FFmpeg下的android_more下生成每个架构的头文件和so库:
结语
有人说我为什么完全照搬别人的东西,也不知道改一下,比如那么多脚本名称,长不说还是别人的名字!这里插播一个小故事,大学我们上计算机基础,有同学发现老师讲的PPT,署名是系里另一位老师的,同学们就嘲笑老师“不备课”就算了,用别人的东西还不知道改一下,老师付之一笑,淡淡的说道,首先我改了的话,性质就不一样,因为但你们并不知道这PPT并不是我做的,这算剽窃,其次我保留署名是为了表明我对他的辛苦付出的感恩。
作为程序员我们最怕的就是重复造轮子,而且还没有别人造的好,更何况这个系列的文章我的确是站在大佬们的肩膀上写下去,你觉得照搬的东西,而我是在尊重原版原作者,感恩开源!
下一节讲:
FFmpeg(三):初识CMakeList和native-lib
内容不多,了解CMake的可直接跳:
FFmpeg(四):CMake移植FFmpeg的静态库到AndroidStudio中