音视频7——安卓硬编推送到rtmp服务器之librtmp导入

音视频开发路线:

Android 音视频开发入门指南_Jhuster的专栏的技术博客_51CTO博客_android 音视频开发入门

demo地址:

videoPath/Demo8Activity.java at master · wygsqsj/videoPath · GitHub

一.RTMP协议

rtmp协议主要应用在音视频的传输上的一套协议,跟Http、蓝牙等协议一样都是在某种应用状态下的使用规范,rtmp协议由C编写,源码很少,出去RTMPZ之外,常用的还有RTSP,主要应用于安防领域,相比与RTMP他更安全可靠,尽量的去避免产生丢帧等事情的发生,但是连接数量有限,RTMP不会对连接数有要求,广泛应用于直播领域,RTMP协议的实现库下载地址为:http://rtmpdump.mplayerhq.hu/download/

此处直接下载源码即可:

二.AndroidStudio配置NDK开发

AndroidStudio新建Native项目,新版的studio都是使用CMarke来实现NDK的开发,构建好ndk项目后,记得配置ndk路径

如果当前电脑没下载过ndk,先去下载一下

将我们下载好的rtmp源码解压之后得到librtmp目录,将该目录全部添加到cpp文件夹下:

在librtmp目录下新建CMakeLists.txt,将librtmp的源码添加到编译路径中

编写CMake代码,以下代码的目的是将librtmp目录下的.c文件编译成名为 rtmp 的静态库

#关闭ssl验证,不让rtmp进行加密验证
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNO_CRYPTO")

#将后缀名是.c结尾的代码放到 rtmp_source 中
file(GLOB rtmp_source *.c)

#将remp_source的代码 生成 rtmp 静态库
add_library(
        rtmp
        STATIC
        ${rtmp_source}
)

在cpp目录下的CMake中将librtmp编译成的rtmp库引入到项目中

cmake_minimum_required(VERSION 3.10.2)

project("rtmpdemo2")

#添指向librtmp文件夹,编译该文件夹下的文件
add_subdirectory(librtmp)


add_library(
        native-lib
        SHARED
        native-lib.cpp)


find_library(
        log-lib
        log)


target_link_libraries(
        native-lib
        rtmp  #将rtmp添加进来
        ${log-lib})

好了,到此我们就成功导入了rtmp源码,先导入rtmp:

#include <jni.h>
#include <string>

extern "C" {
#include "librtmp/rtmp.h"
}

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_rtmpdemo2_MainActivity_stringFromJNI(
        JNIEnv *env,
        jobject /* this */) {

    RTMPPacket rtmpPacket;
    
    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值