Android FFmpeg开发(一)NDK环境搭建

  • 配置NDK环境

       FFmpeg是一个开源的音视频处理库,原生C、C++开发;本系列的学习将从NDK的环境搭建开始、原理剖析、FFmpeg的源码讲解、FFmpeg的源码编译到动态库so,集成到app中实现基于ffmpeg的直播推流拉流的过程,实现rtsp/rtmp的推流拉流。

  • 下载NDK工具
  1. 在打开的项目中,从主菜单依次选择 Tools  > SDK Manager
  2. 点击 SDK Tools 标签。
  3. 选中 LLDBCMake 和 NDK 旁的复选框,如图 1 所示Android FFmpeg开发(一)NDK环境搭建
  4. 点击 Apply,然后在下一个对话框中点击 OK
  5. 安装完成后,点击 Finish,然后点击 OK

Android FFmpeg开发(一)NDK环境搭建

以上项目创建后,可以直接运行,包含了一套完整的NDK开发的模板:界面显示“Hello from C++”,内容来自C++

如果运行项目会在 app/build/intermediates/cmake/debug/armeabi-v7a/下生成一个 libnative-lib.so文件。

CMake 使用 lib库名称.so 的规范来为库文件命名,库名称即为我们定义的 native-lib。不过我们在Java代码中加载时,还是使用我们定义的库名称 native-lib。

 

  • 项目文件目录介绍

Android FFmpeg开发(一)NDK环境搭建

cpp文件夹中是C++的代码源文件,ManinActivity中包含了native层的代码调用,build.gradle文件中包含了NDK的编译工具链的配置文件,文件详情说明如下:

应用视图界面,加载了一个名为native-lib的库,定义了一个native的方法stringFromJNI,然后将stringFromJNI返回的值设置到TextView上。

Android FFmpeg开发(一)NDK环境搭建

CMakeLists.txt :CMake 构建脚本。

Android FFmpeg开发(一)NDK环境搭建

native-lib.cpp : 示例 C++ 源文件

Android FFmpeg开发(一)NDK环境搭建

build.gradle :构建文件

Android FFmpeg开发(一)NDK环境搭建

 

参考官方文档