SRT协议在电视直播中的应用

本文来自安徽广播电视台 直播技术工程师 张博力在LiveVideoStackCon 2020 线上峰会的演讲,详细介绍了SRT协议在信号传输、远程制作等方面的应用,以及实际工作中遇到的相关技术问题。


文 / 张博力

整理 / LiveVideoStack

非常高兴能和大家在首届音视频线上峰会上和大家进行分享和讨论。我是来自安徽广播电视台的张博力。本次分享的主题是SRT协议在电视直播中的应用。

首先我会介绍一下行业背景,也就是今天讨论的SRT应用到底是在一个什么样的行业之中进行的。

第二,我会和大家分享一下SRT协议的流程、原理,其中将会重点介绍的是SRT数据包结构以及怎么运用数据包结构的知识来排除链路故障。

第三,我会分析一下安徽广播电视台首次5G直播中SRT协议的应用,并尝试提出SRT链路安全冗余量(Secure-Margin)的概念,接着讨论如何调整参数来实现足够的安全冗余量,以及不同直播场景下的调整策略。

第四,我会和大家简单介绍一下电视节目远程制作中SRT技术的应用。

1

行业背景

广电行业可以说是一个比较传统的行业,按照传统的划分,一般只要拥有五项功能,就可以称为是一个类似电视台的机构或组织。这5项功能是信号的采集、编辑、节目的播出、素材的存储以及最后节目的传输。以上只是电视台技术领域的基础划分,并没有涵盖电视台下游的分发端。

如果按照更现代一些或者说更宏观一些的划分,广电领域的工作流程可以分为三项。第一项叫节目的制作(Contribution),第二项是节目的分发(Distribution),最后就是面向客户的交付(Delivery)。本次分享的内容主要与前两项相关,也就是在节目的制作和分发领域中,应该怎么样使用SRT技术。另外随着广电领域的扩大化,泛广电领域的工作流程也是类似的。

SRT在泛广电领域内的应用较早,大概在2015/2016年就已经开始。在很多技术区域,我们已经在使用SRT技术。首先从拍摄机位的信号来说,传输到直播车或演播中心,都可以使用SRT。另外制作好的节目传输到电视台,以前都是使用卫星或者光纤之类比较昂贵的传输方式,现在也可以通过公共互联网使用SRT技术来实现。在电视台播出之后传给各个分发商,这些分发商包括传统的有线网、上星站、无线覆盖或者直接对接CDN。对于CDN或者直播平台,我们之前是使用RTMP,但现在也有一些流媒体服务器的解决方案使用SRT作为上传推流的方式。

2

SRT协议

2.1 SRT协议简介

实话实说,我第一次接触到SRT协议时的反应是:这不是我们之前看剧的时候下载的字幕格式srt吗?其实不是的。

SRT是Secure、Reliable、Transport三个单词的缩写,分别代表了安全,可靠和传输。安全是指它可以对传输内容进行加密。可靠是指它能对抗有损网络中的丢包和抖动,传输就是针对点对点的传输。

SRT于2017年开源,其发展势头一直不错。上图是一个来自Broadcast IP Transformation Report的传输协议使用调查,尽管这个调查是全球范围内没有细分领域的调查,但是我们可以看到SRT是处在第一梯队的。

SRT是一个开源协议,它在github有一个非常活跃的社区。从2017年到2020年的Issues和Pull Requests的数据可以看出这个社区有多活跃。

我们大概从2018年开始接触SRT,也经过了很长时间的学习,有一些觉得不错的学习资料想和大家分享一下。

图左是SRT的技术综述(89页),它更像一个规范,这是学习SRT的朋友都绕不过去的一本书。第二本图书是SRT联盟推出的部署指南,这本书更针对实际使用者,告诉我们怎么应用SRT,怎么部署,怎么穿越防火墙,怎么调整,出错了怎么办等等,这也是一本大概四五十页,内容非常详细的指南。当然咱们可以通过github去学习。SRT在今年三月份提交了一个RFC的草案,第二个网址是草案的全部内容,内容是对最新版SRT非常详尽的概述,此外Haivison和SRT联盟官网也有非常多的资料和白皮书可供下载。当然,学习SRT最主要的是实践,无论是从应用还是开发的角度,实践都是最好的学习方式。

我们尝试总结一下SRT到底是一个什么样的协议。

当然SRT在不断的发展,它的野心也是很大的,SRT现在开发了许多新功能,包括传输大文件、小的对话数据等等。但是SRT的“传统优势领域“还是实时的视音频传输,SRT本质上是一个点对点的传输协议(单播而不是组播)。SRT的亮点在于能够克服有损网络中的抖动和丢包。SRT目前还是专注于节目的制作和分发,而不是交付。最后两个也是SRT独有的特点,SRT拥有一个强制的延时量,并且这个延时量是固定不变的,但是这个延时在网络搭建之前可以由用户进行调整,另外SRT可以对内容进行加密。

SRT是如何实现这些功能的呢:

  • 首先,SRT协议以UDP协议为基础,传统观念认为UDP协议不可靠,但实际它的效率很高,具备稳定、可重复并具有连续吞吐量的数据包投递机制。

  • 第二,SRT采用握手机制建立连接。这个握手机制非常高效,只需使用两个往返就可以完成握手、信息交互、参数交互。

  • 第三,SRT使用了改进后的ARQ自动重发请求技术,也逐步开始支持FEC前向纠错。

  • 第四,封装协议中带有精准的时间戳。

  • 最后SRT通过设定延时量,统一规定了发送端和接收端缓冲区的大小。实际上延时量也决定了缓冲区可以使用的大

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值