流媒体数据传输方法、系统、发送装置及接收装置制造方法及图纸

技术编号:25959659 阅读:18 留言:0更新日期:2020-10-17 03:52
本发明专利技术提供一种流媒体数据传输方法、系统、发送装置及接收装置,所述方法包括以下步骤:发送端获取待传输的流媒体数据;依据预设的冗余策略对所述流媒体数据进行FEC编码,生成包括原始数据包和冗余数据包的FEC包,并对所述FEC包进行乱序处理;接收端获取所述乱序FEC包,对所述乱序FEC包进行FEC解码;根据所述FEC包的数据包序号SEQ恢复所述乱序FEC包的排列顺序,并判断是否产生丢包。本发明专利技术通过使用一种紧凑的FEC组包结构,将分组组内的FEC包经过随机乱序处理,动态调整不同数据包的发送间隔时间,以及使用变化的FEC冗余比,最终解决由UDP丢包产生的VOIP通话质量差的问题。

【技术实现步骤摘要】
流媒体数据传输方法、系统、发送装置及接收装置
本专利技术涉及流媒体实时传输
,具体涉及流媒体数据传输方法、系统、发送装置及接收装置。
技术介绍
在VOIP(VoiceoverInternetProtocol)等实时音视频通话技术中,通过IP(InternetProtocol)网络进行音视频等流媒体数据包的传输,为了保证通话的实时性,通常基于UDP(用户数据报协议)作为底层的传输协议(低时延、高吞吐特性),但UDP的不可靠性会对通话质量产生极大的影响,为了保证通话质量,通常采用基于NACK(NoAcknowledge)、FEC(ForwardError/ErasureCorrection)等QOS(QualityofService)可靠性手段。其中,FEC称为前向纠错技术,由发送方进行FEC编码后,引入冗余包,接收方进行FEC解码并恢复丢失的数据包,以解决由于UDP的丢包引起通话双方的卡顿,花屏等QOS问题;增加冗余包是对抗丢包常用且有效方法,在合适的冗余比下,能显著提升UDP传输的丢包抵抗力,提供可靠的音视频服务质量。FEC算法的主要原理如图1所示。图1说明如下:K个原始数据包,经过编码后得到n个包(其中包括K个源包和(n-k)个冗余包),只要接收端能接收到至少K个包,则能重建出K个原始包;这里以20个源包+10个冗余包的FEC编码进行说明,即20个源包经过FEC编码后,会得到30个FEC包,将30个FEC包发送出去,接收端如果收到了至少20个包,则可以恢复出20个源包,如果接收端收到的包少于20个,则只能解码源包,而不能恢复剩余的包。由于大部分丢包是一种随机丢包,少数丢包表现为突发性的丢包,突发性随机丢包导致丢包率超过了冗余包的阈值,导致数据传输质量低。传统的基于线性分组码的丢包恢复方案,虽然在处理分布均匀的随机丢包时可获得较好的效果,但是如果网络中出现了突发的较多个密集丢包,无差别的对每个包组添加更多的冗余包,将极大增加网络的负担。且单纯的FEC算法无法依据网络质量进行动态调整,本专利技术提出了一种改进的FEC编码方法,实现FEC开销与信道和网络条件匹配,达到通话质量和网络质量的最优分配。
技术实现思路
为了实现上述目的,本专利技术首先提出了一种流媒体数据传输方法,所述方法包括如下步骤:发送端获取待传输的流媒体数据;依据预设的冗余策略对所述流媒体数据进行FEC编码,生成包括原始数据包和冗余数据包的FEC包;对所述FEC包进行乱序处理,获得乱序FEC包;发送端识别所述乱序FEC包所携带的帧类型为关键帧还是参考帧,并根据帧类型对应的发送时间间隔,将RTP封包后的乱序FEC包通过第一数据通道发送到接收端;接收端获取所述乱序FEC包,对所述乱序FEC包进行FEC解码,获得乱序的包括原始数据包和冗余数据包的乱序FEC包;根据所述FEC包的数据包序号SEQ恢复所述乱序FEC包的排列顺序,并判断是否产生丢包;若发生丢包,接收端则通过FEC解码获得的冗余数据包进行丢包数据的恢复,获得完整的流媒体数据包。进一步地,所述发送端还通过第二数据通道获取接收端发送的网络性能指标统计数据,根据所述网络性能指标统计数据计算出网络性能评分;当所述网络性能评分未超过预设阈值时,发送端采用预设的冗余策略对新的流媒体数据进行FEC编码;当所述网络性能评分超出所述预设阈值时,发送端对冗余比进行动态调整后,按照调整后的冗余比对新的流媒体数据进行FEC编码。进一步地,所述网络性能统计数据包括丢包率、带宽、速率、延迟、吞吐量。进一步地,所述第一数据通道采用RTP实时传输协议,用于传输流媒体数据,所述第二数据通道采用TCP传输控制协议,用于进行实时通信,控制信令和RTP包丢包统计信息同步,生成网络性能统计数据。进一步地,所述FEC包携带的帧包括I帧、P帧和B帧,其中I帧为关键帧,P帧和B帧为参考帧。根据本专利技术提到的上述方法,本专利技术还提供一种发送装置,所述发送装置包括流媒体编码模块、FEC编码模块和流媒体发送模块;其中,所述流媒体编码模块用于对流媒体数据进行编码并发送至FEC编码模块;所述FEC编码模块用于依据预设的冗余策略对所述流媒体数据进行FEC编码,生成包括原始数据包和冗余数据包的FEC包,并对所述FEC包进行乱序处理,获得乱序FEC包;所述流媒体发送模块用于识别获取到的乱序FEC包所携带的帧类型为关键帧还是参考帧,并根据帧类型对应的发送时间间隔,将RTP封包后的乱序FEC包通过第一数据通道发送到接收端。进一步地,所述第一数据通道采用RTP实时传输协议,用于传输流媒体数据。进一步地,所述FEC编码模块还用于通过第二数据通道获取接收端发送的网络性能指标统计数据,根据所述网络性能指标统计数据计算出网络性能评分;当所述网络性能评分未超过预设阈值时,发送端采用预设的冗余策略对新的流媒体数据进行FEC编码;当所述网络性能评分超出所述预设阈值时,发送端对冗余比进行动态调整后,按照调整后的冗余比对新的流媒体数据进行FEC编码。根据本专利技术提到的上述方法,本专利技术还提供一种接收装置,所述接收装置包括流媒体接收模块、FEC解码模块、流媒体解码模块;其中,所述流媒体接收模块用于接收上述的发送端发送的RTP封包后的乱序FEC包并转发至所述FEC解码模块;所述FEC解码模块用于根据所述乱序FEC包的数据包序号SEQ恢复所述乱序FEC包的排列顺序,判断是否产生丢包;若发生丢包,则通过FEC解码获得的冗余数据包进行丢包数据的恢复,并将获得完整的流媒体数据包编码后发送至所述流媒体解码模块;以及,将网络性能统计数据通过第二数据通道传输到发送端;所述流媒体解码模块用于将流媒体数据解码并播放。本专利技术还提供一种流媒体数据传输系统,所述流媒体数据传输系统包括上述的发送装置和上述的接收装置。本专利技术通过使用一种紧凑的FEC组包结构,将分组组内的FEC包经过随机乱序处理,动态调整不同数据包的发送间隔时间,以及使用变化的FEC冗余比,最终解决由UDP丢包产生的VOIP通话质量差的问题,在实际使用中得到有效的验证,很好的解决了因为丢包过程中产生通话质量差的问题。附图说明图1为FEC算法的主要原理示意图。图2为本专利技术的流媒体数据传输流程的示意图。图3为本专利技术的实施例中的FEC组包示意图。图4为本专利技术的发送装置示意图。图5为本专利技术的接收装置示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细描述。应当理解,此处所描述的具体实施例仅仅用于解释本专利技术,并不用于限定本专利技术。相反,本专利技术涵盖任何由权利要求定义的在本专利技术的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本专利技术有更好的了解,在下文对本专利技术的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全本文档来自技高网
...

