一、RTMPDump源码地址和Git地址(RTMPDump版本是2.4)
RTMPDump源码地址:http://rtmpdump.mplayerhq.hu/
Git地址git clone git://git.ffmpeg.org/rtmpdump
二、将已经下载好的rtmpdump中的librtmp源码添加到工程中去
三、在CMakeLists.txt文件中加入rtmp源码编译
cmake_minimum_required(VERSION 3.4.1)
#设置不适用OpenSSL
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_CRYPTO")
add_library(
native-lib
SHARED
native-lib.cpp
librtmp/amf.c
librtmp/hashswf.c
librtmp/log.c
librtmp/parseurl.c
librtmp/rtmp.c
)
find_library(
log-lib
log)
target_link_libraries(
native-lib
${log-lib})
四、验证RTMP推流源码是否集成成功
1、在native-lib.cpp文件中添加如下代码
#include <jni.h>
#include <string>
#因为我的文件是.cpp文件,而我们的rtmp是c文件,所以要添加extern "C"
extern "C"
{
#include "librtmp/rtmp.h"
}
extern "C" JNIEXPORT jstring JNICALL
Java_com_wq_livepusher_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
备注:在native-lib.cpp文件中输入RTMP如上图所示,那么表示集成成功。