单虚拟机nginx-rtmp-module直播带宽测试

来源:互联网 发布:js自定义全局函数 编辑:程序博客网 时间:2024/05/21 19:21

硬件环境:

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

                                                                                                       

 

0 0