本文共 2001 字,大约阅读时间需要 6 分钟。
1、RTMP握手协议
查看链接 :
2、下载srs-master.zip版本
下载地址:
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#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;}
转载地址:http://vjqxi.baihongyu.com/