目前的互联网都逐步趋于视频化,视频直播越来越新潮,开源的视频服务器也是日益增加,这也意味着在视频行业里,我们对流媒体转发能力的要求会越来越高。那么我们该如何去选择和检测视频服务器的流媒体转发能力呢?
这篇文章将简要介绍下当前较受欢迎的SRS开源视频服务器以及它的压测方法。
SRS全称Simple Realtime Server,简单即时服务。
SRS是开源视频服务器,是一个流媒体集群,支持RTMP/HLS/WebRTC/SRT/GB28181(直播和WebRtc),
提供高效、稳定、易用的服务。
SRS包含支大规模集群如CDN业务的关键特性。
譬如RTMP多级集群、源站集群、VHOST虚拟服务器、无中断服务Reload、HTTP-FLV集群、Kafka对接。
同时,提供丰富的应用接口,包括HTTP回调、安全策略Security、HTTP API接口、RTMP测速。
SRS主要运行在Linux系统上,譬如Centos和Ubuntu,包括x86、x86-64、ARM和MIPS。
其他的OS可以使用srs-docker开发和运行,比如macOS、Windows等。
Srs官网地址:https://github.com/ossrs/srs/wiki/v3_CN_Home
SRS服务器进行流媒体转发时,需要到配置文件中设置对应的端口,避免默认端口被占用导致流转发异常!
SRS开源服务器的创始人为了更好的验证SRS服务器的流媒体转发性能,
同时提供了专门的测试工具st-load。该工具包里面提供了:
sb_hls_load(hls拉流)、sb_http_load(http拉流)、sb_rtmp_load(rtmp拉流)、
sb_rtmp_publish(rtmp推流)这些方法。
(1)git clone https://github.com/rzrobert/st-load-master.git
(2)git clone https://github.com/winlinvip/st-load.git
(1)依赖库:unzip(解压缩)、gcc、gcc-c++
(2)下载方法:yum install git unzip path gcc gcc-c++ make
(3)执行配置文件:./configure
(4)Make编译:make
(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
通过直接调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
若您的压测机系统是Windows的,那么st-load工具就不太适用了,此时你可以选择较熟悉的压测工具jmeter。这个工具的作用比较广,用于压测也是很合适的。而且新版的jmeter(建议版本不低于apache-jmeter-5.1.1)也提供了hls协议解析的方法,这意味着我们可以直接通过jmeter对应的hls插件来模拟用户拉取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
(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
②插件安装成功后jmeter会自动重启。
③重启成功后在线程组处添加对应的流取样器“bzm-Streaming Simple”
④设置流取样器(bzm-Streaming Sampler)的内部参数,根据实际情况来自定义拉流的场景
官方网址: 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