FLV数据传输方法、系统、设备及可读存储介质技术方案

技术编号:26976022 阅读:27 留言:0更新日期:2021-01-06 00:12
本发明专利技术提供一种FLV数据传输方法、系统、设备及可读存储介质。该方法包括:发送端将FLV数据解析成多个TAG,并分别将每个TAG封装至RTP包;发送端基于组播传输的方式,将RTP包传输到接收端;接收端接收RTP包,并在RTP包丢失时,对丢失的RTP包所封装的TAG进行恢复,得到新的TAG,并基于未丢失的RTP包所封装的TAG以及所述新的TAG,得到新的FLV数据。通过本发明专利技术,将FLV数据包括的TAG封装至RTP后以组播传输的方式进行传输,即实现了通过组播的方式传输FLV数据,所占用的网络带宽资源较小,且在接收端对丢失的RTP包进行修复处理,使得最终得到的新的FLV数据能被正确解析,保证了通过组播方式传输的FLV数据的可靠性。

【技术实现步骤摘要】
FLV数据传输方法、系统、设备及可读存储介质
本专利技术涉及通信
,尤其涉及一种FLV数据传输方法、系统、设备及可读存储介质。
技术介绍
随着电信运营商对减少直播时延的需求日渐增加,导致FLV数据的使用频率也越来越高。但是由于FLV数据其格式的特殊性,目前只能使用TCP传输,属于单播模式。而观看直播的用户往往数以万计,若通过单播模式为这些用户传输FLV数据,需要占用巨大的网络带宽资源,给现有的网络带宽资源带来严重冲击。
技术实现思路
本专利技术的主要目的在于提供一种FLV数据传输方法、系统、设备及可读存储介质,旨在解决现有技术中通过单播模式传输FLV数据,需要占用巨大的网络带宽资源的技术问题。第一方面,本专利技术提供一种FLV数据传输方法,所述FLV数据传输方法包括:发送端将FLV数据解析成多个TAG,并分别将每个TAG封装至RTP包;发送端基于组播传输的方式,将RTP包传输到接收端;接收端接收RTP包,并在RTP包丢失时,对丢失的RTP包所封装的TAG进行恢复,得到新的TAG,并基于未丢失的RTP包所封装的TAG以及所述新的TAG,得到新的FLV数据。可选的,所述分别将每个TAG封装至RTP包的步骤包括:当一TAG的数据长度小于m时,将所述TAG封装至一个RTP包中;当一TAG的数据长度大于n倍的m时,将所述TAG封装至n+1个RTP包中;当一TAG的数据长度等于n倍的m时,将所述TAG封装至n个RTP包中;其中,n为正整数,m为一个RTP包可承载的最大数据长度。可选的,RTP包的扩展字节中填充有所封装的TAG的关键信息,所述关键信息包括TAG序号、TAG数据类型、TAG的时间戳、TAG的数据长度,且当RTP包为封装开始和/或封装结束包时,在其扩展字节中填充开始和/或结束标记,所述对丢失的RTP包所封装的TAG进行恢复,得到新的TAG的步骤包括:若丢失的RTP包为封装有一TAG部分数据的RTP包,则基于接收到的封装有所述TAG其他部分数据的其他RTP包的扩展字节中填充的关键信息,以及所述TAG其他部分数据的数据长度,构建所述TAG新的部分数据;基于所述TAG新的部分数据以及所述TAG其他部分数据,得到新的TAG。可选的,所述若丢失的RTP包为封装有一TAG部分数据的RTP包,则基于接收到的封装有所述TAG其他部分数据的其他RTP包的扩展字节中填充的关键信息,以及所述TAG其他部分数据的数据长度,构建所述TAG新的部分数据的步骤包括:若丢失的RTP包为封装有一TAG部分数据的RTP包,且所述TAG部分数据包括TAGheader参数;根据接收到的封装有所述TAG其他部分数据的其他RTP包,得到所述TAG其他部分数据的数据长度;以所述TAG其他部分数据的数据长度,替换所述其他RTP包的扩展字节中填充的关键信息中记录的TAG的数据长度,得到新的关键数据;以所述新的关键数据构建所述TAG新的部分数据。可选的,在所述得到所述TAG其他部分数据的数据长度的步骤之后,还包括:计算所述其他RTP包的扩展字节中填充的关键信息中记录的TAG的数据长度与所述TAG其他部分数据的数据长度的差,得到第一差值;计算第一差值与TAGheader参数所对应的固定数据长度的差,得到第二差值;以所述关键信息以及所述第二差值对应个数的预设字符,构建所述TAG新的部分数据。可选的,所述若丢失的RTP包为封装有一TAG部分数据的RTP包,则基于接收到的封装有所述TAG其他部分数据的其他RTP包的扩展字节中填充的关键信息,以及所述TAG其他部分数据的数据长度,构建所述TAG新的部分数据的步骤还包括:若丢失的RTP包为封装有一TAG部分数据的RTP包,且所述TAG部分数据仅包括TAGdata;根据接收到的封装有所述TAG其他部分数据的其他RTP包,得到所述TAG其他部分数据的数据长度;计算所述其他RTP包的扩展字节中填充的关键信息中记录的TAG的数据长度与所述TAG其他部分数据的数据长度的差,得到第三差值;以所述第三差值对应个数的预设字符,构建所述TAG新的部分数据。可选的,所述对丢失的RTP包所封装的TAG进行恢复,得到新的TAG的步骤还包括:若丢失的RTP包为封装有一TAG全部数据的RTP包,则检测是否存在所述丢失的RTP包对应的冗余包;若存在,则根据所述丢失的RTP包对应的冗余包得到新的TAG;若不存在,则基于所述丢失的RTP包的RTP编号,发送重传请求至发送端,以供发送端重传所述丢失的RTP包;接收发送端重传的RTP包,并基于所述重传的RTP包得到新的TAG。第二方面,本专利技术还提供一种FLV数据传输系统,所述FLV数据传输系统包括:发送端,用于将FLV数据解析成多个TAG,并分别将每个TAG封装至RTP包;基于组播传输的方式,将RTP包传输到接收端;接收端,用于接收RTP包,并在RTP包丢失时,对丢失的RTP包所封装的TAG进行恢复,得到新的TAG,并基于未丢失的RTP包所封装的TAG以及所述新的TAG,得到新的FLV数据。第三方面,本专利技术还提供一种FLV数据传输设备,所述FLV数据传输设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的FLV数据传输程序,其中所述FLV数据传输程序被所述处理器执行时,实现如上所述的FLV数据传输方法的步骤。第四方面,本专利技术还提供一种可读存储介质,所述可读存储介质上存储有FLV数据传输程序,其中所述FLV数据传输程序被处理器执行时,实现如上所述的FLV数据传输方法的步骤。本专利技术中,发送端将FLV数据解析成多个TAG,并分别将每个TAG封装至RTP包;发送端基于组播传输的方式,将RTP包传输到接收端;接收端接收RTP包,并在RTP包丢失时,对丢失的RTP包所封装的TAG进行恢复,得到新的TAG,并基于未丢失的RTP包所封装的TAG以及所述新的TAG,得到新的FLV数据。通过本专利技术,将FLV数据包括的TAG封装至RTP后以组播传输的方式进行传输,即实现了通过组播的方式传输FLV数据,所占用的网络带宽资源较小,且在接收端对丢失的RTP包进行修复处理,使得最终得到的新的FLV数据能被正确解析,保证了通过组播方式传输的FLV数据的可靠性。附图说明图1为本专利技术实施例方案中涉及的FLV数据传输设备的硬件结构示意图;图2为本专利技术FLV数据传输方法一实施例的流程示意图;图3为FLV数据的格式示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。第一方面,本专利技术实施例提供一种FLV数据传输设备。参照图1,图1为本专利技术实施例方案中涉及的FLV数据传输设备的硬件结构本文档来自技高网...

