1. 程式人生 > >流媒體壓力測試工具—推拉流

流媒體壓力測試工具—推拉流

為方便流媒體服務端的壓力測試,向大家推薦一套流媒體的壓力測試工具(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原始碼包

[[email protected] /]# git clone https://github.com/rzrobert/st-load-master.git

2.對原始碼進行編譯

[[email protected] /]#cd st-load-master/

[[email protected] /st-load-master]#./configure

[[email protected] /st-load-master]#make

編譯完成後在objs目錄下生成可執行檔案

[[email protected]

/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

 

 

  •