视频很卡,播放不了,缓冲区突然很大,推流上不来,都有可能是带宽过低,SRS支持测试客户端到服务器的带宽。

SRS配置

SRS配置一般是单独加一个vhost支持测速。SRS的带宽测试默认配置位于安装目录下的conf/bandwidth.conf。譬如:

listen              1935;
vhost __defaultVhost__ {
}

vhost bandcheck.srs.com {
    enabled         on;
    chunk_size      65000;
    bandcheck {
        enabled         on;
        key             "35c9b402c12a7246868752e2878f7e0e";
        interval        30;
        limit_kbps      4000;
    }
}

其中:

  • key
    服务器的key,若客户端给出的key和配置的不一致,断开连接
  • interval
    测速的间隔,单位为秒,可为小数。若连续发起测速,时间间隔小于interval,服务器拒绝连接
  • limit_kbps
    测速的最大带宽,即可以测出来的最大带宽,防止服务器收到攻击

假设服务器的IP是:192.168.123.22

Flash测速工具

启动后用带宽测试客户端就可以查看:http://ossrs.net/srs.release/trunk/research/players/srs_bwt.html?server=192.168.1.22

备注:请将所有实例的IP地址192.168.123.22都换成部署的服务器IP地址。

检测完毕后会提示带宽,譬如:

《直播从零开始》SRS 带宽测试_服务器

测速库

提供了AS和JS的库,可以直接调用用于和服务器测速。

AS的库,直接拷贝文件SrsBandwidth.as到工程,调用即可(参考注释说明):

JS的库,需要拷贝srs_bwt.swfsrs.bandwidth.js,调用方法参考js说明:

备注:JS需要调用swf导出的js函数,由Flash发送RTMP包测速,因此js库依赖于as。可以导入Flex工程自己编译,或者使用已经编译好的srs_bwt.swf

https://github.com/ossrs/srs/wiki/v3_CN_BandwidthTestTool