CN114024914B - 视频数据传输方法、装置及电子设备 - Google Patents

视频数据传输方法、装置及电子设备 Download PDF

Info

Publication number
CN114024914B
CN114024914B CN202111257823.9A CN202111257823A CN114024914B CN 114024914 B CN114024914 B CN 114024914B CN 202111257823 A CN202111257823 A CN 202111257823A CN 114024914 B CN114024914 B CN 114024914B
Authority
CN
China
Prior art keywords
data
packet
frame
unpacking
video data
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.)
Active
Application number
CN202111257823.9A
Other languages
English (en)
Other versions
CN114024914A (zh
Inventor
江钊
淡江
潘添翼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202111257823.9A priority Critical patent/CN114024914B/zh
Publication of CN114024914A publication Critical patent/CN114024914A/zh
Application granted granted Critical
Publication of CN114024914B publication Critical patent/CN114024914B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/40Flow control; Congestion control using split connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本申请提供一种视频数据传输方法、装置及电子设备,该方法包括:对于待传输的任一帧视频数据,将该帧视频数据拆分为多个数据拆分包;分别为所述多个数据拆分包中各数据拆分包添加包头信息,并将添加包头信息的数据拆分包发送给接收端设备;在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,若确定所述多个数据拆分包存在数据拆分包丢失,则对丢失的数据拆分包进行重传;若确定所述多个数据拆分包均发送成功,则结束该帧视频数据的发送;在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,结束该帧视频数据的发送。该方法可以提高数据传输效率,实现视频数据的低延时传输。

Description

视频数据传输方法、装置及电子设备
技术领域
本申请涉及电子通信技术领域,尤其涉及一种视频数据传输方法、装置及电子设备。
背景技术
传统的视频传输大都是基于用户数据报协议(User Datagram Protocol,UDP)和传输控制协议(Transmission Control Protocol,简称TCP)实现的。
TCP协议采用面向连接的方式,当一帧视频数据丢失时,会进行重传,由于一个视频帧数据量比较大,因此,出现网络拥挤时,重传会加大网络负担,导致重传失败的概率增大,致使视频帧数据丢失。
UDP协议采用无连接的方式,当视频数据在传输过程中,遇到网络拥堵或者干扰,致使信号丢失或者无法解析时,由于没有重传机制,就会导致视频数据丢失,播放画面出现卡顿的现象。
如何提高视频数据传输的可靠性成为一个亟待解决的技术问题。
发明内容
有鉴于此,本申请提供一种视频数据传输方法、装置及电子设备。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种视频数据传输方法,应用于网络设备,当所述网络设备作为发送端设备时,所述方法包括:
对于待传输的任一帧视频数据,将该帧视频数据拆分为多个数据拆分包;其中,任一数据拆分包的大小不超过预设包长阈值;
分别为所述多个数据拆分包中各数据拆分包添加包头信息,并将添加包头信息的数据拆分包发送给接收端设备,以使所述接收端设备依据所述数据拆分包中的包头信息确定单帧视频数据的接收状态;其中,对于任一数据拆分包,该数据拆分包中的包头信息包括该数据拆分包所属视频帧的标识、该数据拆分包所属视频帧拆分的数据拆分包的数量以及该数据拆分包的编号;
在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,若确定所述多个数据拆分包存在数据拆分包丢失,则对丢失的数据拆分包进行重传;若确定所述多个数据拆分包均发送成功,则结束该帧视频数据的发送;其中,所述单帧视频数据传输时间阈值依据视频帧率确定;
在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,结束该帧视频数据的发送。
根据本申请实施例的第二方面,提供一种视频数据传输装置,应用于网络设备,所述装置包括:数据处理单元以及数据收发单元;其中,当所述网络设备作为发送端设备时:
所述数据处理单元,用于对于待传输的任一帧视频数据,将该帧视频数据拆分为多个数据拆分包;其中,任一数据拆分包的大小不超过预设包长阈值;
所述数据收发单元,用于分别为所述多个数据拆分包中各数据拆分包添加包头信息,并将添加包头信息的数据拆分包发送给接收端设备,以使所述接收端设备依据所述数据拆分包中的包头信息确定单帧视频数据的接收状态;其中,对于任一数据拆分包,该数据拆分包中的包头信息包括该数据拆分包所属视频帧的标识、该数据拆分包所属视频帧拆分的数据拆分包的数量以及该数据拆分包的编号;
所述数据收发单元,还用于在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,若确定所述多个数据拆分包存在数据拆分包丢失,则对丢失的数据拆分包进行重传;若确定所述多个数据拆分包均发送成功,则结束该帧视频数据的发送;其中,所述单帧视频数据传输时间阈值依据视频帧率确定;
所述数据收发单元,还用于在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,结束该帧视频数据的发送。
根据本申请实施例的第三方面,提供一种电子设备,该电子设备包括:
处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述方法。
本申请实施例的视频数据传输方法,通过将单帧视频数据拆分多个数据拆分包进行传输,并在数据拆分包中添加包括数据拆分包所属视频帧的标识、数据拆分包所属视频帧拆分的数据拆分包的数量以及数据拆分包的编号的包头信息,保证了接收端设备能够识别出完整的单帧视频数据,且在进行数据重传时,可以针对丢失的数据拆分包进行重传,而不需要针对整帧数据进行重传,减少了数据重传的数据量,提高了数据传输效率;此外,通过依据视频帧率设定单帧视频数据传输时间阈值,单帧视频数据传输在该单帧视频数据传输时间阈值内完成,避免了单帧视频数据的长时间重传影响其它帧视频数据的正常传输,实现了视频数据的低延时传输,保障了视频的流畅性。
附图说明
图1为本申请一示例性实施例示出的一种视频数据传输方法的流程示意图;
图2A为本申请一示例性实施例示出的一种数据拆分的示意图;
图2B为本申请一示例性实施例示出的一种有线网络场景下的数据拆分包传输示意图;
图3A为本申请一示例性实施例示出的一种有线网络场景下的数据重传示意图;
图3B为本申请一示例性实施例示出的另一种有线网络场景下的数据重传示意图;
图4A为本申请一示例性实施例示出的一种无线网络场景下的数据拆分包传输示意图;
图4B为本申请一示例性实施例示出的一种无线网络场景下的数据拆分包接收流程示意图;
图5为本申请一示例性实施例示出的一种视频数据传输装置的结构示意图;
图6为本申请一示例性实施例示出的图5所示装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。
请参见图1,为本申请实施例提供的一种视频数据传输方法的流程示意图,其中,该视频数据传输方法可以应用于网络设备,如图1所示,当该网络设备作为发送端设备时,该视频数据传输方法可以包括以下步骤:
步骤S100、对于待传输的任一帧视频数据,将该帧视频数据拆分为多个数据拆分包;其中,任一数据拆分包的大小不超过预设包长阈值。
示例性的,对于任一帧视频数据,该帧视频数据拆分得到的多个数据拆分包的大小可以相同,也可以不同。
步骤S110、分别为多个数据拆分包中各数据拆分包添加包头信息,并将添加包头信息的数据拆分包发送给接收端设备,以使接收端设备依据数据拆分包中的包头信息确定单帧视频数据的接收状态;其中,对于任一数据拆分包,该数据拆分包中的包头信息包括该数据拆分包所属视频帧的标识、该数据拆分包所属视频帧拆分的数据拆分包的数量以及该数据拆分包的编号。
本申请实施例中,为了使接收端设备能够识别出属于同一视频帧的全部数据拆分包,发送端设备在将单帧视频数据拆分为多个数据拆分包之后,还可以分别在该多个数据拆分包中添加包头信息,该包头信息可以至少包括数据拆分包所属视频帧的标识、数据拆分包所属视频帧拆分的数据拆分包的数量以及数据拆分包的编号,从而,接收端设备可以依据接收到的数据拆分包的包头信息识别出属于同一视频帧的全部数据拆分包,实现完整单帧视频数据的重组。
示例性的,接收端设备接收到发送端设备发送的数据拆分包时,可以依据数据拆分包的包头信息确定单帧视频数据的接收状态,如成功接收完整单帧视频数据、或未接收到单帧视频数据对应的一个或多个数据拆分包。
步骤S120、在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,若确定该帧视频数据对应的多个数据拆分包存在数据拆分包丢失,则对丢失的数据拆分包进行重传;若确定该帧视频数据对应的多个数据拆分包均发送成功,则结束该帧视频数据的发送;其中,单帧视频数据传输时间阈值依据视频帧率确定。
步骤S130、在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,结束该帧视频数据的发送。
本申请实施例中,为了保证接收端视频显示的流畅性,避免出现由于单帧视频数据长时间未能成功接收而导致视频无法正常播放的情况发生,可以预先依据视频帧率确定单帧视频数据传输时间阈值,即对于任一帧视频数据,从该帧视频数据对应的第一个数据拆分包开始发送开始,对该帧视频数据的总传输时间不能超过单帧视频数据传输时间阈值。
在一个示例中,单帧视频数据传输时间阈值可以为1/fps,fps为视频帧率。
需要说明的是,单帧视频数据传输时间阈值并不限于等于1/fps,其也可以根据需求设置,如小于1/fps,例如,单帧视频数据传输时间阈值等于0.9*1/fps。
示例性的,对于任一帧视频数据,发送端设备可以在首次发送该帧视频数据对应的数据拆分包时开始计时,并当计时时长等于单帧视频数据传输时间时,确定该帧视频数据的传输时间达到单帧视频数据传输时间。
示例性的,对于任一帧视频数据,接收端设备可以在首次接收到该帧视频数据对应的数据拆分包开始计时,并当计时时长等于单帧视频数据传输时间时,确定该帧视频数据的传输时间达到单帧视频数据传输时间。
本申请实施例中,对于任一帧视频数据,在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,若发送端设备确定该帧视频数据对应的多个数据拆分包存在数据拆分包丢失,则对丢失的数据拆分包进行重传。
在一个示例中,接收端设备可以针对接收到的每一个数据拆分包发送确认(ACK)消息,发送端设备可以依据是否接收到接收端设备发送的ACK消息,确定数据拆分包是否被接收端成功接收;对于任一数据拆分包,当未接收到接收端设备发送的针对该数据拆分包的ACK消息时,确定该数据拆分包丢失。
在另一个示例中,接收端设备可以针对确定丢失的数据拆分包向发送端设备发送重传请求(Retransmission Request,简称RTR),发送端设备可以依据接收到的RTR,确定数据拆分包丢失。
示例性的,接收端设备确定数据拆分包丢失的具体实现可以参见下文中相关实施例中的描述,本申请实施例在此不做赘述。
本申请实施例中,在该帧视频数据的传输时间达到单帧视频数据传输时间之前,若发送端设备确定该帧视频数据对应的多个数据拆分包均发送成功,则可以结束该帧视频数据的发送。
此外,在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,无论该帧视频数据对应的多个数据拆分包中是否存在数据拆分包丢失,发送端设备均结束该帧视频数据的发送,保证不会由于单帧视频数据的重传影响下一帧视频数据的正常传输。
示例性的,对于任一帧视频数据,接收端设备在确定该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,若仍然存在该帧视频数据对应的数据拆分包未成功接收,接收端设备可以对已成功接收到的该帧视频数据对应的数据拆分包进行丢弃,在容忍单帧视频数据丢失的情况下,避免单帧视频数据的长时间重传影响其它帧视频数据的正常传输。
需要说明的是,对于发送端设备,当单帧视频数据的传输时间达到单帧视频数据传输时间阈值,且存在数据拆分包丢失时,发送端设备将不再对丢失的数据拆分包进行重传。
示例性的,在该情况下,发送端设备还可以清除该帧视频数据的缓存。
可见,在图1所示方法流程中,通过将单帧视频数据拆分多个数据拆分包进行传输,并在数据拆分包中添加包括数据拆分包所属视频帧的标识、数据拆分包所属视频帧拆分的数据拆分包的数量以及数据拆分包的编号的包头信息,保证了接收端设备能够识别出完整的单帧视频数据,且在进行数据重传时,可以针对丢失的数据拆分包进行重传,而不需要针对整帧数据进行重传,减少了数据重传的数据量,提高了数据传输效率;此外,通过依据视频帧率设定单帧视频数据传输时间阈值,单帧视频数据传输在该单帧视频数据传输时间阈值内完成,避免了单帧视频数据的长时间重传影响其它帧视频数据的正常传输,实现了视频数据的低延时传输,保障了视频的流畅性。
在一些实施例中,步骤S120中,确定多个数据拆分包存在数据拆分包丢失,可以包括:
对于多个数据拆分包中的任一数据拆分包,当在该数据拆分包发送给接收端设备之后,未在第一重传超时时间内接收到接收端设备发送的针对该数据拆分包的确认消息时,确定该数据拆分包丢失。
示例性的,接收端设备成功接收到发送端设备发送的一个数据拆分包时,可以向发送端设备发送针对该数据拆分包的ACK消息,该ACK消息中携带有该数据拆分包所属视频帧的标识、该数据拆分包的包编号以及数据拆分包的传输时间等信息。
对于多个数据拆分包中的任一数据拆分包,当发送端设备将该数据拆分包发送给接收端设备之后,可以启动一个定时器,并将定时时长设置为第一重传超时时间,当发送端设备在该定时器超时前接收到接收端设备发送的针对该数据拆分包的ACK消息时,发送端设备可以确定该数据拆分包接收成功;当发送端设备在该定时器超时前未接收到接收端设备发送的针对该数据拆分包的ACK消息时,发送端设备可以确定该数据拆分包丢失,此时,发送端设备可以对该数据拆分包进行重传。
在另一些实施例中,步骤S120中,确定多个数据拆分包存在数据拆分包丢失,可以包括:
对于多个数据拆分包中的任一数据拆分包,当在该数据拆分包发送给接收端设备之后,接收到接收端设备发送的针对该数据拆分包的重传请求时,确定该数据拆分包丢失;其中,该重传请求是接收端设备在接收到该帧视频数据的按照包编号排序的上一个数据拆分包之后,未在第一重传超时时间内接收到下一个数据拆分包的情况下发送的。
示例性的,考虑到接收端设备针对接收到的每一个数据拆分包均回复ACK消息的实现方式对资源需求较高,而对于资源较为紧张的场景下,频繁发送ACK消息会导致传输延时增加。
例如,针对无线网络传输场景,由于无线网络的资源比较紧张,每次传输之前,都需要进行信道的抢占,若未能抢到信道资源,则无法进行数据的发送,因此,频繁的发送ACK消息会导致传输延时增加。
此外,考虑到正常情况下,相对数据拆分包的成功接收,数据拆分包的丢失的概率相对较低,因而,接收端设备可以通过针对确定丢失的数据拆分包发送RTR的方式,来使发送端设备确定是否存在数据拆分包丢失。
示例性的,对于任一帧视频数据,当接收端设备接收到该帧视频数据中按照包编号排序的首个数据拆分包时,可以启动一个定时器,将定时时长设置为第一重传超时时间,若未在定时器超时之前接收到下一个数据拆分包,则可以该数据拆分包丢失,并向发送端设备发送RTR。
示例性的,RTR中可以携带丢失的数据拆分包所属视频帧的标识、丢失的数据拆分包的包编号等信息。
示例性的,该实施例中的第一超时时间的取值与上一实施例中第一超时时间的取值可以不同。
相应地,当发送端设备接收到接收端设备发送的RTR时,可以依据接收到的RTR,确定对应的数据拆分包丢失。
在一些实施例中,第一重传超时时间可以依据历史帧视频数据对应的数据拆分包的往返时间确定。
示例性,考虑到正常情况下,发送端设备和接收端设备之间的数据传输状态不会发生大的波动,因此,可以以历史帧视频数据的传输作为参考,来对当前帧视频数据的传输进行预估。
在一个示例中,依据历史帧视频数据对应的数据拆分包的往返时间确定第一重传超时时间,可以包括:
依据至少一帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定第一重传超时时间。
示例性的,可以依据至少一帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定第一重传超时时间。
例如,可以将一帧或多帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定为第一重传超时时间。
作为一种示例,依据至少一帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定第一重传超时时间,可以包括:
依据多帧历史帧视频数据对应的各数据拆分包的平均往返时间,利用加权求和方式,确定第一重传超时时间。
示例性的,为了提高第一重传超时时间的合理性,可以依据多帧历史帧视频数据对应的各数据拆分包的平均往返时间,利用加权求和方式,确定第一重传超时时间。
示例性的,由于与当前帧视频数据的时间间隔越小的历史帧视频数据,其数据传输时间的可参考性越高,因此,对于该多帧历史帧视频数据,与当前帧视频数据的时间间隔越大,其加权系数越小。
举例来说,可以分别确定当前帧的前两帧视频数据对应的各数据拆分包的平均往返时间,即确定当前帧的上一帧视频数据对应的各数据拆分包的平均往返时间,以及当前帧的上上帧视频数据对应的各数据拆分包的平均往返时间,并对该两个平均往返时间进行加权求和,确定第一重传超时时间。
在一个示例中,对于任一数据拆分包,该数据拆分包的往返时间可以通过以下方式确定:
对于有线传输场景,依据该数据拆分包从发送端设备到接收端设备的传输时间,以及针对该数据拆分包的确认消息从接收端设备到发送端设备的传输时间确定;其中,接收端设备针对接收到的任一数据拆分包均返回确认消息;
对于无线传输场景,依据该数据拆分包从所述发送端设备到接收端设备的传输时间确定;其中,接收端设备针对已确定未接收到的数据拆分包发送重传请求,重传请求是接收端设备在接收到该帧视频数据的按照包编号排序的上一个数据拆分包之后,未在第一重传超时时间内接收到下一个数据拆分包的情况下发送的。
示例性的,以有线传输场景下,接收端设备针对每一个接收到的数据拆分包发送ACK消息,无线场景下,接收端设备针对已确定未接收到的数据拆分包发送重传请求为例。
由于对于有线传输场景,发送端设备需要在将数据拆分包发送给接收端设备,并接收到接收端设备返回的ACK消息时,确定接收端设备成功接收到该数据拆分包,因此,对于有线传输场景,可以依据数据拆分包从发送端设备到接收端设备的传输时间,以及针对该数据拆分包的ACK消息从接收端设备到发送端设备的传输时间确定。
示例性的,发送端设备在数据拆分包中添加的包头信息还可以包括发送时间戳和时间同步信息,接收端设备接收到数据拆分包时,可以依据包头信息中携带的时间同步信息与发送端设备进行时间同步,并在时间同步的情况下,依据接收到该数据拆分包的接收时间以及该数据拆分包的包头信息中的发送时间戳,确定该数据拆分包从发送端设备到接收端设备的传输时间。
接收端设备向发送端设备返回ACK消息时,可以在ACK消息中携带数据拆分包的传输时间(从发送端设备到接收端设备的传输时间)、ACK消息的发送时间戳,以及时间同步信息;发送端设备接收到ACK消息时,可以依据ACK消息中携带的时间同步信息与接收端设备进行时间同步,并在时间同步的情况下,依据接收到该ACK消息的接收时间以及该ACK消息中携带的发送时间戳,确定该ACK消息从接收端设备到发送端设备的传输时间。
示例性的,对于无线传输场景,接收端设备并不需要针对接收到的每个数据拆分包均发送ACK消息,而是针对确定未接收到的数据拆分包发送重传请求,对于发送端设备发送给接收端设备的任一数据拆分包,接收端设备确定其是否接收到该数据拆分包的时间可以依据该数据拆分包从发送端设备到接收端设备的传输时间确定。
相应地,对于无线传输场景,接收端设备可以依据数据拆分包从发送端设备到接收端设备的传输时间确定数据拆分包的往返时间。
在一些实施例中,步骤S110中,将添加包头信息的数据拆分包发送给接收端设备之后,还可以包括:
对于任一数据拆分包,当接收到针对该数据拆分包的确认消息时,将该数据拆分包从发送缓存中清除;其中,接收端设备针对接收到的任一数据拆分包均返回确认消息;
在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除。
示例性的,以接收端设备针对接收到的任一数据拆分包返回ACK消息为例。
示例性的,对于任一帧视频数据,在对该帧视频数据进行发送的过程中,发送端设备可以将该帧视频数据对应的多个数据拆分包缓存在发送缓存中,以便在需要进行数据重传时,依据缓存的数据对对应的数据拆分包进行重传。
对于该帧视频数据对应的任一数据拆分包,当发送端设备接收到接收端设备发送的ACK消息时,发送端设备可以将该数据拆分包从发送缓存中清除。
在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除。
需要说明的是,若在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,该帧视频数据对应的数据拆分包均发送成功,则发送缓存中缓存的该帧视频数据对应的各数据拆分包会在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,在发送端设备接收到对应数据拆分包的ACK消息时被删除。
在另一些实施例中,将添加包头信息的数据拆分包发送给接收端设备之后,还可以包括:
当接收到接收端设备发送的重传请求时,对发送缓存中缓存的包编号小于目标包编号的数据拆分包进行清除;其中,目标包编号为重传请求中携带的包编号中的最小值;接收端设备针对已确定未接收到的数据拆分包发送重传请求;
当接收到接收端设备发送的确认消息时,或,在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除;其中,该确认消息由接收端设备在确定该帧视频数据对应的数据拆分包均接收到的情况下发送。
示例性的,以接收端设备针对已确定未接收到的数据拆分包发送重传请求为例。
示例性的,对于任一帧视频数据,可以假设发送端设备发送的该帧视频数据对应的多个数据拆分包按照包编号排序依次到达接收端设备,即在不存在数据丢失的情况下,单帧视频数据对应的多个数据拆分包按照包编号排序依次到达接收端设备。
需要说明的是,在本申请实施例中,若未特殊说明,所提及的包编号排序是指按照包编号从小到大的顺序。
相应地,对于某一帧视频数据,当接收端设备接收到某个数据拆分包时,若当前数据拆分包不是包编号最小的数据拆分包,且存在包编号小于当前数据拆分包的包编号的其它数据拆分包未接收到,则接收端设备确定包编号小于当前数据拆分包的包编号的其它数据拆分包丢失,向发送端设备发送重传请求,以请求发送端设备重传这些数据拆分包(确定丢失的数据拆分包)。
发送端设备接收到重传请求时,可以获取该重传请求中携带的包编号,确定其中的最小包编号(本文中称为目标包编号),此时,发送端设备可以确定包编号小于目标包编号的数据拆分包已经被接收端设备接收到,从而,发送端设备可以对发送缓存中缓存的包编号小于目标包编号的数据拆分包进行清除。
示例性的,接收端设备接收到单帧视频数据的全部数据拆分包时,可以向发送端设备发送ACK消息。
相应地,对于任一帧视频数据,发送端设备接收端设备发送的ACK消息时,可以对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除。
此外,在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,发送端设备也可以对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除。
在一些实施例中,当上述网络设备作为发送接收端设备时,本申请实施例提供的视频数据传输方法还可以包括:
对于任一帧视频数据,当接收到该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包时,启动第一定时器;
若在第一定时器超时前,接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则重置第一定时器;
若在第一定时器超时前,未接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则向发送端设备发送针对该数据拆分包的重传请求,重置第一定时器,并启动第二定时器,第二定时器的定时时长大于第一定时器的定时时长;
若在第二定时器超时前,接收到重传的数据拆分包,则取消第二定时器;否则,再次向发送端设备发送针对该数据拆分包的重传请求,并重置第二定时器。
示例性的,考虑到对于任一帧视频数据,发送端设备发送的该帧视频数据的数据拆分包通常会按照包编号顺序到达接收端设备,且按照包编号排序的第一个数据拆分包(即包编号最小的数据拆分包)会最先到达接收端设备。
相应地,接收端设备在接收到单帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包时,可以启动一个定时器(本文中称为第一定时器)。
示例性的,第一定时器的定时时长可以依据数据拆分包从发送端设备到接收端设备的传输时间确定。
若在第一定时器超时前,接收端设备接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则可以重置第一定时器,并继续等待下一个数据下包。
若在第一定时器超时前,接收端设备未接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则接收端设备一方面可以重置第一定时器,等待下一个数据拆分包;另一方面,可以向发送端设备发送针对该数据拆分包的重传请求,并启动另一个定时器(本文中称为第二定时器),以等待重传数据拆分包。
示例性的,由于第二定时器用于等待重传数据拆分包,而重传数据拆分包需要在发送端设备接收到接收端设备发送的重传请求时,向接收端设备重传,即第二定时器的定时时长需要依据重传请求从接收端设备到发送端设备的传输时间,以及重传数据拆分包从发送端设备到接收端设备的传输时间确定。
示例性的,第二定时器的定时时长大于第一定时器的定时时长。
例如,第二定时器的定时时长可以为第一定时器定时时长的两倍。
若在第二定时器超时前,接收端设备接收到发送端设备重传的数据拆分包,则接收端设备可以取消第二定时器。
若在第二定时器超时时,未接收到重传的数据拆分包,则可以再次向发送端设备发送针对该数据拆分包的重传请求,并重置第二定时器,直至接收到重传的数据拆分包,或单帧视频数据的传输时间达到单帧视频数据传输阈值。
需要说明的是,在本申请实施例中,对于任一帧视频数据,在存在数据拆分包需要重传,且存在数据拆分包尚未到达(未确定丢失)的情况下,接收端设备可以分别进行第一定时器的相关处理,以及第二定时器的相关处理,第一定时器用于等待尚未到达(未确定丢失)的包编号最小的数据拆分包;第二定时器用于等待重传的数据拆分包。
示例性的,当确定存在多个数据拆分包丢失时,若在相同时刻该多个数据拆分包丢失,则可以启动同一个第二定时器;若在不同时刻确定该多个数据拆分包丢失,则可以启动多个不同的第二定时器。
在一个示例中,对于任一帧视频数据,在首次接收到该帧视频数据对应的数据拆分包时,还可以包括:
确定该数据拆分包是否为该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包;
若该数据拆分包为该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则确定执行上述启动第一定时器的操作;
若该数据拆分包不是该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则向发送端设备发送针对目标数据拆分包的重传请求,并启动第二定时器,目标数据拆分包为该帧视频数据对应的数据拆分包中,包编号小于当前接收到的数据拆分包的包编号的数据拆分包。
示例性的,考虑到对于任一帧视频数据,发送端设备发送的该帧视频数据的数据拆分包通常会按照包编号顺序到达接收端设备,且按照包编号排序的第一个数据拆分包(即包编号最小的数据拆分包)会最先到达接收端设备。
相应地,接收端设备在接收到单帧视频数据对应的数据拆分包时,可以确定该数据拆分包是否为该帧视频数据对应的多个数据拆分包中按照包编号排序的第一个数据拆分包。
若该数据拆分包为该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则可以启动第一定时器,其具体处理流程可以参见上述方法实施例中的相关描述。
若该数据拆分包不是该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则接收端设备可以确定包编号小于当前接收到的数据拆分包的包编号的数据拆分包(本文中称为目标数据拆分包)丢失,此时,一方面,接收端设备可以向发送端设备发送针对目标数据拆分包的重传请求,并启动第二定时器,等待重传的数据拆分包;另一方面,可以启动第一定时器,等待当前接收到的数据拆分包的下一个数据拆分包(按照包编号排序的下一个数据拆分包)。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体实例对本申请实施例提供的技术方案进行说明。
在该实施例中,每次发送一帧的视频数据,根据接收端发送的响应消息,来确认下一帧的数据发送,该传输方法可在不同的网络传输介质中进行传输,不局限于有线网络传输环境还是无线网络传输环境。
下面分别针对有线网络场景和无线网络场景进行说明。
一、有线网络场景
将一帧视频数据拆分成若干个数据包(即上述数据拆分包)。
示例性的,每个数据拆分包的长度需要小于1500个字节,具体长度大小可根据当前网络环境进行动态调整。
示例性的,如图2A所示,可以对每个数据拆分包进行编号,并在每个数据拆分包的头部添加包头信息,包括视频帧编号、拆分数据包的个数、拆分数据包编号、发送时间戳、时间同步信息等。
示例性的,接收端设备可以针对接收到的每一个数据拆分包发送ACK(确认)消息,ACK消息中可以包括帧编号信息、收到的拆分数据包编号、发送时间戳,以及收到当前数据拆分包的传输时间(可以记为t1)。
示例性的,如图2B所示,发送端设备将单帧数据拆分完成后,将数据拆分包通过网络发送给接收端设备,接收端设备收到数据拆分包后,将数据拆分包按照编号进行排列重组,拼接成完整的一帧数据,并通过ACK消息告知发送端设备接收到的数据拆分包编号。
示例性的,发送端设备依据ACK消息确定出现数据拆分包丢失时,可以进行重传,有两种方案可以提供:
方案一
如图3A所示,当出现数据拆分包丢失时,发送端设备在发送下一帧数据之前,需要完成当前帧数据的数据拆分包的重传,而且完成一帧的总共传输时间不得超过t’(即上述单帧视频数据传输时间阈值):
t’=1/fps
fps表示帧率,即1秒需要传输多少帧数据。
示例性的,当单帧数据的传输时间超过t’时,接收端设备可以将该帧数据丢失,开始等待下一帧数据,发送端设备可以清空当前帧的缓存,并且不再处理接收端设备发送的关于此帧的ACK消息。
方案二
如图3B所示,发送端设备可以将丢失的数据拆分包和下一帧数据同步发送给接收端设备,接收端设备根据包头信息,判断当前数据拆分包属于哪一帧,然后进行重组,当单帧数据的传输时间大于t’时,则同样丢弃此帧数据。
该场景下,RTT和RTO时间计算可以按照如下方式实现:
在接收端设备发送针对数据拆分包的ACK消息时,可以在ACK消息里面携带数据拆分包的发送时间及传输时间(即t1),此外,发送端设备还可以根据ACK消息的发送时间戳和接收时间,计算出ACK消息的完整传输时间t2,那么一个数据拆分包的RTT值为:
RTT’=t1+t2
则链路的RTT为每个小包RTT’的平均值:
示例性的,n可以根据网络情况动态调整,可为上一帧的数据拆分包个数,也可为多帧的数据拆分包个数。
示例性的,n的默认值为上一帧的拆分数据包数量。
RTO的计算公式为:
RTO=αRTT”+(1-α)RTT
其中,RTT”为上一个RTT的值,α为平滑系数。
示例性的,α可以取0.125。
在该实施例中,发送端设备可以按照如下方式确定需要进行数据拆分包重传:
1、发送端设备发送一帧数据后,启动定时器,设置时间为RTO,当定时器超时后,将重新发送未收到ACK的数据拆分包;
2、当发送端设备收到ACK1(即针对该帧数据的第一个数据拆分包的ACK消息,下同)和ACK3时,可认为数据拆分包2出现丢失,这时,可以重传数据拆分包2,而无需等待定时器超时。
二、无线网络场景
由于无线网络的资源比较紧张,每次传输之前,都需要进行信道的抢占,若未能抢到信道资源,则无法进行数据的发送,频繁地发送ACK会导致传输延时增加,因此,可以采用另一种机制进行传输。
示例性的,如图4A所示,可以引入了RTR,接收端设备收到数据拆分包后,通过判断哪些数据拆分包出现丢失,针对丢失的数据拆分包发送RTR报文,通知发送端设备需要重传的数据拆分包。
若接收端设备接收到完整的一帧数据,则发送一个ACK消息,通知发送端设备收到完整一帧数据,发送端设备可以清除相关缓存。
该场景下,RTT和RTO时间计算可以按照如下方式实现:
RTT’=t1
RTO=αRTT”+(1-α)RTT
RTT和RTO的计算与有线网络场景的区别主要在于RTT’为t1的值,而不是t1+t2的值,其他计算方法保持一致。
在该场景下,RTR发送机制实现如下:
情况一
当接收端设备接收到数据拆分包1时,启动定时器(即上述第一定时器,可以记为定时器1);若在定时器超时前接收到数据拆分包2,则重置定时器,并等待数据拆分包3的到达;若定时器超时时,数据拆分包3未到达,则向发送端设备发送RTR,通知发送端设备重传数据拆分包3,并同时启动两个定时器(即上述第一定时器和第二定时器,可以记为定时器1和定时器2),第一定时器用来等待数据拆分包4,第二定时器用来等待重传的数据拆分包3,其示意图可以如图4B所示。
其中,定时器1的定时时长为Timer1,定时器2的定时时长为Timer2。
情况二
当接收端设备接收到非数据拆分包1的数据时,则可直接发送RTR,请求收到当前数据拆分包编号之前的数据拆分包数据,其他操作和情况一一致。
需要说明的是,上述重传机制需要保证单帧视频数据的传输时间不超过单帧时数据传输时间阈值t’。若单帧视频数据的传输时间超过t’,则丢弃该帧视频数据,清除相关缓存,并发送ACK消息通知发送端设备。
下面对缓存清理方法进行举例说明。
发送端设备发送数据后,可以缓存当前发送的数据,存储方式可如表1所示:
表1
需要清除缓存的数据拆分包数据的情况包括但不限于如下三种:
情况一、如表2所示,当发送端设备接收到接收端设备发送的ACK消息时,确定接收端设备已收到对应的数据拆分包数据,则清除相应的缓存。
表2
情况二、如表3所示,当前帧视频数据的发送时间已经超时,则清除当前帧的所有缓存。
表3
情况三、如表4和表5所示,在发送RTR的情况下,RTR之前的数据拆分包数据,可以直接清除,收到ACK消息时,清除完整的一帧数据。
表4
表5
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
请参见图5,为本申请实施例提供的一种视频数据传输装置的结构示意图,其中,该视频数据传输装置可以应用于上述实施例中的网络设备,如图5所示,该视频数据传输装置可以包括:数据处理单元510以及数据收发单元520;其中,当所述网络设备作为发送端设备时:
所述数据处理单元510,用于对于待传输的任一帧视频数据,将该帧视频数据拆分为多个数据拆分包;其中,任一数据拆分包的大小不超过预设包长阈值;
所述数据收发单元520,用于分别为所述多个数据拆分包中各数据拆分包添加包头信息,并将添加包头信息的数据拆分包发送给接收端设备,以使所述接收端设备依据所述数据拆分包中的包头信息确定单帧视频数据的接收状态;其中,对于任一数据拆分包,该数据拆分包中的包头信息包括该数据拆分包所属视频帧的标识、该数据拆分包所属视频帧拆分的数据拆分包的数量以及该数据拆分包的编号;
所述数据收发单元520,还用于在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,若确定所述多个数据拆分包存在数据拆分包丢失,则对丢失的数据拆分包进行重传;若确定所述多个数据拆分包均发送成功,则结束该帧视频数据的发送;其中,所述单帧视频数据传输时间阈值依据视频帧率确定;
所述数据收发单元520,还用于在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,结束该帧视频数据的发送。
在一些实施例中,所述数据收发单元520确定所述多个数据拆分包存在数据拆分包丢失,包括:
对于所述多个数据拆分包中的任一数据拆分包,当在该数据拆分包发送给接收端设备之后,未在第一重传超时时间内接收到接收端设备发送的针对该数据拆分包的确认消息时,确定该数据拆分包丢失;
或,
对于所述多个数据拆分包中的任一数据拆分包,当在该数据拆分包发送给接收端设备之后,接收到接收端设备发送的针对该数据拆分包的重传请求时,确定该数据拆分包丢失;其中,所述重传请求是所述接收端设备在接收到该帧视频数据的按照包编号排序的上一个数据拆分包之后,未在第一重传超时时间内接收到下一个数据拆分包的情况下发送的;
其中,所述第一重传超时时间依据历史帧视频数据对应的数据拆分包的往返时间确定。
在一些实施例中,依据历史帧视频数据对应的数据拆分包的往返时间确定所述第一重传超时时间包括:
依据至少一帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定所述第一重传超时时间。
在一些实施例中,所述数据收发单元520依据至少一帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定所述第一重传超时时间,包括:
依据多帧历史帧视频数据对应的各数据拆分包的平均往返时间,利用加权求和方式,确定所述第一重传超时时间。
在一些实施例中,对于任一数据拆分包,该数据拆分包的往返时间通过以下方式确定:
对于有线传输场景,依据该数据拆分包从所述发送端设备到所述接收端设备的传输时间,以及针对该数据拆分包的确认消息从所述接收端设备到所述发送端设备的传输时间确定;其中,所述接收端设备针对接收到的任一数据拆分包均返回确认消息;
对于无线传输场景,依据该数据拆分包从所述发送端设备到所述接收端设备的传输时间确定;其中,所述接收端设备针对已确定未接收到的数据拆分包发送重传请求,所述重传请求是所述接收端设备在接收到该帧视频数据的按照包编号排序的上一个数据拆分包之后,未在第一重传超时时间内接收到下一个数据拆分包的情况下发送的。
在一些实施例中,所述数据收发单元520将添加包头信息的数据拆分包发送给接收端设备之后,还包括:
对于任一数据拆分包,当接收到针对该数据拆分包的确认消息时,将该数据拆分包从发送缓存中清除;其中,所述接收端设备针对接收到的任一数据拆分包均返回确认消息;
在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除。
在一些实施例中,所述数据收发单元520将添加包头信息的数据拆分包发送给接收端设备之后,还包括:
当接收到所述接收端设备发送的重传请求时,对发送缓存中缓存的包编号小于目标包编号的数据拆分包进行清除;其中,所述目标包编号为所述重传请求中携带的包编号中的最小值;所述接收端设备针对已确定未接收到的数据拆分包发送重传请求;
当接收到所述接收端设备发送的确认消息时,或,在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除;其中,所述确认消息由所述接收端设备在确定该帧视频数据对应的数据拆分包均接收到的情况下发送。
在一些实施例中,当所述网络设备作为接收端设备时:
所述数据收发单元520,还用于对于任一帧视频数据,当接收到该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包时,启动第一定时器;
若在所述第一定时器超时前,接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则重置所述第一定时器;
若在所述第一定时器超时前,未接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则向发送端设备发送针对该数据拆分包的重传请求,重置所述第一定时器,并启动第二定时器,所述第二定时器的定时时长大于所述第一定时器的定时时长;
若在所述第二定时器超时前,接收到重传的数据拆分包,则取消所述第二定时器;否则,再次向发送端设备发送针对该数据拆分包的重传请求,并重置所述第二定时器。
在一些实施例中,所述数据收发单元,还用于对于任一帧视频数据,在首次接收到该帧视频数据对应的数据拆分包时,确定该数据拆分包是否为该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包;
若该数据拆分包为该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则确定执行所述启动第一定时器的操作;
若该数据拆分包不是该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则启动所述第一定时器,向发送端设备发送针对目标数据拆分包的重传请求,并启动第二定时器,所述目标数据拆分包为该帧视频数据对应的数据拆分包中,包编号小于当前接收到的数据拆分包的包编号的数据拆分包。
对应地,本申请还提供了图5所示装置的硬件结构。参见图6,该硬件结构可包括:处理器和机器可读存储介质,机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上述示例公开的方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。
示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (11)

1.一种视频数据传输方法,应用于网络设备,其特征在于,当所述网络设备作为发送端设备时,所述方法包括:
对于待传输的任一帧视频数据,将该帧视频数据拆分为多个数据拆分包;其中,任一数据拆分包的大小不超过预设包长阈值;
分别为所述多个数据拆分包中各数据拆分包添加包头信息,并将添加包头信息的数据拆分包发送给接收端设备,以使所述接收端设备依据所述数据拆分包中的包头信息确定单帧视频数据的接收状态;其中,对于任一数据拆分包,该数据拆分包中的包头信息包括该数据拆分包所属视频帧的标识、该数据拆分包所属视频帧拆分的数据拆分包的数量以及该数据拆分包的编号;
在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,若确定所述多个数据拆分包存在数据拆分包丢失,则对丢失的数据拆分包进行重传;若确定所述多个数据拆分包均发送成功,则结束该帧视频数据的发送;其中,所述单帧视频数据传输时间阈值依据视频帧率确定;
在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,结束该帧视频数据的发送;
其中,所述确定所述多个数据拆分包存在数据拆分包丢失,包括:
对于所述多个数据拆分包中的任一数据拆分包,当在该数据拆分包发送给接收端设备之后,未在第一重传超时时间内接收到接收端设备发送的针对该数据拆分包的确认消息时,确定该数据拆分包丢失;
其中,所述第一重传超时时间依据历史帧视频数据对应的数据拆分包的往返时间确定。
2.根据权利要求1所述的方法,其特征在于,依据历史帧视频数据对应的数据拆分包的往返时间确定所述第一重传超时时间包括:
依据至少一帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定所述第一重传超时时间。
3.根据权利要求2所述的方法,其特征在于,所述依据至少一帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定所述第一重传超时时间,包括:
依据多帧历史帧视频数据对应的各数据拆分包的平均往返时间,利用加权求和方式,确定所述第一重传超时时间。
4.根据权利要求1-3任一项所述的方法,其特征在于,对于任一数据拆分包,该数据拆分包的往返时间通过以下方式确定:
对于有线传输场景,依据该数据拆分包从所述发送端设备到所述接收端设备的传输时间,以及针对该数据拆分包的确认消息从所述接收端设备到所述发送端设备的传输时间确定;其中,所述接收端设备针对接收到的任一数据拆分包均返回确认消息;
对于无线传输场景,依据该数据拆分包从所述发送端设备到所述接收端设备的传输时间确定;其中,所述接收端设备针对已确定未接收到的数据拆分包发送重传请求,所述重传请求是所述接收端设备在接收到该帧视频数据的按照包编号排序的上一个数据拆分包之后,未在第一重传超时时间内接收到下一个数据拆分包的情况下发送的。
5.根据权利要求1所述的方法,其特征在于,所述将添加包头信息的数据拆分包发送给接收端设备之后,还包括:
对于任一数据拆分包,当接收到针对该数据拆分包的确认消息时,将该数据拆分包从发送缓存中清除;其中,所述接收端设备针对接收到的任一数据拆分包均返回确认消息;
在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除。
6.根据权利要求1所述的方法,其特征在于,所述将添加包头信息的数据拆分包发送给接收端设备之后,还包括:
当接收到所述接收端设备发送的重传请求时,对发送缓存中缓存的包编号小于目标包编号的数据拆分包进行清除;其中,所述目标包编号为所述重传请求中携带的包编号中的最小值;所述接收端设备针对已确定未接收到的数据拆分包发送重传请求;
当接收到所述接收端设备发送的确认消息时,或,在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除;其中,所述确认消息由所述接收端设备在确定该帧视频数据对应的数据拆分包均接收到的情况下发送。
7.根据权利要求1所述的方法,其特征在于,当所述网络设备作为接收端设备时,所述方法还包括:
对于任一帧视频数据,当接收到该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包时,启动第一定时器;
若在所述第一定时器超时前,接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则重置所述第一定时器;
若在所述第一定时器超时前,未接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则向发送端设备发送针对该数据拆分包的重传请求,重置所述第一定时器,并启动第二定时器,所述第二定时器的定时时长大于所述第一定时器的定时时长;
若在所述第二定时器超时前,接收到重传的数据拆分包,则取消所述第二定时器;否则,再次向发送端设备发送针对该数据拆分包的重传请求,并重置所述第二定时器。
8.根据权利要求7所述的方法,其特征在于,对于任一帧视频数据,在首次接收到该帧视频数据对应的数据拆分包时,所述方法还包括:
确定该数据拆分包是否为该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包;
若该数据拆分包为该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则确定执行所述启动第一定时器的操作;
若该数据拆分包不是该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则启动所述第一定时器,向发送端设备发送针对目标数据拆分包的重传请求,并启动第二定时器,所述目标数据拆分包为该帧视频数据对应的数据拆分包中,包编号小于当前接收到的数据拆分包的包编号的数据拆分包。
9.一种视频数据传输装置,应用于网络设备,其特征在于,所述装置包括:数据处理单元以及数据收发单元;其中,当所述网络设备作为发送端设备时:
所述数据处理单元,用于对于待传输的任一帧视频数据,将该帧视频数据拆分为多个数据拆分包;其中,任一数据拆分包的大小不超过预设包长阈值;
所述数据收发单元,用于分别为所述多个数据拆分包中各数据拆分包添加包头信息,并将添加包头信息的数据拆分包发送给接收端设备,以使所述接收端设备依据所述数据拆分包中的包头信息确定单帧视频数据的接收状态;其中,对于任一数据拆分包,该数据拆分包中的包头信息包括该数据拆分包所属视频帧的标识、该数据拆分包所属视频帧拆分的数据拆分包的数量以及该数据拆分包的编号;
所述数据收发单元,还用于在该帧视频数据的传输时间达到单帧视频数据传输时间阈值之前,若确定所述多个数据拆分包存在数据拆分包丢失,则对丢失的数据拆分包进行重传;若确定所述多个数据拆分包均发送成功,则结束该帧视频数据的发送;其中,所述单帧视频数据传输时间阈值依据视频帧率确定;
所述数据收发单元,还用于在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,结束该帧视频数据的发送;
其中,所述数据收发单元确定所述多个数据拆分包存在数据拆分包丢失,包括:
对于所述多个数据拆分包中的任一数据拆分包,当在该数据拆分包发送给接收端设备之后,未在第一重传超时时间内接收到接收端设备发送的针对该数据拆分包的确认消息时,确定该数据拆分包丢失;
其中,所述第一重传超时时间依据历史帧视频数据对应的数据拆分包的往返时间确定。
10.根据权利要求9所述的装置,其特征在于,依据历史帧视频数据对应的数据拆分包的往返时间确定所述第一重传超时时间包括:
依据至少一帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定所述第一重传超时时间;
其中,所述数据收发单元依据至少一帧历史帧视频数据对应的各数据拆分包的平均往返时间,确定所述第一重传超时时间,包括:
依据多帧历史帧视频数据对应的各数据拆分包的平均往返时间,利用加权求和方式,确定所述第一重传超时时间;
其中,对于任一数据拆分包,该数据拆分包的往返时间通过以下方式确定:
对于有线传输场景,依据该数据拆分包从所述发送端设备到所述接收端设备的传输时间,以及针对该数据拆分包的确认消息从所述接收端设备到所述发送端设备的传输时间确定;其中,所述接收端设备针对接收到的任一数据拆分包均返回确认消息;
对于无线传输场景,依据该数据拆分包从所述发送端设备到所述接收端设备的传输时间确定;其中,所述接收端设备针对已确定未接收到的数据拆分包发送重传请求,所述重传请求是所述接收端设备在接收到该帧视频数据的按照包编号排序的上一个数据拆分包之后,未在第一重传超时时间内接收到下一个数据拆分包的情况下发送的;
和/或,
所述数据收发单元将添加包头信息的数据拆分包发送给接收端设备之后,还包括:
对于任一数据拆分包,当接收到针对该数据拆分包的确认消息时,将该数据拆分包从发送缓存中清除;其中,所述接收端设备针对接收到的任一数据拆分包均返回确认消息;
在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除;
和/或,
所述数据收发单元将添加包头信息的数据拆分包发送给接收端设备之后,还包括:
当接收到所述接收端设备发送的重传请求时,对发送缓存中缓存的包编号小于目标包编号的数据拆分包进行清除;其中,所述目标包编号为所述重传请求中携带的包编号中的最小值;所述接收端设备针对已确定未接收到的数据拆分包发送重传请求;
当接收到所述接收端设备发送的确认消息时,或,在该帧视频数据的传输时间达到单帧视频数据传输时间阈值的情况下,对发送缓存中缓存的该帧视频数据对应的数据拆分包进行清除;其中,所述确认消息由所述接收端设备在确定该帧视频数据对应的数据拆分包均接收到的情况下发送;
和/或,
当所述网络设备作为接收端设备时:
所述数据收发单元,还用于对于任一帧视频数据,当接收到该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包时,启动第一定时器;
若在所述第一定时器超时前,接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则重置所述第一定时器;
若在所述第一定时器超时前,未接收到该帧视频数据对应的数据拆分包中按照包编号排序的下一个数据拆分包,则向发送端设备发送针对该数据拆分包的重传请求,重置所述第一定时器,并启动第二定时器,所述第二定时器的定时时长大于所述第一定时器的定时时长;
若在所述第二定时器超时前,接收到重传的数据拆分包,则取消所述第二定时器;否则,再次向发送端设备发送针对该数据拆分包的重传请求,并重置所述第二定时器;
其中,所述数据收发单元,还用于对于任一帧视频数据,在首次接收到该帧视频数据对应的数据拆分包时,确定该数据拆分包是否为该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包;
若该数据拆分包为该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则确定执行所述启动第一定时器的操作;
若该数据拆分包不是该帧视频数据对应的数据拆分包中按照包编号排序的第一个数据拆分包,则启动所述第一定时器,向发送端设备发送针对目标数据拆分包的重传请求,并启动第二定时器,所述目标数据拆分包为该帧视频数据对应的数据拆分包中,包编号小于当前接收到的数据拆分包的包编号的数据拆分包。
11.一种电子设备,其特征在于,该电子设备包括:
处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-8任一项的方法步骤。
CN202111257823.9A 2021-10-27 2021-10-27 视频数据传输方法、装置及电子设备 Active CN114024914B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111257823.9A CN114024914B (zh) 2021-10-27 2021-10-27 视频数据传输方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111257823.9A CN114024914B (zh) 2021-10-27 2021-10-27 视频数据传输方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN114024914A CN114024914A (zh) 2022-02-08
CN114024914B true CN114024914B (zh) 2024-03-01

Family

ID=80058283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111257823.9A Active CN114024914B (zh) 2021-10-27 2021-10-27 视频数据传输方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN114024914B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979707B (zh) * 2022-05-13 2023-12-19 深圳智慧林网络科技有限公司 一种数据发送方法及装置
CN117202352A (zh) * 2022-05-25 2023-12-08 华为技术有限公司 通信方法及装置
CN115150387A (zh) * 2022-06-14 2022-10-04 炫彩互动网络科技有限公司 一种云游戏中数据传输方法
CN115086564A (zh) * 2022-07-27 2022-09-20 维沃移动通信有限公司 摄像头图像帧干扰处理方法、装置和电子设备
CN115426029B (zh) * 2022-08-29 2023-11-14 北京中联合超高清协同技术中心有限公司 高效超高清数字电影卫星传输分发及接收方法
FR3139682A1 (fr) * 2022-09-14 2024-03-15 Thales Adaptation dynamique du format de transmission d'un chiffrement de données basé sur les attributs
CN115695582A (zh) * 2022-10-31 2023-02-03 天翼数字生活科技有限公司 一种低延时传输控制的方法、接收终端和发送终端
CN116827411B (zh) * 2023-06-27 2024-03-01 北京和德宇航技术有限公司 一种载荷数据解析方法、装置、电子设备和存储介质
CN116980976A (zh) * 2023-09-21 2023-10-31 深圳市聚亚科技有限公司 基于4g通信模块的数据透传方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822524A (en) * 1995-07-21 1998-10-13 Infovalue Computing, Inc. System for just-in-time retrieval of multimedia files over computer networks by transmitting data packets at transmission rate determined by frame size
CN1756230A (zh) * 2004-09-30 2006-04-05 华为技术有限公司 降低实时业务时延及时延抖动的方法
CN101202604A (zh) * 2007-08-14 2008-06-18 深圳市同洲电子股份有限公司 一种网络数据的发送与接收方法、系统及设备
CN101262321A (zh) * 2008-02-03 2008-09-10 杭州华三通信技术有限公司 媒体数据处理方法、编码设备及媒体平台
CN101656747A (zh) * 2009-09-25 2010-02-24 深圳创维数字技术股份有限公司 流媒体数据的传输方法及系统
CN103975570A (zh) * 2011-12-05 2014-08-06 生活服务质量有限公司 用于实现目标丢包率的方法
WO2017005055A1 (zh) * 2015-07-08 2017-01-12 杭州海康威视数字技术股份有限公司 流媒体网络传输的带宽计算方法、服务器端和系统
CN106792262A (zh) * 2016-12-05 2017-05-31 乐视控股(北京)有限公司 视频数据传输方法及装置
CN108696773A (zh) * 2017-04-11 2018-10-23 上海谦问万答吧云计算科技有限公司 一种实时视频的传输方法及装置
CN109842821A (zh) * 2018-12-25 2019-06-04 视联动力信息技术股份有限公司 一种视频数据传输的方法和装置
CN110611644A (zh) * 2018-06-15 2019-12-24 视联动力信息技术股份有限公司 一种数据的传输方法和装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822524A (en) * 1995-07-21 1998-10-13 Infovalue Computing, Inc. System for just-in-time retrieval of multimedia files over computer networks by transmitting data packets at transmission rate determined by frame size
CN1756230A (zh) * 2004-09-30 2006-04-05 华为技术有限公司 降低实时业务时延及时延抖动的方法
CN101202604A (zh) * 2007-08-14 2008-06-18 深圳市同洲电子股份有限公司 一种网络数据的发送与接收方法、系统及设备
WO2009021417A1 (fr) * 2007-08-14 2009-02-19 Shenzhen Coship Electronics Co., Ltd. Procédé, système et dispositif de transmission et de réception de données de réseau
CN101262321A (zh) * 2008-02-03 2008-09-10 杭州华三通信技术有限公司 媒体数据处理方法、编码设备及媒体平台
CN101656747A (zh) * 2009-09-25 2010-02-24 深圳创维数字技术股份有限公司 流媒体数据的传输方法及系统
CN103975570A (zh) * 2011-12-05 2014-08-06 生活服务质量有限公司 用于实现目标丢包率的方法
WO2017005055A1 (zh) * 2015-07-08 2017-01-12 杭州海康威视数字技术股份有限公司 流媒体网络传输的带宽计算方法、服务器端和系统
CN106792262A (zh) * 2016-12-05 2017-05-31 乐视控股(北京)有限公司 视频数据传输方法及装置
CN108696773A (zh) * 2017-04-11 2018-10-23 上海谦问万答吧云计算科技有限公司 一种实时视频的传输方法及装置
CN110611644A (zh) * 2018-06-15 2019-12-24 视联动力信息技术股份有限公司 一种数据的传输方法和装置
CN109842821A (zh) * 2018-12-25 2019-06-04 视联动力信息技术股份有限公司 一种视频数据传输的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于RTP的实时视频传输系统;许华荣, 李名世;计算机工程与设计(第04期);全文 *
基于帧拆分的MPEG视频的可靠传输;李国东;杨海荣;王东奎;张德富;;计算机科学(第05期);全文 *

Also Published As

Publication number Publication date
CN114024914A (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
CN114024914B (zh) 视频数据传输方法、装置及电子设备
US20220014312A1 (en) Data transmission method and apparatus
US7505412B2 (en) Transmission control method and system
US5664091A (en) Method and system for a voiding unnecessary retransmissions using a selective rejection data link protocol
CN106878191B (zh) 一种数据传送方法、发送节点、接收节点及数据传送系统
EP1393489B1 (en) Method and receiver for improved data packet transfer in a transmission protocol with repeat requests
KR101236080B1 (ko) 손실된 패킷 검출 방법 및 패킷에 대한 재전송 메카니즘을결정하는 방법
KR101139996B1 (ko) 중복 확인으로 데이터 흐름 제어
US20060256785A1 (en) Mobile terminal
EP1924019A2 (en) FEC communication apparatus, communication method and computer readable medium
CN103269260A (zh) 数据传输方法、数据接收端、数据发送端和数据传输系统
CN107592185B (zh) 一种适用于网络编码传输控制协议的前向重传方法
JP2008508817A (ja) 低頻度ackのシステムに適した高性能tcp
WO2011108480A1 (ja) パケット再送制御システム、方法、及びプログラム
JP2004007823A (ja) データ伝送方法および装置
US20060271680A1 (en) Method For Transmitting Window Probe Packets
CN112769526B (zh) 数据包重传方法、系统和存储介质
CN104104608B (zh) 接收报文的方法及装置
WO2015083919A1 (ko) 무선통신의 패킷 손실 저감 방법 및 장치
US7203184B2 (en) Data transmitter, data receiver, and data transmitting/receiving method
CN111163362B (zh) 一种自适应重传等待时间的视频接收方法及系统
CN109560897B (zh) 一种tcp重传方法和装置
US7203162B2 (en) Link state retransmission mechanism
CN112351049B (zh) 数据传输方法、装置、设备及存储介质
US11632444B2 (en) Method, device, and system for TCP packet transmission over satellite communication network

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