后续也会通过最新的NDK版本、Clang来编译FFmpeg
那既然源码已经下下来了,接下来我们还差一个编译工具——NDK
===================================================================
因为在NDK源文件里面会有很多关于C的编译工具,我们必须用NDK的编译工具而不能用Linux的编译工具,我们把这种编译就称为交叉编译。
再回到云服务器,我们需要下载一个NDK,大家下载的时候可以选择NDKr20,我们将用这个版本去编译
然后我们还要对NDK进行环境配置
mkdir ndk 创建一个NDK目录
这里推荐大家买服务器最好是选择香港的服务器,因为香港的服器下载这些国外的软件是非常快的,比如我这台服务器的,实际上它就是一个香港服务器
然后我们使用wget命令,就可以把NDK下载下来了。NDK相对来说还是比较大的,但因为香港服务器的缘故,下载还是非常快的
下载完后,使用zip命令将下载的文件解压
unzip,解压的时间可能会有点长,根据每个服务器的配置不一样,解压的时间长短也会不一样
解压完成后我们再去配置NDK环境,这个配置环境和Windows还是有些不一样的,在Windows中我们直接在我的电脑中就可以配置到,但是在Linux里面,它是不一样的,我们需要去编辑etc/profile
在最底部加上我们的环境,我们设定一个NDK ROOT,把它加到PATH路径里面去
然后再退出,让环境生效
到目前,我们NDK的环境就已经配好了,这个时候我们需要编译FFmpeg就需要用到shell脚本
===================================================================
shell脚本它专门是针对于Linux里面,进行编译的语法,类似于Java语法
说到这里,shell语法我们要不要学呢?
学肯定是需要的,但我们只需要大概去了解这个shell脚本怎么去写,就已经可以满足我们这个系列文章里面所要掌握的内容
我们来看这个编写脚本里面内容,脚本的作用是将FFmpeg源码打包成我们在Android里面想要用到的.so文件,或者说.a静态库文件,供我们在Android项目里面去调用
在FFmpeg源文件夹下去建立一个android_build.sh
直接copy下面代码进去
#!/bin/bash
export NDK=/root/ndk/android-ndk-r20
当前系统
export HOST_TAG=linux-x86_64
支持的 Android CUP 架构
export ARCH=aarch64
export CPU=armv8-a
export ARCH=armv7a
export CPU=armv7-a
支持的 Android 最低系统版本
export MIN=21
export ANDROID_NDK_PLATFORM=android-21
export PREFIX= ( p w d ) / a n d r o i d / (pwd)/android/ (pwd)/android/CPU
export MIN_PLATFORM= N D K / p l a t f o r m s / a n d r o i d