介紹
在一個完整的流媒體服務框架中,角色就是"兩端加一服",即推流端、拉流端加上流媒體服務器,按照應用場景的不同,協議又分推流協議和拉流協議。國內的面向大眾的直播平台都是采用的rtmp、httpflv和hls技術:
安裝
1、安裝編譯環境:yum install git unzip patch gcc gcc-c++ make
2、下載工具:git clone https://github.com/winlinvip/st-load.git
3、進入工具目錄:cd st-load
4、編譯:./configure
5、安裝:make
6、查看生成的文件和目錄:ls objs/
參數詳解
-i 設定輸入流
-c 負載個數,默認:1
-r 后面接每個測試的url地址,等同於 --url URL
-s 線程啟動時間 defaut:5.00, 0表示沒有延遲
注意:sb_rtmp_publish只可以推送.flv格式的視頻
推流
1、模擬單路RTMP推流:./sb_rtmp_publish -i /usr/local/ffmpeg/cnlzd.flv -c 1 -r rtmp://127.0.0.1/live/livestream
2、模擬多路RTMP推流:./sb_rtmp_publish -i /usr/local/ffmpeg/cnlzd.flv -c 10 -r rtmp://127.0.0.1/live/livestream_{i}
拉流
1、RTMP拉流:./sb_rtmp_load -c 1 -r rtmp://127.0.0.1:1935/live/livestream
2、HTTP拉流:./sb_http_load -c 1 -r http://127.0.0.1:8081/live/livestream
3、HLS拉流:./sb_hls_load -c 1 -r http://127.0.0.1:8081/hls/livestream/index.m3u8
1)HLS (HTTP Live Streaming),Apple的動態碼率自適應技術。主要用於PC和Apple終端的音視頻服務。包括一個m3u(8)的索引文件和TS媒體分片文件。
2)分段策略:HLS的分段策略,基本上推薦是10秒一個分片,當然,具體時間還要根據切片的實際時長做標注。通常來說,為了緩存等方面的原因,在索引文件中會保留最新的三個分片地址,以類似“滑動窗口”的形式,進行更新。
3)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的信息