6 Star 5 Fork 6

Archermind-TI / librtmp

Create your Gitee Account
Explore and code with more than 8 million developers,Free private repositories !:)
Sign up
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

librtmp

简介

Librtmp是用于RTMP流的工具包。 支持所有形式的RTMP,包括rtmp://,rtmpt://,rtmpe://,rtmpte://和rtmps://。

功能

  1. 读取rtmp流
  2. 写入rtmp流

集成

在OHOS中集成

  1. 首先在project的build.gradle中添加mavenCentral()仓库

    allprojects {
        repositories {
            mavenCentral()
        }
    }
  2. 在需要使用的module的build.gradle中添加依赖:

    implementation 'com.gitee.archermind-ti:rtmpohoslib:1.0.0'

在c/c++中集成

librtmp/src/main/cpp/librtmplibrtmp/src/main/cpp/ssl两个目录的文件复制到你的cpp目录,并在你的CMakeLists.txt文件中添加如下内容:

#引入指定目录下的CMakeLists.txt
add_subdirectory(librtmp)
#指定头文件查找路径
include_directories(librtmp)

#链接librtmp,代码可参考如下:
target_link_libraries(rtmp hilog_ndk.z)

使用说明

OHOS中使用

  1. 连接rtmp url

    RtmpUtil rtmpUtil= new RtmpUtil();
    //第二个参数表示是否是推流,true表示推流,false表示拉流
    rtmpUtil.open("rtmp://your_rtmp_server", false);
  2. 读取/写入 byte[]

    //读取
    byte[] bytes = new byte[2048];
    int result = rtmpUtil.read(bytes, 0, bytes.length);
    
    //写入,这里的byte数组仅作参考
    byte[] bytes = new byte[]{'F', 'L', 'V', 0x1, 0x5, 0, 0, 0, 0x9, 0, 0, 0, 0};
    int result = rtmpUtil.write(bytes);
  3. 暂停/恢复

    //参数表示暂停还是恢复,true表示暂停,false表示恢复
    rtmpUtil.pause(true);
  4. 判断是否连接到rtmp服务器

    boolean isConnect = rtmpUtil.isConnected();
  5. 关闭rtmp 连接

    rtmpUtil.close();

在c/c++中使用

请查阅官方文档中文翻译文档

简单示例:

#include <rtmp.h>

//分配一个RTMP
RTMP *rtmp = RTMP_Alloc();
//初始化
RTMP_Init(rtmp);

//定义rtmp服务器地址
const char *url;

//设置RTMP服务器
int result = RTMP_SetupURL(rtmp, (char *) url);
if(result){
    
    //推流需要启用
    //开启写入,在connect之前调用
    //RTMP_EnableWrite(rtmp);
    
    //连接服务器
    result = RTMP_Connect(rtmp, NULL);
    if(result){
        //连接流
        result = RTMP_ConnectStream(rtmp, 0);
        if(result){
            //推流和拉流分别实现,请参考sample
            ...
            
            //关闭rtmp流    
            RTMP_Close(rtmp);
        }
    }
    //清理会话
    RTMP_Free(rtmp);
    rtmp=nullptr;
}

编译说明

  1. 将项目通过git clone 至本地
  2. 使用DevEco Studio 打开该项目,然后等待Gradle 构建完成
  3. 点击Run运行即可(真机运行可能需要配置签名)
单元测试说明
  1. 单元测试的运行依赖于rtmp服务器,如果没有rtmp服务器,单元测试将运行失败

  2. 如果已有rtmp服务器,请将您的rtmp服务器的推流地址,写在entry/src/ohosTest/RtmpTestHOST属性中,如下:

    /**
     * 测试前,请先设置HOST字段值
     */
    public class RtmpTest {
    
        //此处需要替换为你自己的RTMP服务器地址
        private static final String HOST = "这里替换为您的rtmp服务器的推流地址";
openssl编译

openssl源码

在linux环境,编译步骤请关注openssl/README

版权和许可信息

Repository Comments ( 0 )

Sign in to post a comment

About

Librtmp是用于RTMP流的工具包。 支持所有形式的RTMP,包括rtmp://,rtmpt://,rtmpe://,rtmpte://和rtmps://。 本库针对openharmony编译。 expand collapse
GPL-2.0
Cancel

Releases (1)

All

librtmp

Contributors

All

Activities

Load More
can not load any more
1
https://git.oschina.net/archermind-ti/librtmp.git
git@git.oschina.net:archermind-ti/librtmp.git
archermind-ti
librtmp
librtmp
master

Search

113223 674803ea 1850385 170725 2838fb2a 1850385