硬件环境:

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

                                                                                                       

 

GitHub 加速计划 / ng / nginx-rtmp-module
13.26 K
3.5 K
下载
nginx-rtmp-module: nginx-rtmp-module 是一个 Nginx 模块,用于支持 RTMP、HLS 和 MPEG-DASH 直播流媒体,提供录制、转码和HTTP回调等功能。
最近提交(Master分支:2 个月前 )
2fb11dff While rtmp module does not support SSL, starting from nginx 1.25.5 an SSL connection can be passed from nginx stream pass module. Such connections should be shut down on connection closure. An rtmps example: rtmp { server { listen 1935; # rtmp application foo { live on; } } } stream { server { listen 1936 ssl; # rtmps ssl_certificate example.com.crt; ssl_certificate_key example.com.key; pass 127.0.0.1:1935; } } 7 个月前
6f9fa49a The change repeats nginx commit cb149fa03367 and is needed for stream pass module to be able to pass connections to rtmp. 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