【技术保护点】
1.一种流媒体数据传输方法,其特征在于,所述方法包括如下步骤:/n发送端获取待传输的流媒体数据;依据预设的冗余策略对所述流媒体数据进行FEC编码,生成包括原始数据包和冗余数据包的FEC包;对所述FEC包进行乱序处理,获得乱序FEC包;/n发送端识别所述乱序FEC包所携带的帧类型为关键帧还是参考帧,并根据帧类型对应的发送时间间隔,将RTP封包后的乱序FEC包通过第一数据通道发送到接收端;/n接收端获取所述乱序FEC包,对所述乱序FEC包进行FEC解码,获得乱序的包括原始数据包和冗余数据包的乱序FEC包;根据所述FEC包的数据包序号SEQ恢复所述乱序FEC包的排列顺序,并判断是否产生丢包;若发生丢包,接收端则通过FEC解码获得的冗余数据包进行丢包数据的恢复,获得完整的流媒体数据包。/n

【技术特征摘要】
1.一种流媒体数据传输方法,其特征在于,所述方法包括如下步骤:
发送端获取待传输的流媒体数据;依据预设的冗余策略对所述流媒体数据进行FEC编码,生成包括原始数据包和冗余数据包的FEC包;对所述FEC包进行乱序处理,获得乱序FEC包;
发送端识别所述乱序FEC包所携带的帧类型为关键帧还是参考帧,并根据帧类型对应的发送时间间隔,将RTP封包后的乱序FEC包通过第一数据通道发送到接收端;
接收端获取所述乱序FEC包,对所述乱序FEC包进行FEC解码,获得乱序的包括原始数据包和冗余数据包的乱序FEC包;根据所述FEC包的数据包序号SEQ恢复所述乱序FEC包的排列顺序,并判断是否产生丢包;若发生丢包,接收端则通过FEC解码获得的冗余数据包进行丢包数据的恢复,获得完整的流媒体数据包。


