SRS rtmp http-flv流低延时设置、测试

配置参考
https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency

延迟影响因素
编码器:不同的编码器(免费或开源的),延迟也是不同的。

流媒体服务器:SRS2

流协议:比如:rtmp是实时性比较高的,http_flv也是实时性比较高的,HLS就不行了,官方说60s之内的都可以容忍……

播放器:主要是播放器的缓冲区时长,比如flash播放器的缓存时长是3s,那么一定会有3s的延时。

网络:有网络问题导致的累积延迟。

视频码率:200k和2M的码率这个比较,当然也可以归到网络原因中去。

SRS配置低延迟
listen 1935;
max_connections 1000;
srs_log_tank file;
srs_log_file ./objs/srs.log;
http_api {
enabled on;
listen 1985;
}
http_server {
enabled on;
listen 80;
dir ./objs/nginx/html;
}
stats {
network 0;
disk sda sdb xvda xvdb;
}
vhost defaultVhost {
#最小延迟打开,默认是打开的,该选项打开的时候,mr默认关闭。
min_latency on;
#Merged-Read,针对RTMP协议,为了提高性能,SRS对于上行的read使用merged-read,即SRS在读写时一次读取N毫秒的数据
mr {
enabled off;
#默认350ms,范围[300-2000]
#latency 350;
}
#Merged-Write,SRS永远使用Merged-Write,即一次发送N毫秒的包给客户端。这个算法可以将RTMP下行的效率提升5倍左右,范围[350-1800]
mw_latency 100;
#enabled on;
#https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#gop-cache
gop_cache off;
#配置直播队列的长度,服务器会将数据放在直播队列中,如果超过这个长度就清空到最后一个I帧
#https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#%E7%B4%AF%E7%A7%AF%E5%BB%B6%E8%BF%9F
queue_length 10;
#http_flv配置
http_remux {
enabled on;
mount [vhost]/[app]/[stream].flv;
hstrs on;
}
}
测试
编码器:OBS

播放器:SRS-Player(http://www.ossrs.net/srs.release/releases/demo.html?ip=192.168.1.170)

测试协议:rtmp、http-flv

码率:

200K延时 rtmp:1-2s(1s7) http_flv: 2s2

800K延时 rtmp:2s     http_flv:3s30
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值