介绍
在一个完整的流媒体服务框架中,角色就是"两端加一服",即推流端、拉流端加上流媒体服务器,按照应用场景的不同,协议又分推流协议和拉流协议。国内的面向大众的直播平台都是采用的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的信息