Android FFmpeg开发(一)NDK环境搭建
- 配置NDK环境
FFmpeg是一个开源的音视频处理库,原生C、C++开发;本系列的学习将从NDK的环境搭建开始、原理剖析、FFmpeg的源码讲解、FFmpeg的源码编译到动态库so,集成到app中实现基于ffmpeg的直播推流拉流的过程,实现rtsp/rtmp的推流拉流。
- 下载NDK工具
- 在打开的项目中,从主菜单依次选择 Tools > SDK Manager。
- 点击 SDK Tools 标签。
- 选中 LLDB、CMake 和 NDK 旁的复选框,如图 1 所示
- 点击 Apply,然后在下一个对话框中点击 OK。
- 安装完成后,点击 Finish,然后点击 OK
以上项目创建后,可以直接运行,包含了一套完整的NDK开发的模板:界面显示“Hello from C++”,内容来自C++
如果运行项目会在 app/build/intermediates/cmake/debug/armeabi-v7a/下生成一个 libnative-lib.so文件。
CMake 使用 lib库名称.so 的规范来为库文件命名,库名称即为我们定义的 native-lib。不过我们在Java代码中加载时,还是使用我们定义的库名称 native-lib。
- 项目文件目录介绍
cpp文件夹中是C++的代码源文件,ManinActivity中包含了native层的代码调用,build.gradle文件中包含了NDK的编译工具链的配置文件,文件详情说明如下:
应用视图界面,加载了一个名为native-lib
的库,定义了一个native
的方法stringFromJNI
,然后将stringFromJNI
返回的值设置到TextView
上。
CMakeLists.txt
:CMake 构建脚本。
native-lib.cpp
: 示例 C++ 源文件
build.gradle
:构建文件