编译FFmpeg静态库并搭建Android Studio的FFmpeg环境
但凡需要做音视频处理的都离不开FFmpeg的支持,它的强大地位目前无人能动摇,各大视频软件、直播平台等等全都是基于FFmpeg来实现的。
要在Android项目中集成FFmpeg,需要使用FFmpeg的静/动态库,而其静/动态库的打包需要在Linux系统中完成,所以我们至少需要一台Linux内核的虚拟机。今天以打包静态库为例,在Linux中完成打包并集成到Android Studio工程中,完成环境搭建。
FFmpeg资源包下载(Release)
在FFmpeg官网下载需要的Release版本,这里我使用的4.0.2的版本,下载xz压缩包。
在Linux系统终端输入:wget url地址 命令下载文件。
下载完成后,需要先将.xz文件解压成.tar文件,再使用tar命令解压出原始文件。
在Linux系统终端输入:xz -d ffmpeg-4.0.2.tar.xz 命令解压成.tar文件,tar xvf ffmpeg-4.0.2.tar 命令解压出原始文件。
NDK下载和配置
在Android网站下载需要的NDK版本,本文使用的是r17c版本。
同样在Linux中输入wget命令完成NDK的下载,输入unzip android-ndk-r17c-linux-x86_64.zip命令解压出原始文件。
接下来配置NDK的环境变量:
在Linux系统终端输入:vim /etc/profile 编辑profile文件,输入i进入编辑模式,在文件末尾加上:
NDKROOT=/root/ndk/android-ndk-r17c
export PATH=$NDKROOT:$PATH
注意这里的NDK目录修改成实际的NDK目录,可通过 pwd 命令获取当前目录的完整路径。
修改完成后,按下 Esc键 退出编辑模式,输入 :wq 命令退出并保存文件。输入 source /etc/profile 使修改立即生效。
编译FFmpeg静态库
接下来开始静态库的编译过程 (以下操作均在Linux系统下完成)。
编写以下shell脚本,放在 ffmpeg-4.0.2目录下。
#!/bin/bash
NDK_ROOT=/root/ndk/android-ndk-r17c
#TOOLCHAIN 变量指向NDK中的交叉编译gcc所在的目录
TOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
#FLAGS与INCLUDES变量 可以从AS ndk工程的.externati