随着广播电视的不断发展与消费者对于音画体验的要求不断提高,传输方式亟需与时俱进迎来新的变革。安徽广播电视台的张博力将从卫星传输、公网传输SRT协议理论入手,经过分析链路测试报告,给出4K卫星传输的链路搭建方案,并重点分析在实际应用中如何保证公网传输的安全性和可用性。
文 / 张博力数组
整理 / LiveVideoStack安全
你们好,我是来自安徽广播电视台的张博力,接下来我将为你们详细介绍泛广电领域的卫星传输和公网传输。网络
随着广播电视的不断发展与消费者对于音画体验的要求不断提高,传输方式亟需与时俱进迎来新的变革,这不由让咱们感到好奇:4K时代卫星传输可否胜任?公网传输做为一种新的选择,可否担当起主流广播电视服务的传输责任?架构
我是电视台的技术工做者,按照传统广电的理论,广播电视台的工做能够简单归纳为如下几点:采、编、播、存、传——也就是采集、编辑、播出、存储、传输。可是如今,不管你是制做公司仍是我的用户,只要拥有这五项工做所须要的设备,你就能够组建出属于本身的类广播电视系统,因此咱们今天讨论的也是在泛广电领域下,卫星传输与公网传输的前世此生与将来发展。并发
现代泛广电领域的工做流程,按顺序能够简单归纳为“制做”、“传输”与“分发”,这与以前传统广电领域“制做”、“分发”与“传输”的顺序有所不一样,主要缘由是这里咱们分享与讨论的“传输”,是指从制做端到分发端的高效可靠低延迟B to B传输。框架
这里咱们能够选用多种传输方式,最多见的就是传统广电领域使用多年的卫星传输和如今逐渐流行的公网传输。运维
这里的卫星是同步轨道卫星,随地球一块儿自转,相对于地面的位置始终不变。转播车将数据沿卫星链路发送给同步轨道卫星,再借助卫星发送至电视台制做基地。不须要线缆、网络便可完成跨国甚至洲际间广播电视传输,稳定可靠。ide
上图展现的就是卫星链路的传输示意图。工具
首先在发射端,咱们传输的数据确定不能是基带信号而是通过信源编码的信号,这里以HEVC为例。HEVC编码完成的信号在传输以前还须要通过信道编码(FEC编码)、交织星座映射、I/Q调制与数字预失真以及SRRC滤波器等一系列处理,接下来还需通过上变频放大器(BUC)与高功率放大器(HPA)提升信号频率与功率,处理完毕的信号会经过天线沿上行链路传输至卫星转发器;卫星转发器这里接收信号后再将信号放大并发射,信号沿下行链路传输至制做基地的接收端并在接收端通过一系列与发射端反向的信号处理工做以后,基带信号才算是正式传输完毕。性能
上图展现的卫星传输链路设备图能够更直观地说明卫星传输链路的工做流程。首先,第一步信源编码须要超高清编码器,随后的调制则须要调制器的参与;接下来的上变频与高功放处理模块则是为了让信号更加稳定可靠地沿上行链路传输至卫星,而卫星天线则负责发射信号;由卫星天线发射的信号被高频头接收,并通过解调器的解调处理和解码器解码,得到目标信号,这也是安徽广播电视台构建的全国第一套KU波段车载4K卫星传输系统。
为何说4K给卫星传输带来了新的挑战?咱们知道4K相对于1080i,其分辨率提高到四倍,帧率提升到两倍而基带码流提升到8倍。若是使用传统H.264编码方式,4K下的码流是原有全高清码流的8倍,;而若是使用H.265进行编码,4K下的码流则是原有全高清码流的4倍,其所带来的编码效率提高是显而易见的。
尽管如此,4倍的码流提高对卫星传输而言也是一项艰巨的挑战,由于卫星传输是一种典型的带宽受限的传输系统。
一颗卫星由火箭送入太空,须要在太空工做十几年;十几年的技术发展日新月异,用户对于高质量音画体验的追求愈来愈高,但卫星的传输带宽却始终不变;而卫星不管是其发射代价仍是运营维护成本都十分高昂,频繁升级其带宽也是不现实的。这就须要咱们充分利用有限的卫星带宽资源实现传输质量的最大化,而究竟能充分利用到什么程度呢?数学家克劳德·香农给出了这个问题的答案。
1948年数学家克劳德·香农在论文《通讯的数学原理》与《噪声下的通讯》中,给出了在加性高斯白噪声信噪下信道的最大容量:
最大容量只由信噪比与带宽两个变量决定,也就是咱们若是知道带宽与信噪比,就能推断出该条件下所能传输信号的最大码率。
例如在30dB的信噪比下,信号与噪声之比为1000倍,有线传输(同轴电缆等)所能承载的最大数据容量为带宽的10倍;若是是在卫星传输中常见的10dB信噪比下,那么最大容量为带宽的3.46倍。这一数值也就是10dB信噪比下卫星传输的极限值,使用卫星传输的广播电视行业也是在用一代代演进的标准逐步逼近这一极限值——香农极限。
因而咱们不能不说的就是卫星传输标准的演进。1993年,DVB-S正式被做为一套完整的适用于卫星传输的数字电视系统规范,我国也是率先采用了DVB-S。2005年推出的第二代卫星传输的数字电视系统规范DVB-S2采用了新的信道编码方式——LDPC内码与BHC外码,有效提升了频谱效率;2015年提出的扩展标准DVB-S2X则支持更低的滚降系数和更高阶的调制方式,进一步逼近了香农极限。
DVB-S2X是如何逼近香农极限呢?以下图所示,图线表示的是载噪比和频谱效率的比值,虚线是香农极限也就是上限。能够看到表示DVB-S2X的红色图线已经很是接近香农极限,而表示DVB-S2的蓝色图线略逊于DVB-S2X。在低滚降系数下信噪比和载噪比的数值是比较近似的,结合刚才的计算咱们能够来看一下,以刚才咱们提到的载噪比10dB为例,刚才咱们计算的10dB下信道最大容量为带宽的3.46倍,观察图线咱们能够发现DVB-S2X的频谱效率不到3倍,香农极限约为3.5倍,与咱们的计算结果相符合。
接下来咱们须要了解DVB-S2的系统框架,下图展现的为DVB-S2的系统框图。
能够看到信号会首先被输入至模式适配与流适配工具,在这里进行合并分割、与结合基带信令的流适配;随后信号进入前向纠错编码处理,这里咱们以3/4编码为例(能够简单理解为4个数据里面有3个有效数据1个纠错数据),前向纠错编码(BCH外码+LDPC内码+比特交织)以后信号会通过星座映射与物理层组帧,最后进入基带成形与正交调制阶段。很是重要的一点是在基带成形阶段其滚降系数在DVB-S2X标准下会发生很大变化,0.35可能降到0.05,滚降系数下降意味着信道编码效率的提升。
在相同带宽状况下,滚降系数0.05时符号率更高,波形中平坦的部分更宽,而0.2则相对较窄。尽管滚降系数提升了效率,但滚降系数越低其信号强度也越小。从图中咱们也能够看到滚降系数为0.2时的信号,其强度要高于滚降系数为0.05时的信号。根据计算,若是滚降系数从0.2降到0.05,那么接收的信噪比会降0.6dB,这种信噪比的下降是否值得?
带宽=符号率*(1+滚降系数)其中符号率为单位时间内所能发送的符号数,也就是实际利用能够传输数据的有效带宽当中平坦的部分。
以卫星传输常租用的9M带宽来计算,当滚降系数为0.35时,传输所能使用的带宽仅为6.67M;而当滚降系数下降至0.05时,传输所能使用的带宽最高可达8.57M,相对前者提高了28.5%。以信噪比下降0.6dB为代价,换来28.5%的可用带宽提高,这对咱们来讲是很是划算的选择。能够说滚降系数的下降是一项很是出色的改进,应当善加利用。
低滚降所带来的28.5%的可用带宽提高实际上还没法知足4K的传输需求,因此咱们还须要优化调制方式。下图坐标系中包含了卫星传输常见的调制方式,包括QPSK、8PSK、16APSK、32APSK。如何理解坐标系呢?坐标系的横轴与余弦初始相位同向,竖轴与其正交,该坐标系包含了调制所需的全部相位(调制)资源和幅度(调制)资源。
首先,QPSK也就是二阶调制下,4个状态点均分360度,每一个状态点相位相差90度;能够理解在接收端,相位相差90度的正交相位点易于识别和解调。接下来8PSK也就是三阶调制下,8个状态点均分360度,每一个状态点相位相差45度,解调端解调的难度相对于二阶调制更大。
此时调制方式的发展面临瓶颈:若是从三阶调制升级到四阶调制,意味着16个状态点均分360度,状态点之间的相位差为22.5度,太小的欧拉距离极容易致使相位模糊和符号间干扰,继而形成接收端很难对信号进行有效解调。突破该瓶颈的解决方案是结合相位调制和幅度调制,如16APSK所示那样将外圈分为12个状态点而将内圈分为4个状态点,以此凑齐了16个状态点。有的状态点尽管同相位但幅度不一样,经过幅度与相位双重调制,咱们实现了四阶调制16APSK。四阶调制的意思是若是不考虑前向纠错带来的效率损失,其频谱效率可达4倍,实际频谱效率咱们能够经过观察下图获知。
根据上图咱们不难发现,在16APSK下,当LDPC纠错码率为3/4时(为保证信道可用,纠错是必需的过程) 频谱效率可达3倍。这样的频谱效率能够说是很是可观了,咱们能够看到在32APSK下,当LDPC纠错码率为0.9时,频谱效率为4.5。要知道在符号率与带宽必定的状况下,更高的频谱效率意味着能够传输更高的码流,可是如此高性能高效率也是有必定代价的,那就是高阶调制和高纠错旅会大幅提高接收门限。
根据上图表格咱们能够看到,MOD=QPSK、COD=3/4而频谱效率为1.487时的接收门限为2.3,MOD=16APSK、COD=9/10而频谱效率为3.567时的接收门限为7.6,如此高的接收门限不管是对发射天线仍是接收卫星而言都是一项巨大的挑战。若是追求极致的效率与极致的性能,咱们也要付出极致的代价,甚至要冒着接收失败的风险,这无疑是得不偿失的。
咱们能够认为低滚降系数与高阶调制能够提高频谱效率,而高阶调制与高纠错率却也提高了接收门限。但接收门限是一项必须被控制在合理范围以内的参数,若是接收门限太高那么就意味着连正常的信号接收都没法保证,其余性能指标的提高都是纸上谈兵。这时你们都会想到一个问题:为何不能增长信噪比?只要信噪比增长的幅度追得上接收门限的提高,就能够不用担忧此问题?在解答该问题以前咱们须要对卫星传输链路进行详细分析。
因为受到硬件设备的客观限制,卫星链路传输中许多参数为固定值,想提高基于卫星链路传输信号的信噪比并非一件容易的事情。例如转发器接收品质因数G/T与转发器最大下行EIRP均没法改变,都致使卫星传输链路当中信噪比不能无限制地增长。因而提高频谱效率的同时有效控制接收门限,是咱们解决卫星传输4K广播电视信号须要践行的技术关键。如何找到两者之间的最佳平衡?经过大量的测试!
上图展现的测试数据结果是咱们完成的多是国内第一个KU波段的4K卫星链路信号测试,咱们实际上是使用了许多参数组合,在不一样参数组合下选择不一样的带宽和符号率并实际测量了接收信号的信号强度、载噪比、载噪比余量等,最后得出了最合适的四个参数组合(图中背景灰色高亮的四行数据)。观察这四组数据咱们能够看到前三组数据的实际可用码率都在40Mbps左右,也就是说4K广播电视信号通过HEVC编码以后,若是码率在40Mbps左右,其质量能够说很是出色了,这也表示该三个信道能够知足4K广播电视信号的传输需求;若是带宽实在受限,例如只有与高清同样的9M带宽,那么咱们只能选择合适的参数也就是第18组参数,能够在确保接收门限合适的状况下实现大概27Mbps的编码后码流。
总结以上内容,咱们能够认为卫星传输链路具备如下三大需求:
但三个需求全都达到极致是不可能的,咱们须要寻找到一个合适的平衡点,而寻找该平衡点的重要参数为如下三个:调制方式、前向纠错与滚降系数。这三个参数会在不一样程度上同时影响频谱利用率与接收门限,这就使得每一条卫星链路的搭建都须要进行链路测试并寻找到合适的参数组合与设备选型。
传统基于卫星传输的广播电视系统,鉴于其高昂成本与复杂架构,只有大公司或公共电视台才有能力使用;而进入4K时代,成倍增加的数据传输量更是将卫星发射、链路组建和运维成本提到了新的高度。因而公网传输提供了一种新的选择,逐渐被应用在广播电视领域。
这里咱们只讨论单播协议,更多的是指点对点的传输。有多种选择例如RTMP、SRT、ZIXI、UDP等。其中RTMP虽然门槛低但因为基于TCP,其不管是时延仍是性能都不尽如人意;而基于UDP且带纠错与差错控制的协议如SRT、ZIXI等也是点对点传输,若是网络条件足够好,那么你也可使用裸露的UDP协议。
接下来咱们详细聊一聊SRT协议。
SRT为“Secure”、“Reliable”与“Transport”三个单词的首字母,意思是安全可靠传输协议,由Havision公司开发并将其开源,是一个基于UDP的传输协议。我想你们听到UDP内心不由会产生疑问:UDP协议可靠吗?
实际上,尽管UDP的效率比较出色,但其并非一个可靠的传输协议,没法对传输结果负责。
下图展现的是在模拟2%丢包的网络环境下使用UDP协议传输的测试结果,卫星链路传输与公网传输的目的是一致的,都是将信源编码后的视音频码流传输到目的地。这里对比编码后的视音频码流与通过公网传输后的码流,能够看到原来编码后的视音频码流具备固定的帧间隔与必定特性的可变比特率,但通过公网传输后的码流,其帧间隔变得不固定且码率特性也被彻底改变,解码这样的信号是一项十分艰巨的挑战,甚至根本没法解码。
而若是使用加入纠错的SRT协议进行公共互联网传输,尽管编码后的视音频码流通过公网传输帧间隔变得不固定,但因为SRT协议封装中包含精准的时间戳,解码接收端能够经过该时间戳重现固定的帧间隔;更重要的是,经过规定延时量,同时划定了发送端缓冲区与接收端缓冲区,来自接收端的反馈信号(能够理解为后向纠错)经过一系列的设置、纠错、流量控制,使编码后的视音频码流拥有与原码流几乎同样的码率特性。下图展现的就是在模拟2%丢包的网络环境下使用SRT协议传输的测试结果。
为何SRT能够实现这样的效果?简单分析,缘由主要为如下五点:
● SRT以UDP协议为基础,具有稳定、可重复并具备连续吞吐量的数据包投递机制。(这种特性使得其很是适合用来传输实时的音视频广播电视信号。)
● 在UDP之上采用握手机制创建链接
● 使用了改进后的ARQ技术(后向纠错技术)
● 封装协议中带有精准的时间戳(用以实现精准的帧间隔)
● 经过设定延时量参数,统一规定了发送端和接收端缓冲区的大小
上述特性具体是如何实现的呢?下图展现了SRT协议的流程图
首先,SRT的握手远没有TCP的三次握手那么复杂,Caller与Listener之间进行的是一个简化版的握手,用以提升效率;握手以后Caller与Listener间进行重要信息的交换,整个SRT的第一项关键步骤就是Caller与Listener在这里交换了延时量与缓冲区的大小;随后Caller与Listener之间开始媒体数据的传输,同时也传输了为恢复帧间隔而封装的精准时间戳;SRT的第二项关键步骤是Listener向Caller同步控制信息,用以对抗公网中的抖动、丢包等一系列突发情况;最后,待至媒体数据传输完毕以后关闭传输。
这里你也许会感到好奇:控制信息是如何对抗公网中的抖动、丢包等一系列突发情况呢?如何实现差错控制和流量控制?其实是经过ARQ技术也就是自动重发请求。
ARQ技术的基本概念很简单:发送端在将数据包发送至接收端后并不急着把数据包删除,而是等待接收端给出ACK-确定应答以后才会删除;而若是发送端在将数据包发送至接收端后,接收端给发送端反馈NCK-否认应答,那么发送端会向接收端从新发送数据包,这就是一种纠错机制;或者是在发送数据包以后等待一段时间,若是收到NCK-否认应答那么就会自动重发数据包。
以上图为例,假设发送端缓冲区发送五个数据包:一、二、三、四、5给接收端缓冲区,接收端缓冲区成功接收到这些数据包以后会向发送端缓冲区发送ACK——确定应答,发送端接收到ACK——确定应答以后会删除一、二、三、四、5这五个数据包并准备发送数据包6。
在成功接收数据包以后,接收端缓冲区会逐个拿出数据包输送至解码器以进行解码操做,最终输出相应的音视频;在解码的同时缓冲区窗口就会向前滑动,输送下一个待解码的数据包。
以上是不考虑丢包等异常情况的理想网络条件,若是考虑丢包呢?
如上图所示,假设数据包4出现了丢包的状况,那么此时接收端缓冲区须要检测到这一异常并马上发送NAK-否认应答至发送端缓冲区,发送端会再次发送数据包4。而若是出现返回信息也就是ACK/NCK在网络中丢失,该如何应对?其实SRT对ARQ作出了大量改进,包括重发全部过时的ACK、按期重发NCK策略等。实际上SRT实现了ARQ的第三次飞跃,很好地解决了在网络中的丢包和抖动,能够说这是SRT协议中最重要的部分。
而在实际应用中咱们应当如何理解发送端缓冲区与接收端缓冲区?
发送端缓冲区发送信号,只有在收到来自接收端的确认信息以后才会删除数据包,没有收到确认信息则不删除;这种状况下,若是发送端缓冲区充满了数据包,说明一直没有收到来自接收端的确定应答,数据一直保存在发送端,这可能意味着传输出现了异常。因此SRT在实际应用中须要注意,发送端缓冲区的占用率越少越好。
接收端缓冲区的终极目的是将数据包输送给解码器以进行解码,咱们以去自助餐厅吃饭为例:
解码器就像图中的壮汉,须要一直不停地吃,考虑动态码率VBR的做用,壮汉的胃口时大时小;一旦饿着,解码出的图像和声音就会中断。而餐盘其实就像接收端缓冲区,其中必定须要充满了食物也就是待解码数据。尽管一直有人在上菜,就像公网传输码流不断进行,但上菜时快时慢,就像网络带宽有波动,万一网络很差,上菜的速度没有壮汉吃的速度快,即会形成编码的中断,所以咱们必须确保餐盘里始终充满了食物。
所以咱们得出如下结论:接收端缓冲区必须充满了数据,以让其可以有效应对因为网络带宽波动形成的传输码流不稳定。因此SRT在实际应用中须要注意,接收端缓冲区的占用率越高越好。
将以上内容过渡到实际应用当中,能够帮助咱们更好地理解这一规律——下图展现的是安徽广播电视台进行第一次5G直播时的状态监测图。
● 发送端状态分析
首先是发送端状态图:白色线为链路往返的时间,5G下的网络环境已经足够出色,因而能够看到链路往返一直处于较平稳的状态,说明网络环境与带宽质量一直处于较为理想的状态;黄色线为咱们规定的延时量也就是发送端缓冲区的大小,以前咱们也聊到发送端缓冲区其实占用的越少越好,根据图中能够看到当时占用的发送端缓冲区并不高。
可是即便是5G网络也有网络波动:图中能够看到在网络波动出现时缓冲区的占用也激增,即使如此仍留出了一半左右的安全冗余量。
● 接收端状态分析
接下来是接收端状态图:上图的上半部分中绿色线表示丢包率,能够看到5G网络下的丢包率很是低;下图红色线表示RTT链路往返时间,也是一直处于较为稳定的状态。
上图的下半部分,图中黑色线表示接收端缓冲区的上限也是延时量,最好的状况就是绿色线一直贴着黑色线波动,表示接收端缓冲区一直处于较为理想的高占用状态。
可是在5G网络中不免出现波动,能够看到出现波动时,接收端缓冲区被消耗到实际占用量接近缓冲区的一半,这就是由于网络有波动致使数据没法及时传输至接收端缓冲区,但解码却消耗了接收端缓冲区大量的数据。即使如此,通过大量的前期链路测试,咱们仍保证了在波动中可以留出大约一半的安全冗余量。
总结一下咱们勇于使用公网传输广播电视信号的缘由:首先SRT协议支持纠错,其次须要在正式商用以前进行大量的前期链路测试并为发送端缓冲区与接收端缓冲区留出合适且足够的安全冗余量。而在链路搭建阶段,进行网络链路测试时须要着重测试并关注网络带宽、丢包率与RTT也就是链路往返时间。
测试完毕以后,咱们能够根据测试结果设定合适的延时量。下图所示表格来自Havision官方,根据计算结果与表格参数咱们就能够寻找到不一样网络环境下最佳延时量的设定,也就是规定缓冲区的大小。肯定最佳延时量并设置完毕,通过一段时间的测试以观察反馈结果。
基于以上介绍的卫星链路与SRT协议下的公网传输链路,咱们实现了安徽广播电视台首次5G现场直播。
下图展现了直播中所用到的5G链路设备,值得注意的是,因为SRT的开放特性,这里咱们使用了三家不一样厂商的设备,仍然能够兼容并实现良好协调的使用,这也是开源设备的好处。
SRT可实现多码率多格式的分发,这里并非分发到用户而是分发到不一样平台。若是是基于SRT的硬件编码器,则可编码多个分辨率、格式不一样的流并分发到不一样的平台如电视台、CDN、私有云等。
SRT也可应用于节目制做中,甚至在手机上安装一个软件便可收到解码完成的流,这也常常被咱们用于节目测试。固然还有在进行一项节目时,编导、摄影师、记者等都但愿接收到电视信号,SRT的这种应用能够帮助他们随时随地动态掌握节目进行状态。
基于以上内容,咱们成功实现了如下应用案例:如安徽广播电视台首次5G直播、“长江之恋”十二省市联动大型直播以及超铁赛事在中国大陆的首次亮相,都是基于卫星链路与SRT协议下的公网传输,这也为咱们探索将来广播电视传输技术发展积累了丰富的经验。