srs提供的rtmp客户端srs-librtmp

2024-02-29 11:18

本文主要是介绍srs提供的rtmp客户端srs-librtmp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、RTMP握手协议

    查看链接 : https://github.com/ossrs/srs/wiki/v1_CN_RTMPHandshake

2、下载srs-master.zip版本

    下载地址:https://github.com/ossrs/srs/tree/master

3、SRS可以直接导出一个srs-librtmp的project,编译成.h和.a使用。或者导出为.h和.cpp,一个大文件,具体的过程如下:

3.1、  SRS在2.0提供了导出srs-librtmp的编译选项,可以将srs-librtmp单独导出为project,单独编译生成.h和.a,方便在linux和windows平台编译。

    (1)下载srs后,解压,进入目录

       (2)SRS将srs-librtmp导出为独立可以make的项目,生成.a静态库和.h头文件,以及生成了srs-librtmp的所有实例。

dir=/home/test/srs-librtmp &&
rm -rf $dir &&
./configure --export-librtmp-project=$dir &&
cd $dir && make &&
./objs/research/librtmp/srs_play rtmp://ossrs.net/live/livestream说明:
//执行该命令在相应的目录
//dir 为自己定义,生成的目录

(3)结果

3.2 直接导出为一个文件,提供了简单的使用实例,运行实例

(1)操作命令:

dir=/home/TEST/srs-librtmp &&
rm -rf $dir &&
./configure --export-librtmp-single=$dir &&
cd $dir && gcc example.c srs_librtmp.cpp -g -O0 -lstdc++ -o example && 
strip example && ./example说明:
//example 为一个简单的运行demo

(2)结果

4.Windows下编译srs-librtmp

srs-librtmp可以只依赖于c++和socket,可以在windows下编译。

先使用SRS导出srs-librtmp(srs_librtmp.cpp和  srs_librtmp.h)如结果(2),将.h和cpp添加在自己的工程,然后在vs中编译,修改遇到的编译错误问题即可。

5.Windows下测试

#include <stdio.h>
#include "srs_librtmp.h"
int main(int argc, char** argv)
{srs_rtmp_t rtmp;printf("Example for srs-librtmp\n");printf("SRS(ossrs) client librtmp library.\n");printf("version: %d.%d.%d\n", srs_version_major(), srs_version_minor(), srs_version_revision());rtmp = srs_rtmp_create("rtmp://192.168.151.46:1935/live/livestream");srs_human_trace("create rtmp success");/*test*/int avx_success = -1;avx_success = srs_rtmp_handshake(rtmp);printf("srs_rtmp_handshake ,avx_success = %d\n", avx_success);if (avx_success != 0){srs_human_trace("1 ortmp simple handshake fail");}srs_human_trace("1 ortmp simple handshake success");avx_success = srs_rtmp_connect_app(rtmp);if (avx_success != 0){srs_human_trace("2 ortmp connect vhost/app fail");}srs_human_trace("2 ortmp connect vhost/app success");avx_success = srs_rtmp_publish_stream(rtmp);if (avx_success != 0){srs_human_trace("3 ortmp publish stream fail");}srs_human_trace("3 ortmp publish stream success");while (1){//send data}	srs_rtmp_destroy(rtmp);return 0;
}

 

这篇关于srs提供的rtmp客户端srs-librtmp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/758581

相关文章

Redis客户端工具之RedisInsight的下载方式

《Redis客户端工具之RedisInsight的下载方式》RedisInsight是Redis官方提供的图形化客户端工具,下载步骤包括访问Redis官网、选择RedisInsight、下载链接、注册... 目录Redis客户端工具RedisInsight的下载一、点击进入Redis官网二、点击RedisI

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

nginx-rtmp-module模块实现视频点播的示例代码

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录预置条件Nginx点播基本配置点播远程文件指定多个播放位置参考预置条件配置点播服务器 192.

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

SpringBoot实现websocket服务端及客户端的详细过程

《SpringBoot实现websocket服务端及客户端的详细过程》文章介绍了WebSocket通信过程、服务端和客户端的实现,以及可能遇到的问题及解决方案,感兴趣的朋友一起看看吧... 目录一、WebSocket通信过程二、服务端实现1.pom文件添加依赖2.启用Springboot对WebSocket

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停

Nacos客户端本地缓存和故障转移方式

《Nacos客户端本地缓存和故障转移方式》Nacos客户端在从Server获得服务时,若出现故障,会通过ServiceInfoHolder和FailoverReactor进行故障转移,ServiceI... 目录1. ServiceInfoHolder本地缓存目录2. FailoverReactorinit

Java Websocket实例【服务端与客户端实现全双工通讯】

Java Websocket实例【服务端与客户端实现全双工通讯】 现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发 出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏 览器需要不断的向服务器发出请求,然而HTTP