本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!