NDK 编译 RTMPDump
来源:互联网 发布:arraypush 二维数组 编辑:程序博客网 时间:2024/06/05 07:02
通过2天的努力终于把 RTMPDump 成功的移植到android上了。
下面简要移植过程:
首先创建工程目录如下图
下载rtmpdump源码
git clone git://git.ffmpeg.org/rtmpdump
进入的 rtmpdump 项目下的 librtmp目录下,我们只需要一下几个文件
将上图显示文件拷贝的工程目录librtmp/src下。
由于rtmpdump依赖于第三方库OpenSSL 和 zlib,我们下载openss源码放到 工程目录 librtmp/thrid_party/android/目录下
我用的OpenSSL是在linphone for android 里得到的,它已经是ndk可编译过的了 ,你也可以上官网上下载。
也可以上https://github.com/openssl/openssl 自行下载移植到android上,着里就不说了。
由于ndk 能很好的支持zlib库,所以zlib库就可以直接拿来用了。
下面开始编写Makefile 文件
进入的工程目录 librtmp/build/android/ jni 下
创建一个Application.mk 和一个 Android.mk 文件
Application.mk 如下书写
APP_PROJECT_PATH 指定应用工程目录 ,也就是 librtmp/build/android 目录
APP_MODULES 指明生成的应用模块名 这里指明为 librtmp 如果不写这一句 将无法生成librtmp.a静态库(ndk 编译 一闪而过 什么都没生成),生成动态库不用添加,不知道为啥??
openssl-build-dir 和 librtmp-build-dir 定义两个变量,指明 OpenSSL 和 librtmp的 构建目录
APP_BUILD_SCRIPT 指明要执行的Android.mk 文件
Application.mk写完后,该写jni目录下的Android.mk 文件了,也就是 Application.mk文件中 APP_BUILD_SCRIPT指定的那个Android,mk文件
Android.mk 书写如下
分别 引用 OpenSSL 的Android.mk 文件,和 rtmpdump 的 Android.mk文件
OpenSSL中的 Android.mk文件已经写好了,我们直接用就行了。
我们需要自己编写rtmpdump的Android.mk文件
进入 librtmp/src目录下 创建Android.mk文件
书写如下:
LOCAL_MODULE 指明模块名称 librtmp
LOCAL_C_INCLUDES 和 LOCAL_SRC_FILES 分别指明所用的 头文件 和 源文件
前面说过ndk 支持zlib库 ,所以在这里把它引入 LOCAL_LDLIBS := -lz,如果不加这行编译会报错,有一些zlib库函数没有定义。
LOCAL_SHARED_LIBRARIES := liblincrypto liblinssl 指明用到的openssl 的动态库,这两个动态库是在执行include $(openssl-build-dir)/Android.mk时生成的
好了现在大功告成,回到librtmp/build/android目录下 执行ndk-build命令
报如下错误
需要指定 NDK_PROJECT_PATH 的路径
执行如下命令 :
NDK_PROJECT_PATH 后面的 那个.代表当前目录,即 librtmp/build/android 目录
ndk开始编译,过一会就编译完了,这时在librtmp/build/android 目录下又生成里两个文件夹
libs 和 obj 如下图
libs里存放了 openssl 生成的 liblincrypto.so 和 liblinssl.so
obj里存放了 rtmpdump 生成的librtmp.a
当然 要想生成动态的librtmp.so的话 在前面的Android.mk里指定生成动态库,这样的话librtmp.so也会生成在libs里
最后工程的整体目录为:
- NDK 编译 RTMPDump
- NDK 编译 RTMPDump
- Android NDK编译librtmp 三重奏 -- (三)编译rtmpdump
- linux下编译rtmpdump
- hi3516a之交叉编译rtmpdump
- 编译libRTMP(RTMPdump) For iOS
- rtmpdump
- RTMPDump
- Rtmpdump
- 使用VS2008 在windows环境 编译Rtmpdump
- 关于rtmpdump的windows下编译
- 实时直播协议:编译RTMPdump(libRTMP)
- rtmpdump在vs2015下的编译
- ndk编译
- NDK编译
- ndk编译
- NDK 编译
- 实时视频在网页直播--windows下编译librtmp、rtmpdump
- background-position 一个css中的常用属性
- android为模拟器安装应用
- android listiew适配器
- linux ubuntu下nginx的安装
- 开源项目Sliding Menu的下载、导入和运行
- NDK 编译 RTMPDump
- HDU 4432 Sum of divisors
- eclipse导入工程出现大红叹号
- jquery Datatable插件动态绑定数据库表
- ubuntu下nginx安装手记
- c语言中自增操作符与自减操作符
- JAVA CAS原理深度分析
- H264源码分析(三)
- 如何在dos下调用mfc的类?