CN110474721A - 视频数据传输方法、装置及计算机可读存储介质 - Google Patents
视频数据传输方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110474721A CN110474721A CN201910818957.XA CN201910818957A CN110474721A CN 110474721 A CN110474721 A CN 110474721A CN 201910818957 A CN201910818957 A CN 201910818957A CN 110474721 A CN110474721 A CN 110474721A
- Authority
- CN
- China
- Prior art keywords
- identification number
- udp message
- message packet
- identification
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种视频数据传输方法、装置及计算机可读存储介质,方法包括:接收发送端发送的多个UDP数据包,依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号,根据每个UDP数据包各自的标识序号,确定待重发标识序号,判断待重发标识序号的数量是否大于预设阈值,在待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的待重发标识序号为重发标识序号,将重发标识序号发送到发送端,以使发送端能够重新发送与重发标识序号对应的UDP数据包,使用本发明的视频数据传输方法使得接收端能够批量判断多个UDP数据包是否丢包,以及实现UDP数据包的批量重传,降低视频数据传输耗时,提高视频数据传输效率和稳定性。
Description
技术领域
本发明涉及数据传输技术领域,特别是涉及一种视频数据传输方法、装置及计算机可读存储介质。
背景技术
随着网络技术的发展,越来越多的人开始关注视频领域。目前,在视频领域中,细如网络直播、多人视频会议等,为了保证数据的可靠性,通常使用基于TCP(TransmissionControl Protocol,传输控制协议)的协议来对音视频数据进行传输。
在视频领域,视频流传输往往数据量大,网络带宽不足,会造成终端收看延迟大,卡顿,花屏等现象。为了保障视频流的传输质量,往往需要使用基于UDP(User DatagramProtocol,用户数据报协议)的协议进行传输,这主要是因为UDP协议具有TCP协议望尘莫及的速度优势。
但是同时带来的问题是,UDP协议是不可靠协议,在传输过程中会出现乱序及丢包现象,为了保障传输的稳定性,需要将丢失的包重传,目前视频数据传输时重传的技术是针对单个包判断丢包然后重新传输,这样会耗时较大。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种视频数据传输方法、装置及计算机可读存储介质。
为了解决上述问题,本发明实施例公开了一种视频数据传输方法,应用于视联网视频数据传输系统中的接收端,所述视频数据传输系统还包括发送端,所述方法包括:
接收发送端先后发送的多个UDP数据包,所述多个UDP数据包中的每个UDP数据包均携带唯一的标识序号,所述标识序号是所述UDP数据包在所述发送端被封装时添加的;
依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号;
根据每个UDP数据包各自的标识序号,确定待重发标识序号;
判断所述待重发标识序号的数量是否大于预设阈值;
在所述待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的所述待重发标识序号为重发标识序号;
将所述重发标识序号发送到所述发送端,以使所述发送端能够重新发送与所述重发标识序号对应的UDP数据包。
本发明实施例公开了一种视频数据传输方法,应用于视联网视频数据传输系统中的发送端,所述视频数据传输系统还包括接收端,所述方法包括:
对多个UDP数据包进行封装,得到多个携带标识序号的UDP数据包;
依次向所述接收端发送所述多个携带标识序号的UDP数据包,以使所述接收端能够解析得到每个UDP数据包各自唯一的标识序号;
接收所述接收端返回的至少一个重发标识序号,所述重发标识序号是所述接收端确定的需要重传的UDP数据包携带的标识序号;
向所述接收端重新发送与所述重发标识序号对应的UDP数据包。
本发明实施例还公开了一种视频数据传输装置,应用于视联网视频数据传输系统中的接收端,所述视频数据传输系统还包括发送端,所述装置包括:
第一接收模块,用于接收发送端先后发送的多个UDP数据包,所述多个UDP数据包中的每个UDP数据包均携带唯一的标识序号,所述标识序号是所述UDP数据包在所述发送端被封装时添加的;
解析模块,用于依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号;
第一确定模块,用于根据每个UDP数据包各自的标识序号,确定待重发标识序号;
判断模块,用于判断所述待重发标识序号的数量是否大于预设阈值;
选取模块,用于在所述待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的所述待重发标识序号为重发标识序号;
第一发送模块,用于将所述重发标识序号发送到所述发送端,以使所述发送端能够重新发送与所述重发标识序号对应的UDP数据包。
本发明实施例还公开了一种视频数据传输装置,应用于视联网视频数据传输系统中的发送端,所述视频数据传输系统还包括接收端,所述装置包括:
封装模块,用于对多个UDP数据包进行封装,得到多个携带标识序号的UDP数据包;
第一发送模块,用于依次向所述接收端发送所述多个携带标识序号的UDP数据包,以使所述接收端能够解析得到每个UDP数据包各自唯一的标识序号;
第一接收模块,用于接收所述接收端返回的至少一个重发标识序号,所述重发标识序号是所述接收端确定的需要重传的UDP数据包携带的标识序号;
第二发送模块,用于向所述接收端重新发送与所述重发标识序号对应的UDP数据包。
本发明实施例还公开了一种视频数据传输装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个计算机可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如本发明实施例任一所述的视频数据传输方法。
本发明实施例还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例所述的视频数据传输方法。
本发明实施例包括以下优点:
在本发明实施例提供的视频数据传输方法中,通过接收发送端先后发送的多个UDP数据包,依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号;根据每个UDP数据包各自的标识序号,确定待重发标识序号;判断待重发标识序号的数量是否大于预设阈值;在待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的待重发标识序号为重发标识序号;将重发标识序号发送到发送端,以使发送端能够重新发送与重发标识序号对应的UDP数据包。使用本发明实施例的视频数据传输方法使得接收端能够批量判断多个UDP数据包是否丢包,并在多个UDP数据包丢包时将对应的包序号返回发送端,从而实现UDP数据包的批量重传,降低视频数据传输耗时,提高视频数据传输效率和稳定性。
附图说明
图1是本发明的一种视联网的组网示意图;
图2是本发明的一种节点服务器的硬件结构示意图;
图3是本发明的一种接入交换机的硬件结构示意图;
图4是本发明的一种以太网协转网关的硬件结构示意图;
图5是本发明实施例提供的视频数据传输方法的步骤流程图;
图6是本发明实施例提供的视频数据传输方法的步骤流程图;
图7是本发明实施例提供的视频数据传输装置的结构框图;
图8是本发明实施例提供的视频数据传输装置的结构框图;
图9是本发明实施例提供的视频数据传输方法的流程框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:
视联网所应用的部分技术如下所述:
网络技术(Network Technology)
视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大第一视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(Circuit Switching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。
交换技术(Switching Technology)
视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。
服务器技术(Server Technology)
视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其视频数据传输能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比视频数据传输简单许多,效率比传统服务器大大提高了百倍以上。
储存器技术(Storage Technology)
统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。
网络安全技术(Network Security Technology)
视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。
服务创新技术(Service Innovation Technology)
统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图1所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
视联网设备分类
1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网协转网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图2所示,主要包括网络接口模块201、交换引擎模块202、CPU模块203、磁盘阵列模块204;
其中,网络接口模块201,CPU模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模块202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。
接入交换机:
如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和CPU模块304;
其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;CPU模块304进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。
交换引擎模块303轮询所有包缓存器队列,可以包括两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率控制模块308是由CPU模块304来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。
以太网协转网关:
如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、CPU模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和MAC添加模块409、MAC删除模块410。
其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2、视联网数据包定义
2.1接入网数据包定义
接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
如下表所示,接入网的数据包主要包括以下几部分:
DA | SA | Reserved | Payload | CRC |
其中:
目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;
源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;
保留字节由2个字节组成;
payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;
CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。
2.2城域网数据包定义
城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。
本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。
如下表所示,城域网的数据包主要包括以下几部分:
DA | SA | Reserved | 标签 | Payload | CRC |
即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。
基于视联网的上述特性,提出了本发明实施例的核心构思之一,遵循视联网的协议,在发送端对UDP数据包进行封装标识序号后传输到接收端,接收端解析出收到的UDP数据包的标识序号,并根据标识序号判断待重发标识序号,从待重发标识序号中选取重发标识序号返回给发送端,发送端根据重发标识序号重新发送重发标识序号对应的UDP数据包,以解决目前视频数据传输耗时大的问题。
UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(OpenSystem Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。
请参考图5,图5示出了本发明实施例提供的一种视频数据传输方法的步骤流程图,该方法可以应用于视联网中视频数据传输系统中的接收端,所述视频数据传输系统还包括发送端,具体可以包括如下步骤:
步骤S501,接收发送端先后发送的多个UDP数据包。
其中,多个UDP数据包中的每个UDP数据包均携带唯一的标识序号,所述标识序号是所述UDP数据包在所述发送端被封装时添加的。
在视频数据传输过程中,一个视频通常被切分成多个数据包独立地传输,因此,可以在传输前将每个数据包封装成UDP数据包,在封装成UDP数据包的同时可以为每个UDP数据包设置唯一的序号,用以区分不同的数据包,因此可以在封装的同时可以在原始数据的头部加入4个字节长度的标识序号。在UDP数据包被封装并从发送端发出之后,接收端便可以接收多个携带唯一标识序号的UDP数据包。
本实施例中,标识序号是连续的整数,从0开始计数,标识序号为0表示发送端发送的第一个UDP数据包,标识序号为1表示发送端发送的第二个UDP数据包,依次类推,同时,标识序号越大,也可以表示传输的视频的播放时间越靠后。在发送端。
本发明实施例中,用于接收发送端发送的UDP数据包的接收端可以是服务器,也可以是其他具有数据传输功能的电子设备,本发明对此不做限制。
步骤S502,依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号。
本实施例中,发送端按照视频播放时间先后顺序依次发送的多个UDP数据包,在传输时可能出现三种情况,分别是丢失、延时到达、准时到达。其中,丢失的UDP数据包始终不会被接收端接收到,也就不会被接收端解析,对于延时到达或者准时到达的UDP数据包,当接收端接收之后,接收端会按照接收到UDP数据包的时间先后顺序,对延时到达或者准时到达的UDP数据包进行解析,分别得到每个延时到达和准时到达的UDP数据包各自的标识序号。
本实施例中,可以对接收端接收到的延时到达和准时到达的UDP数据包按照接收时间先后顺序进行编号,例如第一个接收到的UDP数据包编号为S1,第二个接收到的UDP数据包编号为S2。需要说明的是,解析得到的UDP数据包的序号与接收到的UDP数据包的时间先后顺序(即UDP数据包的编号)没有直接关系。
示例地,第一个接收到的UDP数据包的标识序号可以为5,第二个接收到的UDP数据包的标识序号可以为3,第三个接收到的UDP数据包的标识序号可以为3,即S1=5,S2=3,S3=6。
步骤S503,根据每个UDP数据包各自的标识序号,确定待重发标识序号。
接收端在解析出每个UDP数据包各自的标识序号之后,便可以根据接收到的每个UDP数据包各自的标识序号之间的关系以及接收到每个UDP数据包的时间,确定待重发标识序号。本实施例中,待重发标识序号代表的是可能需要重新发送的UDP数据包对应的标识序号。
本实施例中,可以在接收端设置一个队列lost_seqs来缓存待重发标识序号,一个队列可以缓存多个UDP数据包,实现对多个UDP数据包的批量判断。
步骤S504,判断所述待重发标识序号的数量是否大于预设阈值。
本实施例中,接收端首先获取队列lost_seqs中缓存的待重发标识序号的数量,接着将待重发标识序号的数量与预设阈值进行比较,判断该待重发标识序号的数量是否大于预设阈值。预设阈值是预先设置好的,可以根据需要进行更改。
步骤S505,在所述待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的所述待重发标识序号为重发标识序号。
本实施例中,重发标识序号用于表示丢包的UDP数据包对应的标识序号,即需要发送端重新发送的UDP数据包对应的标识序号。
本实施例中,通过设置预设阈值可以给予延时到达的数据包等待时间,避免立即将延时到达的数据包判断为重发数据包,减少错误重发。
示例地,队列lost_seqs中缓存的待重发标识序号的数量为20个,预设阈值为15个,此时待重发标识序号的数量20大于预设阈值15,并且待重发标识序号的数量超出预设阈值5个,此时,接收端从队列lost_seqs中选取5个待重发标识序号作为重发标识序号,此时,可以认为这5个UDP数据包丢包。本实施例中,实际上并不能确定这5个UDP数据包是否真正丢失,只是一种假设的情况,但是通过设置预设阈值可以给予延时到达的UDP数据包等待时间,避免立即将延时到达的UDP数据包判断为重发数据包,因此经过步骤S505后,将这5个UDP数据包判断为丢失数据包,具有一定的准确率。
本实施例中,从队列lost_seqs中选取待重发标识序号作为重发标识序号时,可以按照先进先出的规则进行选取,即先加入队列lost_seqs的待重发数据包先被选取,这样可以保证延时到达的UDP数据包的等待时间最长,进一步减少错误重发。
步骤S506,将所述重发标识序号发送到所述发送端,以使所述发送端能够重新发送与所述重发标识序号对应的UDP数据包。
接收端在选取重发标识序号之后,将重发标识序号发送到发送端,发送端接收到该重发标识序号之后,便能重新发送与重发标识序号对应的UDP数据包。
示例地,接收端选取了5个重发标识序号,分别是1、3、5、6、7,接收端将重发标识序号1、3、5、6、7发送到发送端,发送端接收到这5个标识序号后,重新向接收端发送与1、3、5、6、7标识序号对应的5个UDP数据包。
本实施例中,通过接收发送端先后发送的多个UDP数据包,依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号,根据每个UDP数据包各自的标识序号,确定待重发标识序号,判断待重发标识序号的数量是否大于预设阈值,在待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的待重发标识序号为重发标识序号,将重发标识序号发送到发送端,以使发送端能够重新发送与重发标识序号对应的UDP数据包。使用本发明实施例的视频数据传输方法通过将超出预设阈值数量的所述待重发标识序号为重发标识序号,使得接收端能够批量判断多个UDP数据包是否丢包,并在多个UDP数据包丢包时将对应的包序号返回发送端,从而实现UDP数据包的批量重传,降低视频数据传输耗时,提高视频数据传输效率和稳定性。
本发明一种实施方式中,在多个UDP数据包包括第一UDP数据包、第二UDP数据包和第三UDP数据包的情况下,图5所示方法的步骤S503中根据每个UDP数据包各自的标识序号,确定待重发标识序号,具体可以包括以下子步骤:
子步骤S5031,将第二UDP数据包的标识序号与第一UDP数据包的标识序号进行比较。
子步骤S5032,在第二UDP数据包的标识序号大于第一UDP数据包的标识序号,且第二UDP数据包的标识序号与第一UDP数据包的标识序号之间存在标识序号的情况下,将第二UDP数据包的标识序号与第一UDP数据包的标识序号之间的标识序号加入丢失标识序号集,所述丢失标识序号集不包含所述接收端已经收到的UDP数据包的标识序号。
子步骤S5033,将第三UDP数据包的标识序号与第二UDP数据包的标识序号进行比较。
子步骤S5034,在第三UDP数据包的标识序号小于第二UDP数据包的标识序号的情况下,将小于第三UDP数据包的标识序号的标识序号加入乱序标识序号集,其中,第一UDP数据包、第二UDP数据包和第三UDP数据包表征了接收端接收UDP数据包的先后顺序。
子步骤S5035,从所述丢失标识序号集中删除所述乱序标识序号集中的标识序号。
子步骤S5036,将更新后的丢失标识序号集中的标识序号确定为待重发标识序号。
本实施例中,接收端接收到的多个UDP数据包中包括第一UDP数据包、第二UDP数据包和第三UDP数据包,第一UDP数据包、第二UDP数据包和第三UDP数据包表征的是接收端连续接收的三个UDP数据包的先后顺序,即接收端接收的第一UDP数据包相较于第二UDP数据包是前一次接收的UDP数据包,第二UDP数据包相较于第三UDP数据包是前一次接收的UDP数据包,另外,需要说明的是,第一UDP数据包并不一定是接收端第一次接收到的UDP数据包,第一UDP数据包也可以是中间任意一次接收的UDP数据包,例如第三次接收到的UDP数据包或者第十次接收到的UDP数据包。
为了方便描述,此处第一UDP数据包用编号S1表示,第二次收到的UDP数据包为第二UDP数据包,第二UDP数据包用编号S2表示,第三次收到的UDP数据包为第三UDP数据包,第三UDP数据包用编号S3表示。
接收端在接收到第一UDP数据包、第二UDP数据包和第三UDP数据包之后通过解析分别得到各自的标识序号,由于UDP数据包在传输过程中存在丢失、延时到达和准时到达三种情况,因此S1、S2、S3的序号不一定是连续的,接下来可以将S2的标识序号与S1的标识序号进行比较,判断S2的标识序号与S1的标识序号的大小,如果S2的标识序号大于S1的标识序号,并且S1的标识序号到S2的标识序号之间存在其他标识序号,认为S1的标识序号到S2的标识序号之间的表示序号为丢失数据包对应的标识序号,将这些标识序号加入丢失标识序号集,即加入队列lost_seqs中;若此时待重发标识序号数量小于预设阈值,则再将S3的标识序号与S2的标识序号进行比较。
若S3的标识序号小于S2的标识序号,此时认为小于S2的标识序号的标识序号对应的UDP数据包是延时到达的,可以不认为是丢包,将其加入乱序标识序号集,这样可以给予小于S2的标识序号的标识序号对应的UDP数据包接收等待时间,减少UDP数据包重传量,接着从丢失标识序号集中删除乱序标识序号集中的标识序号,即从队列lost_seqs中删除小于S2的标识序号的标识序号,将此时队列lost_seqs中的标识序号作为待重发标识序号;若S3的标识序号大于S2的标识序号,以与S2的标识序号大于S1的标识序号相同的方式,在队列lost_seqs中继续增加S2到S3之间的标识序号。
本实施例中,在任何时候,队列lost_seqs中的标识序号均可以认为是待重发标识序号,并且当待重发标识序号的数量大于预设阈值时,均可以选取超出预设阈值数量的待重发标识序号作为重发标识序号进行重发。
示例地,假设S1=5,S2=10,S3=7。将S2与S1比较,10大于5,且5与10之间存在标识序号6、7、8、9,此时,将标识序号6、7、8、9加入队列lost_seqs中,接着将S3与S2比较,7小于10,此时,将小于7的标识序号从队列lost_seqs中删除,由于已经接收到标识序号7了,而队列lost_seqs中存储的是待重发标识序号,很明显需要删除已经接收到的标识序号7,因此此时队列lost_seqs中还剩下标识序号8、9。
本发明一种实施方式中,多个UDP数据包中还包括第四UDP数据包,即在多个UDP数据包包括第一UDP数据包、第二UDP数据包、第三UDP数据包和第四UDP数据包的情况下,在从丢失标识序号集中删除所述乱序标识序号集中的标识序号之后,本发明还可以包括以下子步骤:
子步骤5037,将第四UDP数据包的标识序号与第三UDP数据包的标识序号进行比较。
子步骤5038A,在第四UDP数据包的标识序号大于第三UDP数据包的标识序号,且第四UDP数据包的标识序号与第三UDP数据包的标识序号之间存在标识序号的情况下,将第四UDP数据包的标识序号与第三UDP数据包的标识序号之间的标识序号以及小于第三UDP数据包的标识序号的标识序号加入丢失标识序号集。
子步骤5038B,在第四UDP数据包的标识序号大于第三UDP数据包的标识序号,且第四UDP数据包的标识序号与第三UDP数据包的标识序号之间不存在标识序号的情况下,将小于第三UDP数据包的标识序号的标识序号重新加入所述丢失标识序号集,所述丢失标识序号集不包含已经收到的UDP数据包的标识序号。
需要说明的是,本实施例中,子步骤5038A和子步骤5038B是两个择一的步骤。
子步骤5039,将更新后的丢失标识序号集中的标识序号确定为待重发标识序号。
本实施例中,第四UDP数据包表示相较于第三UDP数据包是后一次接收的UDP数据包,为了方便描述,第四UDP数据包用编号S4表示,同样地,接收端在接收到第四UDP数据包之后会解析出第四UDP数据包携带的标识序号,接着,将S4的标识序号与S3的标识序号进行比较,判断S4的标识序号与S3的标识序号的大小,如果S4的标识序号大于S3的标识序号,此时将上一次从队列lost_seqs中删除的标识序号重新加入队列lost_seqs,若此时S4的标识序号不仅大于S3的标识序号,而且S3的标识序号与S4的标识序号之间还存在其他的标识序号,此时还需要同时将S3的标识序号与S4的标识序号之间的标识序号一起加入队列lost_seqs。
仍以上述示例举例,接收端在接收到S3=7后,队列lost_seqs中还存在标识序号8、9,如果接收端下次接收到S4=8,由于8大于7,此时将前一次删除的标识序号6重新加入队列lost_seqs,而标识序号7是由于已经接收到而删除的,因此不包括在内,不需要重新加入队列lost_seqs,并且由于已经接收到标识序号8了,此时队列lost_seqs中剩下6、9两个标识序号;如果下次接收到的S4=12,由于12大于7,此时将前一次删除的标识序号6重新加入队列lost_seqs,而标识序号7是由于已经接收到而删除的,因此不包括在内,不需要重新加入队列lost_seqs,并且由于标识序号7到标识序号12之间存在其他的标识序号8、11,同时需要将8和11也加入队列lost_seqs,此时队列lost_seqs中剩下6、8、9、11四个标识序号。
同样地,本实施例中,在任何时候,队列lost_seqs中的标识序号均可以认为是待重发标识序号,并且当待重发标识序号的数量大于预设阈值时,均可以选取超出预设阈值数量的待重发标识序号作为重发标识序号进行重发。
需要说明的是,队列lost_seqs中缓存的是待重发标识序号,因此任何已经被接收端接收到的UDP数据包对应的标识序号均不能重新加入队列lost_seqs。
通过执行上述子步骤S5031-子步骤S5039,当接收端在依次接收到多个UDP数据包后,能够确定队列lost_seqs中缓存的待重发标识序号,判断出可能需要重新发送的UDP数据包对应的标识序号。
此外,为了减少发送端缓存占用情况,节约资源,本发明在依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号之后,还可以执行以下步骤:
将解析得到的所述每个UDP数据包各自的标识序号分别返回所述发送端,以使所述发送端从缓存中删除解析得到的标识序号对应的各个UDP数据包。
仍以上述示例举例,接收端依次接收并解析得到S1=5,S2=10,S3=7,S4=12,接收端会将标识序号5、10、7、12分别发送到发送端,发送端接收到这四个标识序号后,随即从缓存中删除这四个标识序号对应的UDP数据包。
本实施例中,接收端解析得到了标识序号,代表接收端已经收到了该标识序号对应的UDP数据包,因此发送端不需要重新发送该UDP数据包,没有必要继续将该UDP数据包保留在缓存中,因此为了减少发送端缓存占用,接收端可以将解析得到的标识序号发送到发送端,以使发送端删除缓存中的这四个UDP数据包。
参考图6,图6示出了本发明实施例提供的一种视频数据传输方法的步骤流程图,该方法可以应用于视联网中视频数据传输系统中的发送端,所述视频数据传输系统还包括接收端,具体可以包括如下步骤:
步骤S601,对多个UDP数据包进行封装,得到多个携带标识序号的UDP数据包。
在视频数据传输过程中,一个视频通常被切分成多个数据包独立地传输,发送端在向接收端发送UDP数据包之前,需要分别将每个视频数据包封装成UDP数据包,在封装成UDP数据包的同时可以为每个UDP数据包设置唯一的序号,用以区分不同的数据包,即可以在封装的同时在原始数据的头部加入4个字节长度的标识序号,从而得到多个携带标识序号的UDP数据包。
本实施例中,考虑到每个UDP数据包均有可能在传输时丢失,对于丢失的UDP数据包需要发送端重新发送,为了避免重新发送时再次对多个视频数据包进行封装以及添加标识序号,本发明在发送端对多个UDP数据包进行封装,得到多个携带标识序号的UDP数据包之后,还可以执行以下步骤:
S601-1,将所述多个携带标识序号的UDP数据包分别加入缓存。
通过执行步骤S601-1,使得发送端缓存中存储有多个携带携带标识序号的UDP数据包,方便发送端再次向接收端重新发送丢失的UDP数据包时,可以直接从缓存中读取,避免发送端向接收端重新发送时再次对多个视频数据包进行封装以及添加标识序号,节约时间和内存资源。
步骤S602,依次向所述接收端发送所述多个携带标识序号的UDP数据包,以使所述接收端能够解析得到每个UDP数据包各自唯一的标识序号。
本实施例中,发送端在对多个视频数据包分别封装成UDP数据包并添加标识序号之后,便可以按照视频播放先后顺序依次向接收端发送封装好的各个UDP数据包,接收端便能够解析出接收到的每个UDP数据包携带的唯一标识。
步骤S603,接收所述接收端返回的至少一个重发标识序号,所述重发标识序号是所述接收端确定的需要重传的UDP数据包携带的标识序号。
本实施例中,发送端在向接收端发送了携带标识序号的UDP数据包一段时间之后,如果接收端在解析出标识序号后确定出有数据包丢失,需要发送端重新发送某些丢失的UDP数据包时,发送端会接收到接收端返回的重发标识序号,该重发标识序号至少为一个。
步骤S604,向所述接收端重新发送与所述重发标识序号对应的UDP数据包。
本实施例中,发送端向接收端重新发送与重发标识序号对应的UDP数据包。例如,接收端返回的重发标识序号为9、11,发送端会重新向接收端发送添加的标识序号为9、11的两个UDP数据包。
本实施例中,由于发送端缓存有封装并添加标识序号的UDP数据包,因此,发送端在向接收端重新发送与重发标识序号对应的UDP数据包时,可以直接从缓存中读取标识序号对应的UDP数据包,并重新发送到接收端。
在本实施例中,通过对多个UDP数据包进行封装,得到多个携带标识序号的UDP数据包;依次向所述接收端发送所述多个携带标识序号的UDP数据包,以使所述接收端能够解析得到每个UDP数据包各自唯一的标识序号;接收所述接收端返回的至少一个重发标识序号,所述重发标识序号是所述接收端确定的需要重传的UDP数据包携带的标识序号;向所述接收端重新发送与所述重发标识序号对应的UDP数据包。使用本发明实施例的视频数据传输方法使得接收端能够批量判断多个UDP数据包是否丢包,并在多个UDP数据包丢包时将对应的包序号返回发送端,从而实现UDP数据包的批量重传,降低视频数据传输耗时,提高视频数据传输效率和稳定性。
另外,考虑到接收端解析得到了标识序号,代表接收端已经收到了该标识序号对应的UDP数据包,因此发送端不需要重新发送该UDP数据包,没有必要继续将该UDP数据包保留在缓存中,因此为了减少发送端缓存占用,本发明还可以执行以下步骤:
步骤S603-1,接收所述接收端返回的已收到标识序号,所述已收到标识序号是接收端在接收到UDP数据包后解析得到的标识序号。
步骤S603-2,从所述缓存中删除所述已收到标识序号对应的各个UDP数据包。
通过执行上述步骤S603-1和步骤S603-2,发送端可以在接收端接收到UDP数据包之后,将保存在缓存中的接收端已收到的UDP数据包删除,从而减少发送端缓存占用。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
基于相同的技术构思,请参考图7,图7示出了本发明实施例的一种视频数据传输装置,应用于视联网视频数据传输系统中的接收端,所述视频数据传输系统还包括发送端,所述装置包括:
第一接收模块701,用于接收发送端先后发送的多个UDP数据包,所述多个UDP数据包中的每个UDP数据包均携带唯一的标识序号,所述标识序号是所述UDP数据包在所述发送端被封装时添加的;
解析模块702,用于依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号;
第一确定模块703,用于根据每个UDP数据包各自的标识序号,确定待重发标识序号;
判断模块704,用于判断所述待重发标识序号的数量是否大于预设阈值;
选取模块705,用于在所述待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的所述待重发标识序号为重发标识序号;
第一发送模块706,用于将所述重发标识序号发送到所述发送端,以使所述发送端能够重新发送与所述重发标识序号对应的UDP数据包。
可选地,所述多个UDP数据包包括第一UDP数据包、第二UDP数据包和第三UDP数据包,所述第一确定模块包括:
第一比较子模块,用于将第二UDP数据包的标识序号与第一UDP数据包的标识序号进行比较;
第一加入子模块,用于在第二UDP数据包的标识序号大于第一UDP数据包的标识序号,且第二UDP数据包的标识序号与第一UDP数据包的标识序号之间存在标识序号的情况下,将第二UDP数据包的标识序号与第一UDP数据包的标识序号之间的标识序号加入丢失标识序号集,所述丢失标识序号集不包含所述接收端已经收到的UDP数据包的标识序号;
第二比较子模块,用于将第三UDP数据包的标识序号与第二UDP数据包的标识序号进行比较;
第二加入子模块,用于在第三UDP数据包的标识序号小于第二UDP数据包的标识序号的情况下,将小于第三UDP数据包的标识序号的标识序号加入乱序标识序号集,其中,第一UDP数据包、第二UDP数据包和第三UDP数据包表征了接收端接收UDP数据包的先后顺序;
删除子模块,用于从所述丢失标识序号集中删除所述乱序标识序号集中的标识序号;
第一确定子模块,用于将更新后的丢失标识序号集中的标识序号确定为待重发标识序号。
可选地,所述UDP数据包还包括第四UDP数据包,所述第一确定模块包括:
第三比较子模块,用于将第四UDP数据包的标识序号与第三UDP数据包的标识序号进行比较;
第三加入子模块,用于在第四UDP数据包的标识序号大于第三UDP数据包的标识序号,且第四UDP数据包的标识序号与第三UDP数据包的标识序号之间存在标识序号的情况下,将第四UDP数据包的标识序号与第三UDP数据包的标识序号之间的标识序号以及小于第三UDP数据包的标识序号的标识序号加入丢失标识序号集;
第二确定子模块,用于将更新后的丢失标识序号集中的标识序号确定为待重发标识序号。
可选地,所述UDP数据包还包括第四UDP数据包,所述第一确定模块还包括:
第四加入子模块,用于在第四UDP数据包的标识序号大于第三UDP数据包的标识序号,且第四UDP数据包的标识序号与第三UDP数据包的标识序号之间不存在标识序号的情况下,将小于第三UDP数据包的标识序号的标识序号重新加入所述丢失标识序号集,所述丢失标识序号集不包含已经收到的UDP数据包的标识序号;
第三确定子模块,用于将更新后的丢失标识序号集中的标识序号确定为待重发标识序号。
可选地,所述视频数据传输装置还包括:
返回模块,用于将解析得到的所述每个UDP数据包各自的标识序号分别返回所述发送端,以使所述发送端从缓存中删除解析得到的标识序号对应的各个UDP数据包。
可选地,所述选取模块包括:
选取子模块,用于在所述待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的先确定的所述待重发标识序号为重发标识序号。
请参考图8,图8示出了本发明实施例的一种视频数据传输装置,应用于视联网视频数据传输系统中的发送端,所述视频数据传输系统还包括接收端,所述装置包括:
封装模块801,用于对多个UDP数据包进行封装,得到多个携带标识序号的UDP数据包;
第一发送模块802,用于依次向所述接收端发送所述多个携带标识序号的UDP数据包,以使所述接收端能够解析得到每个UDP数据包各自唯一的标识序号;
第一接收模块803,用于接收所述接收端返回的至少一个重发标识序号,所述重发标识序号是所述接收端确定的需要重传的UDP数据包携带的标识序号;
第二发送模块804,用于向所述接收端重新发送与所述重发标识序号对应的UDP数据包。
可选地,所述装置还包括:
加入模块,用于将所述多个携带标识序号的UDP数据包分别加入缓存;
所述第二发送模块包括;
读取子模块,用于从所述缓存中读取所述重发标识序号对应的UDP数据包;
发送子模块,用于向所述接收端重新发送所述与所述重发标识序号对应的UDP数据包。
可选地,所述装置还包括:
第二接收模块,用于接收所述接收端返回的已收到标识序号,所述已收到标识序号是接收端在接收到UDP数据包后解析得到的标识序号;
删除模块,用于从所述缓存中删除所述已收到标识序号对应的各个UDP数据包。
本发明实施例还提供了一种视频数据传输装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个计算机可读,当由所述一个或多个处理器执行时,使得所述装置执行如本发明实施例任一所述的视频数据传输方法。
本发明实施例还提供了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例所述的视频数据传输方法。
对于视频数据传输装置实施例而言,由于其与视频数据传输方法实施例基本相似,所以描述的比较简单,相关之处参见视频数据传输方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种视频数据传输方法、一种视频数据传输装置及一种计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1.一种视频数据传输方法,其特征在于,应用于视联网视频数据传输系统中的接收端,所述视频数据传输系统还包括发送端,所述方法包括:
接收发送端先后发送的多个UDP数据包,所述多个UDP数据包中的每个UDP数据包均携带唯一的标识序号,所述标识序号是所述UDP数据包在所述发送端被封装时添加的;
依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号;
根据每个UDP数据包各自的标识序号,确定待重发标识序号;
判断所述待重发标识序号的数量是否大于预设阈值;
在所述待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的所述待重发标识序号为重发标识序号;
将所述重发标识序号发送到所述发送端,以使所述发送端能够重新发送与所述重发标识序号对应的UDP数据包。
2.根据权利要求1所述的方法,其特征在于,所述多个UDP数据包包括第一UDP数据包、第二UDP数据包和第三UDP数据包,所述根据每个UDP数据包各自的标识序号,确定待重发标识序号,包括:
将第二UDP数据包的标识序号与第一UDP数据包的标识序号进行比较;
在第二UDP数据包的标识序号大于第一UDP数据包的标识序号,且第二UDP数据包的标识序号与第一UDP数据包的标识序号之间存在标识序号的情况下,将第二UDP数据包的标识序号与第一UDP数据包的标识序号之间的标识序号加入丢失标识序号集,所述丢失标识序号集不包含所述接收端已经收到的UDP数据包的标识序号;
将第三UDP数据包的标识序号与第二UDP数据包的标识序号进行比较;
在第三UDP数据包的标识序号小于第二UDP数据包的标识序号的情况下,将小于第三UDP数据包的标识序号的标识序号加入乱序标识序号集,其中,第一UDP数据包、第二UDP数据包和第三UDP数据包表征了接收端接收UDP数据包的先后顺序;
从所述丢失标识序号集中删除所述乱序标识序号集中的标识序号;
将更新后的丢失标识序号集中的标识序号确定为待重发标识序号。
3.根据权利要求2所述的方法,其特征在于,所述UDP数据包还包括第四UDP数据包,在所述从所述丢失标识序号集中删除所述乱序标识序号集中的标识序号之后,所述方法还包括:
将第四UDP数据包的标识序号与第三UDP数据包的标识序号进行比较;
在第四UDP数据包的标识序号大于第三UDP数据包的标识序号,且第四UDP数据包的标识序号与第三UDP数据包的标识序号之间存在标识序号的情况下,将第四UDP数据包的标识序号与第三UDP数据包的标识序号之间的标识序号以及小于第三UDP数据包的标识序号的标识序号加入丢失标识序号集;
将更新后的丢失标识序号集中的标识序号确定为待重发标识序号。
4.根据权利要求3所述的方法,其特征在于,在所述将第四UDP数据包的标识序号与第三UDP数据包的标识序号进行比较之后,还包括:
在第四UDP数据包的标识序号大于第三UDP数据包的标识序号,且第四UDP数据包的标识序号与第三UDP数据包的标识序号之间不存在标识序号的情况下,将小于第三UDP数据包的标识序号的标识序号重新加入所述丢失标识序号集,所述丢失标识序号集不包含已经收到的UDP数据包的标识序号;
将更新后的丢失标识序号集中的标识序号确定为待重发标识序号。
5.根据权利要求1所述的方法,其特征在于,在所述依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号之后,所述方法还包括:
将解析得到的所述每个UDP数据包各自的标识序号分别返回所述发送端,以使所述发送端从缓存中删除解析得到的标识序号对应的各个UDP数据包。
6.根据权利要求1所述的方法,其特征在于,所述在所述待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的所述待重发标识序号为重发标识序号,包括:
在所述待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的先确定的所述待重发标识序号为重发标识序号。
7.一种视频数据传输方法,其特征在于,应用于视联网视频数据传输系统中的发送端,所述视频数据传输系统还包括接收端,所述方法包括:
对多个UDP数据包进行封装,得到多个携带标识序号的UDP数据包;
依次向所述接收端发送所述多个携带标识序号的UDP数据包,以使所述接收端能够解析得到每个UDP数据包各自唯一的标识序号;
接收所述接收端返回的至少一个重发标识序号,所述重发标识序号是所述接收端确定的需要重传的UDP数据包携带的标识序号;
向所述接收端重新发送与所述重发标识序号对应的UDP数据包。
8.根据权利要求7所述的方法,其特征在于,在所述对多个UDP数据包进行封装,得到多个携带标识序号的UDP数据包之后,所述方法还包括:
将所述多个携带标识序号的UDP数据包分别加入缓存;
向所述接收端重新发送与所述重发标识序号对应的UDP数据包,包括:
从所述缓存中读取所述重发标识序号对应的UDP数据包;
向所述接收端重新发送所述与所述重发标识序号对应的UDP数据包。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收所述接收端返回的已收到标识序号,所述已收到标识序号是接收端在接收到UDP数据包后解析得到的标识序号;
从所述缓存中删除所述已收到标识序号对应的各个UDP数据包。
10.一种视频数据传输装置,其特征在于,应用于视联网视频数据传输系统中的接收端,所述视频数据传输系统还包括发送端,所述装置包括:
第一接收模块,用于接收发送端先后发送的多个UDP数据包,所述多个UDP数据包中的每个UDP数据包均携带唯一的标识序号,所述标识序号是所述UDP数据包在所述发送端被封装时添加的;
解析模块,用于依次对每个UDP数据包进行解析,得到每个UDP数据包各自的标识序号;
第一确定模块,用于根据每个UDP数据包各自的标识序号,确定待重发标识序号;
判断模块,用于判断所述待重发标识序号的数量是否大于预设阈值;
选取模块,用于在所述待重发标识序号的数量大于预设阈值的情况下,选取超出预设阈值数量的所述待重发标识序号为重发标识序号;
第一发送模块,用于将所述重发标识序号发送到所述发送端,以使所述发送端能够重新发送与所述重发标识序号对应的UDP数据包。
11.一种视频数据传输装置,其特征在于,应用于视联网视频数据传输系统中的发送端,所述视频数据传输系统还包括接收端,所述装置包括:
封装模块,用于对多个UDP数据包进行封装,得到多个携带标识序号的UDP数据包;
第一发送模块,用于依次向所述接收端发送所述多个携带标识序号的UDP数据包,以使所述接收端能够解析得到每个UDP数据包各自唯一的标识序号;
第一接收模块,用于接收所述接收端返回的至少一个重发标识序号,所述重发标识序号是所述接收端确定的需要重传的UDP数据包携带的标识序号;
第二发送模块,用于向所述接收端重新发送与所述重发标识序号对应的UDP数据包。
12.一种视频数据传输装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个计算机可读,当由所述一个或多个处理器执行时,使得所述装置执行如权利要求1至6任一所述的视频数据传输方法。
13.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1至6任一项所述的视频数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910818957.XA CN110474721B (zh) | 2019-08-30 | 2019-08-30 | 视频数据传输方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910818957.XA CN110474721B (zh) | 2019-08-30 | 2019-08-30 | 视频数据传输方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110474721A true CN110474721A (zh) | 2019-11-19 |
CN110474721B CN110474721B (zh) | 2022-04-12 |
Family
ID=68514442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910818957.XA Active CN110474721B (zh) | 2019-08-30 | 2019-08-30 | 视频数据传输方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110474721B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111555939A (zh) * | 2020-04-28 | 2020-08-18 | 中国人民解放军总医院第四医学中心 | 一种监护仪信息采集系统 |
CN111654505A (zh) * | 2020-06-15 | 2020-09-11 | 深圳市景阳科技股份有限公司 | Udp数据包可靠传输方法、系统、计算机设备及存储介质 |
CN111711680A (zh) * | 2020-06-09 | 2020-09-25 | 武汉虹信通信技术有限责任公司 | 基于udp协议的文件断点续传方法及装置 |
CN111769913A (zh) * | 2020-05-20 | 2020-10-13 | 上海橙群微电子有限公司 | 一种数据传输方法、电子设备及计算机可读存储介质 |
CN112637162A (zh) * | 2020-12-14 | 2021-04-09 | 上海金仕达软件科技有限公司 | 一种udp数据包处理方法及装置 |
CN114390006A (zh) * | 2022-02-18 | 2022-04-22 | 百果园技术(新加坡)有限公司 | 数据包传输方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006319738A (ja) * | 2005-05-13 | 2006-11-24 | Nec Corp | データ転送方式 |
CN104518853A (zh) * | 2013-09-27 | 2015-04-15 | 北京新媒传信科技有限公司 | 一种数据重传的方法、接收端及系统 |
CN106411894A (zh) * | 2016-09-29 | 2017-02-15 | 天脉聚源(北京)传媒科技有限公司 | 一种视频传输方法及系统 |
CN107147481A (zh) * | 2017-07-19 | 2017-09-08 | 北京数码视讯科技股份有限公司 | 丢包重传方法、装置及电子设备 |
-
2019
- 2019-08-30 CN CN201910818957.XA patent/CN110474721B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006319738A (ja) * | 2005-05-13 | 2006-11-24 | Nec Corp | データ転送方式 |
CN104518853A (zh) * | 2013-09-27 | 2015-04-15 | 北京新媒传信科技有限公司 | 一种数据重传的方法、接收端及系统 |
CN106411894A (zh) * | 2016-09-29 | 2017-02-15 | 天脉聚源(北京)传媒科技有限公司 | 一种视频传输方法及系统 |
CN107147481A (zh) * | 2017-07-19 | 2017-09-08 | 北京数码视讯科技股份有限公司 | 丢包重传方法、装置及电子设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111555939A (zh) * | 2020-04-28 | 2020-08-18 | 中国人民解放军总医院第四医学中心 | 一种监护仪信息采集系统 |
CN111769913A (zh) * | 2020-05-20 | 2020-10-13 | 上海橙群微电子有限公司 | 一种数据传输方法、电子设备及计算机可读存储介质 |
CN111711680A (zh) * | 2020-06-09 | 2020-09-25 | 武汉虹信通信技术有限责任公司 | 基于udp协议的文件断点续传方法及装置 |
CN111654505A (zh) * | 2020-06-15 | 2020-09-11 | 深圳市景阳科技股份有限公司 | Udp数据包可靠传输方法、系统、计算机设备及存储介质 |
CN112637162A (zh) * | 2020-12-14 | 2021-04-09 | 上海金仕达软件科技有限公司 | 一种udp数据包处理方法及装置 |
CN114390006A (zh) * | 2022-02-18 | 2022-04-22 | 百果园技术(新加坡)有限公司 | 数据包传输方法、装置、设备和存储介质 |
CN114390006B (zh) * | 2022-02-18 | 2024-04-05 | 百果园技术(新加坡)有限公司 | 数据包传输方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110474721B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110474721A (zh) | 视频数据传输方法、装置及计算机可读存储介质 | |
CN109120962A (zh) | 软件终端连接视联网的方法和装置 | |
CN109120946A (zh) | 收看直播的方法和装置 | |
CN108632559B (zh) | 一种视频数据处理方法及装置 | |
CN110198345A (zh) | 一种数据请求方法、系统及装置和存储介质 | |
CN110430024A (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
CN109151058A (zh) | 一种数据传输方法和装置 | |
CN109996127A (zh) | 基于视联网的数据传输方法和装置 | |
CN109246486A (zh) | 一种组帧方法和装置 | |
CN109889779A (zh) | 一种报文乱序的处理方法和装置 | |
CN110381119A (zh) | 一种日志信息的获取方法、系统及装置和存储介质 | |
CN110062295A (zh) | 一种文件资源获取方法及系统 | |
CN108809922B (zh) | 一种音频故障处理方法、会议调度端和视联网终端 | |
CN108307212A (zh) | 一种文件点播方法和装置 | |
CN108243343A (zh) | 一种基于视联网的点位分布统计方法及其服务器 | |
CN110138513A (zh) | 一种数据传输方法和视联网系统 | |
CN110177023A (zh) | 一种基于视联网的通信连接检测方法及装置 | |
CN110336710B (zh) | 一种终端的测试方法、系统及装置和存储介质 | |
CN109889380A (zh) | 一种数据包的发送速率处理方法和系统 | |
CN110087028A (zh) | 一种web视频组件获取视频流的方法和系统 | |
CN110035249A (zh) | 一种视频打点方法和装置 | |
CN110392227A (zh) | 数据处理方法、装置及存储介质 | |
CN109889516A (zh) | 一种会话通道的建立方法及装置 | |
CN109167965A (zh) | 一种数据处理的方法和装置 | |
CN109861929A (zh) | 一种数据缓存处理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |