|SRT协议在电视直播中的应用( 七 )


这主要是针对RTT没有波动的链路来设计的一个RTT乘数 , 如果链路有波动 , 实际的RTT会更复杂 。 在考虑链路波动的情况下 , 应该以波动上限进行参数计算 , 实际工作中我们架设的SRT链路都是经过了很多轮的测试和调整的 。
3.3.2 延时量总结

|SRT协议在电视直播中的应用
本文插图

我们针对SRT的延时量进行了一些总结:
在链路其他参数固定的情况下 , 提高延时量 , 安全冗余量会随之增大 , 当然我们也需要关注直播场景对延时的敏感程度 。
延时量可以在编码器和解码器上分别设置 , 若数值不一样以较高的数值为准 , 这也就意味着仅在某一端把延时量参数降低是无法生效的 。
延时量参数并不是传输链路的端到端延时 , 估算端到端延时还需要考虑编码延时、解码延时以及RTT 。
体育比赛这类直播需要很低的端到端延时 , 因为观众一定不希望从邻居的欢呼声或者朋友圈得知进球 , 这种情况需要我们非常仔细的权衡延时量和安全冗余量 , 从而找到一个折衷的参数 。 以这次5G直播为例 , 在保证充足安全冗余量的情况下 , 端到端延时只有0.5s左右 , 远小于卫星链路的延时 。
3.4 带宽开销

|SRT协议在电视直播中的应用
本文插图

前面说了SRT的很多优点 , 但其实没有一种协议是完美无缺的 。 某种程度上来说 , SRT是用带宽来换取对丢包和抖动的恢复能力 , 那么就会有一些额外的带宽开销 , 带宽开销(BW Overhead)参数就是用来设置这部分额外开销 。
带宽开销是一个百分比参数 , 计算基数为TS流比特率 , 默认值为25% , 实际可设置为5%-50% , 这部分额外带宽被用作重传数据包、传输反向控制数据 。 据SRT大联盟测算每丢失一个数据包都会在消耗400b的反向传输带宽 。
3.4.1 带宽开销示意图

|SRT协议在电视直播中的应用
本文插图

这张图可以帮我们更好地理解带宽开销的功用 。 链路崩溃时 , 我们需要使用缓冲区的数据 , 当链路恢复后 , 就需要利用带宽开销来弥补对于缓冲区数据的消耗 , 弥补的过程被称为突发期(BurstTime) 。 经过突发期之后 , 链路又恢复了正常传输 。 需要注意的是图中A和B的面积是相等的 , 这会导出一个关于带宽开销的公式(下文会给出) 。

|SRT协议在电视直播中的应用
本文插图

链路可用带宽=流比特率*(1+带宽开销) 。 但实际上 , SRT联盟还是建议留一些余量 , 其建议的链路可用带宽=流比特率*(1+带宽开销)*1.33 。 假设使用HEVC方式编码超高清视频 , TS流比特率为40Mbps , 带宽开销为25% , 链路可用带宽应高于建议值为66.5Mbps 。
可能会有人觉得这个带宽还是很大 , 但对于需要使用SRT协议的传输工作来说 , 这个带宽还是可以接受的 , 因为并不是要求手机端具备这个带宽 , 更多还是在节目制作和节目传输中使用的带宽(BtoB) 。
区域A和区域B的面积必须相等 , 因此SRT链路能够容忍的网络中断时间为延时量*带宽开销 。 实际上综艺晚会或者政府会议这类对延时并不敏感的直播工作 , 就可以考虑充分利用延时量和带宽开销这两个参数来大幅度增强链路的可靠性 。 假设我们在这种情况下设置延时为8000ms , 带宽开销为50% , 那么网络中断低于四秒钟都不会影响SRT链路的正常工作 , 这一特性甚至是卫星和光纤链路都不具备的 。
3.5 MTU最大传输单元

|SRT协议在电视直播中的应用
本文插图


推荐阅读