SRT 传输设置

在各种复杂的网络环境下都能顺利地传输视频,就必须要学会如何去优化SRT传输设置,这是让SRT工作在最佳状态的关键。
转载 自 https://blog.csdn.net/weixin_42228920/article/details/90946259

Round Trip Time(RTT,往返延时)

RTT(往返延时)表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。我们可以通过RTT知道两台设备(在我们的应用中,即为SRT源设备和SRT目标设备)在网络中的距离。在配置SRT传输时,我们就能以这个值为参考,设置带宽开销以及传输延时。
当两台设备连接在局域网的同一台交换机上时,RTT值几乎为0(小于1 ms),而随着基础设施建设原来越完善,即使跨越大洋,也可能得到很低的RTT值。
要想得到两台设备间的RTT值,我们可以使用ping命令。例如,如果我想知道我的电脑和Google在美国的免费DNS服务器8.8.8.8之间的RTT值,就可以使用电脑ping这个IP地址,从而得到他们之间的RTT值,如下图,我们从中可以知道,此时该网络链路RTT值平均约为50 ms。

RTT Multiplier(RTT倍数)

计算延迟用的系数,可以反映拥塞程度 与RTT的关系
SRT Latency = RTT Multiplier * RTT
拥塞会导致srt的控制信息数据包的交换量增加,这些额外传输的数据包的传输时间受限于RTT
为了抵消掉这些额外的数据包的传输延迟,就必须增加SRT延迟
调整SRT延迟的依据就是 RTT Multiplier
可以理解为:RTT Multiplier 表示了SRT传输中,对一个数据包的最大重传次数;
公式 SRT Latency = RTT Multiplier * RTT 用于计算SRT的理论延迟是最理想的。

Packet Loss Rate(丢包率)

表示丢掉的数据包占总发送数据包的百分比
把出现丢包的情况大致分为两种:

Constant loss(稳定的丢包)

  • 链路的丢包率不会出现太大波动,基本处于一个恒定的数值。在这种情况下,要想稳定传输,就要求SRT开销应不小于此时的理论最小值(如下公式):

Minimum Bandwidth Overhead = 1.65 * Packet Loss Rate
丢包需要额外的带宽开销,丢包率是重传包数目/发送包数目 计算,稳定丢包情况下的带宽开销最小值是
1.65 * 丢包率

Burst loss(爆发式丢包)

链路会出现大量连续的丢包,并且丢包量达到或超过SRT latency buffer(缓存区)内缓存的数据包量。在这种情况下,要想稳定传输,要求SRT开销应不小于此时的理论最小值(如下公式):
Minimum Bandwidth Overhead = 100 ÷ RTT Multiplier
这种爆发式丢包一旦持续时间超过了设置的SRT延时,将会导致接收端收到的流中断,所以,SRT传输延时应该保证永远大于最差网络环境下的网络持续丢包时间。
爆发式丢包,丢包时间超过了SRT延迟时间,就会导致接收端无数据而中断,因此SRT传输延迟要远大于最差网络环境下的网络持续丢包时间。
这种情况的最下理论带宽开销是 100 除以 RTT倍数

Bandwidth Overhead(带宽开销)

根据网络链路质量设置的百分比值
这个百分比值乘以编码器编码的视音频总码率,就可以得到Bandwidth Overhead允许的最大开销
这个值与视音频码率的总和就是当前SRT传输带宽的最大值,也就是这个SRT通道可以使用的最大带宽。

Latency(延时),SRT加密

SRS 的srt参数文档

发布了693 篇原创文章 · 获赞 58 · 访问量 220万+

猜你喜欢

转载自blog.csdn.net/commshare/article/details/104391943
今日推荐