一种动态调整FEC冗余度的流媒体传输方法技术

技术编号:15334222 阅读:88 留言:0更新日期:2017-05-16 21:32
本发明专利技术公开了一种动态调整FEC冗余度的流媒体传输方法,包括步骤:A1、流媒体发送端根据初始FEC编码冗余度Z

【技术实现步骤摘要】
一种动态调整FEC冗余度的流媒体传输方法
本专利技术涉及流媒体
,具体涉及一种动态调整FEC冗余度的流媒体传输方法。
技术介绍
流媒体(StreamingMedia)指在互联网中使用流式传输技术的连续时基媒体,如:音频、视频或多媒体文件。流媒体的出现极大地方便了人们的工作和生活。由于网络流媒体的传输需要实时和低延时等特点,目前很大部分都是通过实时传输协议RTP(Real-timeTransportProtocol)来传输流媒体。实时传输协议RTP(Real-timeTransportProtocol)是一个网络传输协议,RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量。RTP通常采用UDP来实现数据在IP网络上的传输。因为UDP协议的传输过程没有重传机制,所以很容易造成传输数据的延时或者丢失。流媒体在传输过程中的数据丢失往往会造成视频花屏,画面静止,音视频不同步,声音卡顿,播放的不流畅等问题。由于RTP的不可靠性,需要加入一种处理机制,在很多的应用中一般采用加入FEC包,FEC(ForwardErrorCorrection)前向纠错是一种通过在信息源增加冗余信息实现丢包恢复的一种措施。现有的向前纠错技术中,FEC的编码冗余度一般采用固定值,编码冗余度不能根据具体的网络环境做出对应的调整,这样占用的网络带宽较高。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的不足,提供一种动态调整FEC冗余度的流媒体传输方法,克服现有技术流媒体传输过程中FEC的编码冗余度采用固定值,FEC编码冗余度不能根据具体网络环境做出调整,占用网络带宽较高的缺陷。本专利技术为解决上述技术问题所采用的技术方案为:一种动态调整FEC冗余度的流媒体传输方法,包括步骤:A1、流媒体发送端根据初始FEC编码冗余度Z0,对M个RTP报文数据包进行FEC编码,形成FEC纠错数据包;A2、将所述RTP报文数据包和所述FEC纠错数据包发送到流媒体接收端;A3、流媒体接收端接收到所述RTP报文数据包和所述FEC纠错数据包后,如果确认出现丢包,则利用所述FEC纠错数据包和所述RTP报文数据包恢复丢失的RTP报文;A4、流媒体接收端将当前RTP报文信息和丢包信息通过UDP协议方式发送到流媒体发送端;A5、流媒体发送端根据所述当前RTP报文信息和所述丢包信息计算实时丢包率P,根据公式计算并确定下一次传送M个RTP报文数据包时的FEC纠错数据包数量N,其中N取最小整数。根据本专利技术的实施例,所述步骤A1包括步骤:所述FEC纠错数据包的数量由公式确定。根据本专利技术的实施例,所述步骤A5包括步骤:所述实时丢包率P按照公式计算得到,其中rtp_num为当前接收到的RTP报文数据包数量,rtp_start为RTP报文数据包的起始编号,rtp_end为RTP报文数据包的结束编号,fec_start为FEC纠错数据包的起始编号,fec_end为FEC纠错数据包的结束编号,fec_num为当前接收到的FEC纠错数据包数量。实施本专利技术的技术方案,具有以下有益效果:本专利技术不仅能利用FEC向前纠错技术自动纠正RTP网络传输过程中的丢包,并且能根据实时传输丢包率和最少占用网络带宽的原则动态调节RTP数据的FEC编码的冗余度,提高了流媒体的传输质量。附图说明下面通过参考附图并结合实例具体地描述本专利技术,本专利技术的优点和实现方式将会更加明显,其中附图所示内容仅用于对本专利技术的解释说明,而不构成对本专利技术的任何意义上的限制,在附图中:图1为本专利技术流媒体发送端和接收端的数据交互过程示意图;图2为本专利技术流媒体发送端的处理流程图;图3为本专利技术流媒体接收端的处理流程图;图4为本专利技术流媒体接收端通过UDP反馈给发送端的数据组织结构图。具体实施方式本专利技术动态调整FEC冗余度的流媒体传输方法,包括步骤:A1、流媒体发送端根据初始FEC编码冗余度Z0,对M个RTP报文数据包进行FEC编码,形成FEC纠错数据包;A2、将所述RTP报文数据包和所述FEC纠错数据包发送到流媒体接收端;A3、流媒体接收端接收到所述RTP报文数据包和所述FEC纠错数据包后,如果确认出现丢包,则利用所述FEC纠错数据包和所述RTP报文数据包恢复丢失的RTP报文;A4、流媒体接收端将当前RTP报文信息和丢包信息通过UDP协议方式发送到流媒体发送端;A5、流媒体发送端根据所述当前RTP报文信息和所述丢包信息计算实时丢包率P,根据公式计算并确定下一次传送M个RTP报文数据包时的FEC纠错数据包数量N,其中N取最小整数。根据本专利技术的实施例,所述步骤A1包括步骤:所述FEC纠错数据包的数量由公式确定。根据本专利技术的实施例,所述步骤A5包括步骤:所述实时丢包率P按照公式计算得到,其中rtp_num为当前接收到的RTP报文数据包数量,rtp_start为RTP报文数据包的起始编号,rtp_end为RTP报文数据包的结束编号,fec_start为FEC纠错数据包的起始编号,fec_end为FEC纠错数据包的结束编号,fec_num为当前接收到的FEC纠错数据包数量。如图1、图2、图3和图4所示,S1:流媒体发送端根据初始FEC编码冗余度Z0,对M个RTP报文数据包进行FEC编码,形成FEC纠错数据包;S2:将RTP报文数据包和FEC纠错数据包发送到流媒体接收端;S3:流媒体发送端接收流媒体接收端发送的反馈数据,并且算出流媒体接收端的实时丢包率P;S4:根据计算得到的实时丢包率P,计算FEC编码冗余度Z,根据关系式(为了最少占用网络带宽,传输数据的冗余度最小,N取符合不等式条件的最小整数)可以得到关系式(N取最小整数)计算得出对接下来M个RTP数据包进行FEC编码需要的N个FEC纠错包;S5:对接下来读取的M个RTP报文数据包进行FEC编码,得到N个FEC纠错数据包,接着执行S2。流媒体接收端:S6:流媒体接收端接收RTP报文数据包和FEC纠错数据包;S7:对RTP报文数据包和FEC纠错数据包解封装;S8:如果确认出现丢包,则利用FEC纠错数据包和RTP报文数据包恢复丢失的RTP报文;S9:流媒体接收端统计当前RTP报文信息和丢包信息,采用UDP传输方式发送到流媒体发送端。进一步讲述S9中流媒体接收端反馈的丢包信息的反馈方式:S10:从接收到的RTP报文数据包可以得到当前接收到的RTP报文数据包的个数rtp_num,从解封装后的FEC编码数据可以得到当前参与FEC编码的RTP报文数据包的起始编号rtp_start、结束编号rtp_end、该组的FEC纠错数据包的起始编号fec_start、结束编号fec_end、收到的FEC纠错数据包个数fec_num,然后把六个数据按照rtp_start,rtp_end,fec_start,fec_end,rtp_num,fec_num的顺序排列,每个占16bit大小的格式,用UDP协议的方式发送给流媒体接收端,当流媒体接收端接收到反馈的UDP报文后,从里面依次读取出rtp_start,rtp_end,fec_start,fec_end,rtp_num,fec_num,则可以计算得本文档来自技高网...
一种动态调整FEC冗余度的流媒体传输方法

【技术保护点】
一种动态调整FEC冗余度的流媒体传输方法,其特征在于,包括步骤:A1、流媒体发送端根据初始FEC编码冗余度Z

【技术特征摘要】
1.一种动态调整FEC冗余度的流媒体传输方法,其特征在于,包括步骤:A1、流媒体发送端根据初始FEC编码冗余度Z0,对M个RTP报文数据包进行FEC编码,形成FEC纠错数据包;A2、将所述RTP报文数据包和所述FEC纠错数据包发送到流媒体接收端;A3、流媒体接收端接收到所述RTP报文数据包和所述FEC纠错数据包后,如果确认出现丢包,则利用所述FEC纠错数据包和所述RTP报文数据包恢复丢失的RTP报文;A4、流媒体接收端将当前RTP报文信息和丢包信息通过UDP协议方式发送到流媒体发送端;A5、流媒体发送端根据所述当前RTP报文信息和所述丢包信息计算实时丢包率P,根据公式计算并确定下一次传送M个RTP报...

【专利技术属性】
技术研发人员:李伟海陈保栈
申请(专利权)人:珠海全志科技股份有限公司
类型:发明
国别省市:广东,44

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

1