流媒体压力测试工具—推拉流

2017-05-18   出处: Qtest之道  作/译者:李春伟





为方便流媒体服务端的压力测试,向大家推荐一套流媒体的压力测试工具(St-load),希望对从事流媒体测试或者对流媒体感兴趣的同学有所帮助~


St-load

1.支持RTMP推流测试,一个进程支持500个并发。执行程序:./objs/sb_rtmp_publish

2.支持RTMP拉流测试,一个进程支持5k并发。执行程序:./objs/sb_rtmp_load

3.支持HTTP负载测试,所有并发重复下载一个HTTP文件。执行程序:./objs/sb_http_load

4.支持HLS解析和测试,下载ts片后等待一个切片长度,模拟客户端。支持HLS点播和直播。执行程序:./objs/sb_hls_load


安装篇

1.在linux环境下载St-load源码包

[root@test /]# git clone https://github.com/rzrobert/st-load-master.git

2.对源码进行编译

[root@test /]#cd st-load-master/

[root@test /st-load-master]#./configure

[root@test /st-load-master]#make

编译完成后在objs目录下生成可执行文件

[root@test /st-load-master/objs]#ls


推流篇

1.推流前准备工作,编辑nginx.conf的RTMP层

2.模拟单路RTMP推流

./sb_rtmp_publish -i /usr/local/ffmpeg/cnlzd.flv -c 1 -r rtmp://127.0.0.1/live/livestream

3.模拟多路RTMP推流

./sb_rtmp_publish -i /usr/local/ffmpeg/cnlzd.flv -c 10 -r rtmp://127.0.0.1/live/livestream_{i}

常用参数说明:

-i 设定输入流
-c 负载个数,默认:1
-r 后面接每个测试的url地址,等同于 --url URL

-s 线程启动时间 defaut:5.00   0表示没有延迟

注意:sb_rtmp_publish只可以推送.flv格式的视频


拉流篇

1.RTMP

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。

拉流:

./sb_rtmp_load -c 1 -r rtmp://127.0.0.1:1935/live/livestream


2.HTTP

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。在最新一代的超文本标识语言HTML5中,视频文件的点播,同样也采用了HTTP作为其承载协议。

拉流:

./sb_http_load -c 1 -r http://127.0.0.1:8081/live/livestream

3.HLS

HLS (HTTP Live Streaming),Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件和TS媒体分片文件。

分段策略: 

HLS的分段策略,基本上推荐是10秒一个分片,当然,具体时间还要根据切片的实际时长做标注。通常来说,为了缓存等方面的原因,在索引文件中会保留最新的三个分片地址,以类似“滑动窗口”的形式,进行更新。

m3u8文件:

m3u8是HTTP Live Streaming直播的索引文件。m3u8基本上可以认为就是.m3u格式文件,区别在于,m3u8文件使用UTF-8字符编码。

#EXTM3U        m3u文件头,必须放在第一行

#EXT-X-MEDIA-SEQUENCE:7    第一个TS分片的序列号

#EXT-X-TARGETDURATION:15    每个分片TS最大时长

#EXTINF:15.099             extra info分片TS的信息

HLS拉流:

./sb_hls_load -c 1 -r http://127.0.0.1:8081/hls/livestream/index.m3u8


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
1076° /10765 人阅读/0 条评论 发表评论

登录 后发表评论