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


3. SRT在5G直播中的运用
3.1 安徽省首次5G直播

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

接下来我们来看看SRT在5G直播中的应用 。 去年年初安徽广播电视台完成了安徽省首次5G直播 , 电视台以前的直播形式都是以卫星和光纤为主 , 特点是价格昂贵 , 但是非常可靠 。 随着现在网络条件越来越好 , 也有5G网络做为支撑 , 我们使用SRT来作为主路传输 , 备路为卫星和其他协议来实现直播 , 另外还使用SRT构建了一个回传链路 , 方便节目的制作 。

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

这是5G直播的设备示意图 。 这里需要说的是由于SRT的开源特性 , 它在工作中使用起来是非常方便的 , 和其他的单位或公司对接也相当便捷 。 因为他不会区分品牌、软件/硬件编码器等等 。 比如我们安徽广播电视台的这次5G直播 , 使用了三个品牌的SRT的设备 。
3.2 链路安全冗余量

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

第一次在大型的直播中使用SRT链路我们内心也是很忐忑的 , 卫星和光纤我们可以通过一些指标去判断链路是否安全可靠 , 但SRT链路并没有相应的指标 。 我们通过一些学习和测试 , 提出了安全冗余量(Secure-Margin)的概念 , 可以用来衡量SRT链路的安全可靠程度 。
3.2.1 延时量

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

在此之前还是要聊一聊延时量 , 从而引入链路安全冗余量的概念 。 咱们之前说过延时量实际上决定了缓存区的大小 , 而且双方都需要知晓延时量 。

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

延时量是在接收端产生的 , 但是发送端也需要知晓 。 举个不恰当的例子 , 隔壁老王对你说:“兄弟 , 江湖救急 , 礼拜五24:00之前我需要一笔钱 。 ”那么你就知道了 , 他需要这笔钱的时限是在礼拜五24:00之前(相当于双方都知晓了延时量) 。 如果你恰巧在礼拜五24:00的时候才刚刚凑到了钱 , 那么你已经知道 , 即使现在你把钱送给老王也来不及了(因为送钱也需要RTT/2的时间) 。 那么你会怎么做呢 , 就是默默的把钱收好不给隔壁老王了:)
这种情况在SRT里面有一个对应机制叫做:过迟丢弃TLPD(Too Late Packet Drop) , 指在发送端会主动丢弃一些数据包 。 双方都知道延时量 , 发送方知道即使数据包发过去也过期了 , 就直接将其丢弃 。 本质原因是:我们是在进行实时视音频传输 , 而不是传文件 。
另外双方都知晓延时量还有一个用处 。 比如说我是老王 , 我在礼拜五24:00之前还没有收到钱 , 那么我也明白即使24:00之后你再给我钱也没有用了 。 但是做人留一线 , 日后好相见:)那么我会给你回个信息 , 告诉你钱已经凑够了不用担心了(实际上没凑够) 。
对应到SRT协议 , 接收端会在估算到这个包已经来不及重传的情况下 , 返回一个肯定应答ACK给发送端 , 而不是否定应答NAK 。
3.2.2 缓冲区状态图

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

上图是缓冲区状态图 , 包括了发送端缓冲区和接收端缓冲区 。 延时量就像窗口一样在向前滑动 。 随着延时量窗口的滑动 , 发送端过期的包就会被丢弃 , 就也是刚刚所说的过迟丢弃TLPD 。 另外随着窗口的滑动 , 接收端滑出窗口的包就会被送给解码器 。
接收端接收到第6号包之后会返回一个ACK , 发送端接收到ACK之后会将2-6号数据包都从缓冲区踢走 。 这张图是一个非常好的链路状态 , 发送端缓冲区里面只有很少的数据 , 说明数据发出去之后经过了很短的时间就收到了肯定应答 , 链路状况良好 。 另外接收端缓冲区里面充满了数据 , 也说明链路状态很好 。


推荐阅读