【技术保护点】
1.一种FLV数据传输方法,其特征在于,所述FLV数据传输方法包括:/n发送端将FLV数据解析成多个TAG,并分别将每个TAG封装至RTP包;/n发送端基于组播传输的方式,将RTP包传输到接收端;/n接收端接收RTP包,并在RTP包丢失时,对丢失的RTP包所封装的TAG进行恢复,得到新的TAG,并基于未丢失的RTP包所封装的TAG以及所述新的TAG,得到新的FLV数据。/n

【技术特征摘要】
1.一种FLV数据传输方法,其特征在于,所述FLV数据传输方法包括:
发送端将FLV数据解析成多个TAG,并分别将每个TAG封装至RTP包;
发送端基于组播传输的方式,将RTP包传输到接收端;
接收端接收RTP包,并在RTP包丢失时,对丢失的RTP包所封装的TAG进行恢复,得到新的TAG,并基于未丢失的RTP包所封装的TAG以及所述新的TAG,得到新的FLV数据。


2.如权利要求1所述的FLV数据传输方法,其特征在于,所述分别将每个TAG封装至RTP包的步骤包括:
当一TAG的数据长度小于m时,将所述TAG封装至一个RTP包中;
当一TAG的数据长度大于n倍的m时,将所述TAG封装至n+1个RTP包中;
当一TAG的数据长度等于n倍的m时,将所述TAG封装至n个RTP包中;
其中,n为正整数,m为一个RTP包可承载的最大数据长度。


3.如权利要求2所述的FLV数据传输方法,其特征在于,RTP包的扩展字节中填充有所封装的TAG的关键信息,所述关键信息包括TAG序号、TAG数据类型、TAG的时间戳、TAG的数据长度,且当RTP包为封装开始和/或封装结束包时,在其扩展字节中填充开始和/或结束标记,所述对丢失的RTP包所封装的TAG进行恢复,得到新的TAG的步骤包括:
若丢失的RTP包为封装有一TAG部分数据的RTP包,则基于接收到的封装有所述TAG其他部分数据的其他RTP包的扩展字节中填充的关键信息,以及所述TAG其他部分数据的数据长度,构建所述TAG新的部分数据;
基于所述TAG新的部分数据以及所述TAG其他部分数据,得到新的TAG。


4.如权利要求3所述的FLV数据传输方法,其特征在于,所述若丢失的RTP包为封装有一TAG部分数据的RTP包,则基于接收到的封装有所述TAG其他部分数据的其他RTP包的扩展字节中填充的关键信息,以及所述TAG其他部分数据的数据长度,构建所述TAG新的部分数据的步骤包括:
若丢失的RTP包为封装有一TAG部分数据的RTP包,且所述TAG部分数据包括TAGheader参数;
根据接收到的封装有所述TAG其他部分数据的其他RTP包,得到所述TAG其他部分数据的数据长度;
以所述TAG其他部分数据的数据长度,替换所述其他RTP包的扩展字节中填充的关键信息中记录的TAG的数据长度,得到新的关键数据;
以所述新的关键数据构建所述TAG新的部分数据。


5.如权利要求4所述的FLV数据传输方法,其特征在于,在所述得到所述TAG其他部分数据的数据长度的步骤之后,还包括:
计算所述其他RTP包的扩展字节中填充的关键信息中记录的TA...

【专利技术属性】
技术研发人员:陈鹤
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

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

1