流媒体转发能力压测

流媒体转发能力压测

  • 一、前言
  • 二、SRS服务器
    • 1.简介
    • 2.运行环境
    • 3.Srs官网地址
    • 4.SRS集群架构图
    • 5.SRS服务器配置
  • 三、(Linux)压测工具st_load
    • 1.简介
    • 2.下载源码包安装
    • 3.下载依赖库
    • 4.执行和编译
    • 5.生成可执行文件
    • 6.执行方法
    • 7.查看推拉流情况
  • 四、(Windows)使用jmeter拉流
    • 1.概述
    • 2.Hls协议
    • 3.Jmeter拉取hls流
  • 五、参考资料

一、前言

目前的互联网都逐步趋于视频化,视频直播越来越新潮,开源的视频服务器也是日益增加,这也意味着在视频行业里,我们对流媒体转发能力的要求会越来越高。那么我们该如何去选择和检测视频服务器的流媒体转发能力呢?
这篇文章将简要介绍下当前较受欢迎的SRS开源视频服务器以及它的压测方法。

二、SRS服务器

1.简介

	SRS全称Simple Realtime Server,简单即时服务。
	SRS是开源视频服务器,是一个流媒体集群,支持RTMP/HLS/WebRTC/SRT/GB28181(直播和WebRtc),
提供高效、稳定、易用的服务。
	SRS包含支大规模集群如CDN业务的关键特性。
譬如RTMP多级集群、源站集群、VHOST虚拟服务器、无中断服务Reload、HTTP-FLV集群、Kafka对接。
	同时,提供丰富的应用接口,包括HTTP回调、安全策略Security、HTTP API接口、RTMP测速。

2.运行环境

SRS主要运行在Linux系统上,譬如Centos和Ubuntu,包括x86、x86-64、ARM和MIPS。
其他的OS可以使用srs-docker开发和运行,比如macOS、Windows等。

3.Srs官网地址

Srs官网地址:https://github.com/ossrs/srs/wiki/v3_CN_Home

4.SRS集群架构图

流媒体转发能力压测_第1张图片
流媒体转发能力压测_第2张图片
想要了解更多,可以去官网学习哦!

5.SRS服务器配置

SRS服务器进行流媒体转发时,需要到配置文件中设置对应的端口,避免默认端口被占用导致流转发异常!
流媒体转发能力压测_第3张图片

三、(Linux)压测工具st_load

1.简介

SRS开源服务器的创始人为了更好的验证SRS服务器的流媒体转发性能,
同时提供了专门的测试工具st-load。该工具包里面提供了:
sb_hls_load(hls拉流)、sb_http_load(http拉流)、sb_rtmp_load(rtmp拉流)、
sb_rtmp_publish(rtmp推流)这些方法。

2.下载源码包安装

(1)git clone https://github.com/rzrobert/st-load-master.git
(2)git clone https://github.com/winlinvip/st-load.git

3.下载依赖库

(1)依赖库:unzip(解压缩)、gcc、gcc-c++
(2)下载方法:yum install git unzip path gcc gcc-c++ make

4.执行和编译

(3)执行配置文件:./configure
(4)Make编译:make

5.生成可执行文件

Objs
流媒体转发能力压测_第4张图片

6.执行方法

(1)拉流:
./sb_rtmp_load -c 20 -r rtmp://live-srs-hst-pull.haoshitong.com/53783/25887-1610519624448
(2)推流:
./sb_rtmp_publish -i /usr/local/ffmpeg/cnlzd.flv -c 1 -r rtmp://127.0.0.1/live/livestream

7.查看推拉流情况

通过直接调API可以查看服务器的推拉流情况。
(1)直接在SRS服务器上面调用API接口:
Cur http://127.0.0.1:1985/api/v1/summaries
注:调用API时需要到配置文件中开启对应的端口。
(2)直接在浏览器访问:
http://live-srs-hst-pull.haoshitong.com:1985/api/v1/sreams
流媒体转发能力压测_第5张图片
流媒体转发能力压测_第6张图片
效果图3

四、(Windows)使用jmeter拉流

1.概述

若您的压测机系统是Windows的,那么st-load工具就不太适用了,此时你可以选择较熟悉的压测工具jmeter。这个工具的作用比较广,用于压测也是很合适的。而且新版的jmeter(建议版本不低于apache-jmeter-5.1.1)也提供了hls协议解析的方法,这意味着我们可以直接通过jmeter对应的hls插件来模拟用户拉取hls流的场景。

2.Hls协议

(1)Hls:HLS (HTTP Live Streaming)是Apple的动态码率自适应技术。实际是http请求。
主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。
(2)请求地址:
https://live-srs-hst-pull.haoshitong.com:445/53783/25887-1609119598461.m3u8
流媒体转发能力压测_第7张图片

3.Jmeter拉取hls流

(1)旧版方法–参考博客
https://blog.csdn.net/zuozewei/article/details/110871724

(2)新方法:使用hls插件
https://blog.csdn.net/m0_37618247/article/details/84029628
https://www.cnblogs.com/yajun2019/p/13653026.html
https://www.cnblogs.com/lzyying/p/14168625.html

(3)操作步骤
①先安装jmeter的hls插件
流媒体转发能力压测_第8张图片
流媒体转发能力压测_第9张图片

②插件安装成功后jmeter会自动重启。
③重启成功后在线程组处添加对应的流取样器“bzm-Streaming Simple”
流媒体转发能力压测_第10张图片
④设置流取样器(bzm-Streaming Sampler)的内部参数,根据实际情况来自定义拉流的场景
流媒体转发能力压测_第11张图片

五、参考资料

官方网址: https://github.com/ossrs/srs/.

博客: https://cloud.tencent.com/developer/article/1408113.

说明文档:https://gitee.com/winlinvip/srs.oschina/wikis/v4_CN_Home

压测工具:
https://blog.csdn.net/weixin_39371129/article/details/74585335
https://www.sohu.com/a/134630430_741445

你可能感兴趣的:(积累,linux,经验分享,视频处理)