2.根据权利要求1所述的一种流媒体数据传输方法,其特征在于,所述发送端还通过第二数据通道获取接收端发送的网络性能指标统计数据,根据所述网络性能指标统计数据计算出网络性能评分;
当所述网络性能评分未超过预设阈值时,发送端采用预设的冗余策略对新的流媒体数据进行FEC编码;当所述网络性能评分超出所述预设阈值时,发送端对冗余比进行动态调整后,按照调整后的冗余比对新的流媒体数据进行FEC编码。


3.根据权利要求2所述的一种流媒体数据传输方法,其特征在于,所述网络性能评分的计算公式为:



其中,P表示当前网络性能评分,X1表示当前丢包率,α1表示第一权重,X2表示当前实际有效带宽,α2表示第二权重,X3表示当前实际信息传输速率,α3表示第三权重,X4表示当前实际通信延迟时间,α4表示第四权重,X5表示当前实际网络吞吐量,α5表示第五权重。


4.根据权利要求2所述的一种流媒体数据传输方法,其特征在于,在当网络性能评分未超过预设第一阈值,发送端将冗余比调整为第一冗余比,并采用第一冗余比对上一个流媒体数据重新进行FEC编码;
在当网络性能评分超出预设第一阈值且未超过预设第二阈值,发送端将冗余比调整为第二冗余比;
在当网络性能评分超出预设第二阈值且未超过预设第三阈值时,发送端将冗余比调整为第三冗余比;
在当网络性能评分超出预设第三阈值且未超过预设第四阈值时,发送端采用默认冗余比,不对冗余比进行调整;
在当网络性能评分超过预设第四阈值时,发送端将冗余比降低为第四冗余比;
其中,预设第一阈值<预设第二阈值<预设第三阈值<预设第四阈值,第一冗余比>第二冗余比>第三冗余比>默认冗余比>第四冗余比。


5.根据权利要求1至4任一项所述的一种流媒体数据传输方法,其特征在于,设置所述关键帧的发送时间间隔小于所述参...

【专利技术属性】
技术研发人员:李宜章王平王超马骥江淋侯田
申请(专利权)人:郑州信大捷安信息技术股份有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1