注:参考自bilibili系列视频,从0开始做播放器-第二季-第1章-用 Android NDK 编译 FFmpeg,更详细的内容可以从视频获取//www.greatytc.com/writer#/notebooks/47674984/notes/76664263
Android NDK 简介
想在安卓平台运行c++,首先需要一个交叉编译环境,用来把c++代码编译成安卓上可以运行的动态库。NDK就是安卓平台下的交叉编译环境,可以让我们直接用c/c++等语言实现应用的各个部分。
https://developer.android.google.cn/ 下载NDK
https://developer.android.google.cn/ndk/guides/other_build_systems 文档 将 NDK 与其他构建系统配合使用
在NDK下编译ffmpeg
下载ffmpeg
编写cmake脚本
./configure
--prefix 设置安装路径
--enable-static 允许编译静态库
--enable-shared 允许编译动态库
//如果运行上面代码,会编译出windows平台的ffmpeg库,要android上的库,需要加配置
--enable-cross-compile 允许交叉编译
--target-os=android 设置目标操作系统为安卓
--arch=arm
--cc=/c/NDK/android-ndk-r21b/```/armv7a-linux-android 指定c编译器,指定c编译器的同时,确定了cpu架构。(在NDK目录下)
--cross-prefix 设置交叉编译环境编译工具路径,平台无关(在NDK下)
--disable-ffmpeg ffmpeg命令行程序,android下会编译出错,所以disable掉
--disable-ffplay 同上
--disable-ffprobe 同上
--disable-avdevice 与设备相关的,android平台不需要make
make install
运行脚本后,就会得到android平台的ffmpeg