硬件环境:

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