硬件环境:
A机:
宿主机:Windows 10 with Linux subsystem
硬件配置:CPU: i7-4790K 4 Cores 8 Threads,RAM: 8G
注:宿主机主要用于启动Linux子系统运行srs-benchmark软件和虚拟机
B机:
虚拟机:Windows 7
虚拟硬件配置:CPU: i7-4790K 2 Cores,RAM: 2G
桥接网卡带宽为VBox固定值1G
注:虚拟机主要用于模拟单机云服务器配置环境,用于运行nginx-rtmp-module直播服务器
测试软件:
宿主机:
虚拟机软件:Virtual Box
直播软件: OBS
压力测试软件:srs - bench (Linux)
播放器播放测试:VLC Player
虚拟机:
直播服务器软件:Nginx-rtmp-module for windows
虚拟机环境:
首先要在Windows 10系统当中安装Virtual Box软件,并使用Virtual Box安装Windows 7 虚拟机,虚拟机联网方式为“桥接网络”,桥接网络带宽1Gbps。
其次,Win10主机安装VLC播放器,用测试直播视频正常使用,并且启动Linux subsystem 用于编译srs-bench,本步骤之所以需要Linux子系统编译,是因为少有第三方免费的rtmp压力测试软件,srs-bench系开源软件,在其许可下可以编译使用,不直接提供二进制执行文件。编译过程暂不讨论,假设已编译完成。
安装直播推流软件OBS,用于推送一路视频流到nginx-rtmp服务器上。
虚拟机Win 7安装任意流量统计软件,或者使用自带的资源管理器软件统计实时传输流量。
测试过程:
1、 首先在Win7 虚拟机中启动nginx-rtmp服务器软件,并确保1935端口没有被防火墙阻挡;
2、 在宿主机上启动OBS软件,并在演播室窗口导入待串流视频; 设置串流服务器地址;设置串流视频转码参数;
3、 VLC播放测试,确认串流的视频能够通过服务器播放。
4、 启动srs-bench,开始测试多观众端测试
本次OBS测试的一些固定推流和转码参数(非默认参数):
编码方式
缓冲帧数
OBS帧丢失等级
关键帧间隔
码率控制方式
H.264
(使用QSV x264)
30fps
允许双向帧丢失(B帧)
2
CBR
使用的编码器使用Intel Quick Sync Video 技术进行硬件H.264编码,没有使用nVidia显卡编码技术和x264的CPU编码,是因为相较之下IntelQSV有更多优势。QSV编码可以不占用CPU使用率来进行视频编码串流,并且正常播放流。nVidia的NVENC硬件编码能够调整的参数过少,低码率编码的多端播放支持差。使用x264的CPU编码要占用大量的CPU资源,会较大地影响测试数据。另外,视频延迟本次测试由于太难把控,所以暂不计入记录表。
以下为测试过程使用的各方参数与并发量统计表,并发量判定标准为VLC播放端持续流畅播放。
码率
分辨率
并发数
使用带宽(出)
CPU使用率
Nginx内存用量
VLC播放测试流畅度评分
300kbps
848x480
1
30~80KB/s
0.5%
1.9M
100
300kbps
848x480
2
60~160KB/s
1.5%
2.4M
100
300kbps
848x480
100
5~9MB/s
20%
5.6M
100
300kbps
848x480
200
10~13MB/s
25%~35%
7.5M
100
300kbps
848x480
400
16~22MB/s
45%~56%
10M
80
300kbps
848x480
500
16~20MB/s
48%~56%
12M
70
300kbps
848x480
1000
12MB/s
48%~56%
14M
10
600kbps
1280x720
1
60~120KB/s
0.5%
1.8M
100
600kbps
1280x720
2
160~260KB/s
1%
3.9M
100
600kbps
1280x720
100
8~16MB/s
15%~25%
5M
100
600kbps
1280x720
200
19~23MB/s
23%~43%
7M
100
600kbps
1280x720
400
17~23MB/s
49%~55%
10M
70
600kbps
1280x720
500
16~22MB/s
48%~55%
18M
20
600kbps
1280x720
1000
10MB/s
50%~55%
24M
0