CN110971942B - 数据传输方法和装置 - Google Patents

数据传输方法和装置 Download PDF

Info

Publication number
CN110971942B
CN110971942B CN201811142210.9A CN201811142210A CN110971942B CN 110971942 B CN110971942 B CN 110971942B CN 201811142210 A CN201811142210 A CN 201811142210A CN 110971942 B CN110971942 B CN 110971942B
Authority
CN
China
Prior art keywords
video data
sent
data packet
data packets
video
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
CN201811142210.9A
Other languages
English (en)
Other versions
CN110971942A (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 CN201811142210.9A priority Critical patent/CN110971942B/zh
Priority to EP19865006.1A priority patent/EP3860131A4/en
Priority to US17/281,222 priority patent/US11589101B2/en
Priority to PCT/CN2019/107731 priority patent/WO2020063635A1/zh
Publication of CN110971942A publication Critical patent/CN110971942A/zh
Application granted granted Critical
Publication of CN110971942B publication Critical patent/CN110971942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23611Insertion of stuffing data into a multiplex stream, e.g. to obtain a constant bitrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Abstract

本公开是关于一种数据传输方法和装置,属于互联网技术领域。所述方法包括:每当达到预设的数据发送周期时,确定是否存在待发送的视频数据包;如果不存在待发送的视频数据包,则在已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件,且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包;向接收端发送填充数据包。采用本公开,进而可以有效地利用填充数据包提高数据传输的质量。

Description

数据传输方法和装置
技术领域
本公开是关于互联网技术领域,尤其是关于一种数据传输方法和装置。
背景技术
随着科技的发展,实时传输技术已走入人们的生活。发送端可以通过视频拍摄装置持续拍摄环境视频,将环境视频进行编码、压缩、打包等处理之后,得到RTP(Real-timeTransport Protocol,实时传输协议)数据包,基于RTP协议通过传输网络,立即将RTP数据包发送至接收端。每个RTP数据包都携带有对应的序列号,接收端可以基于序列号是否断续,确定是否发生丢包。如果发生丢包,发送端可以将发生丢包的RTP数据包对应的序列号发送至发送端,发送端基于该序列号,重传发生丢包的RTP数据包。但是这样做的往返耗时较长。解决该问题的方法可以是,发送端生成用于恢复RTP数据包的冗余数据,将冗余数据协同RTP数据包一起发送至接收端。当发生丢包时,接收端可以基于冗余数据对发生丢包的RTP数据包进行恢复。这样就可以消除往返耗时,但是又会增加额外用于传输冗余数据的带宽。
在编码过程中,为了更好的适应当前的传输网络的带宽来调整对环境视频进行编码的输出码率,发送端会根据预设的码率算法、前预设个数据发送周期的实际发送码率以及丢包率,确定当前的期望发送码率。根据期望发送码率对环境视频进行编码,以保证实际输出码率小于期望发送码率,这样编码后得到的编码数据能在当前的传输网络环境下,传输至接收端。相关技术提出了两种编码方式,即CBR(Constant Bit Rate,固定码率)方式和VBR(Variable Bit Rate,动态码率)方式。通过这两种编码方式对环境视频进行编码处理时,随着环境视频中的画面场景变化的快慢,编码处理后得到的编码数据的数据量也在变化。假如画面场景变化较快,则编码处理后得到的编码数据的数据量较大,场景画面变化较慢,则编码处理后得到的编码数据的数据量较少。在数据量较大时,发送端需要发送较多的数据,在数据量较少时,发送端需要发送较少的数据。
在实现本公开的过程中,发明人发现至少存在以下问题:
如果在前预设个数据发送周期中,因为发送的数据较少而使用较小的实际发送码率,则基于较小的实际发送码率确定出的当前的期望发送码率较小,这可能和当前实际能达到的发送码率相差较大,导致发送端确定出错误的当前的期望发送码率,进而当前会空闲出较多带宽却不使用,不利于网络传输。
发明内容
为了克服相关技术中存在的问题,本公开提供了以下技术方案:
根据本公开实施例的第一方面,提供一种数据传输方法,所述方法包括:
每当达到预设的数据发送周期时,确定是否存在待发送的视频数据包;
如果不存在待发送的视频数据包,则在已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包;
向接收端发送所述填充数据包。
可选地,所述在已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包,包括:
在当前视频帧和上一视频帧对应的已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包。
可选地,所述在当前视频帧和上一视频帧对应的已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包,包括:
确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包;
如果在所述当前视频帧对应的已发送的视频数据包中,存在已发送次数小于所述第一预设次数阈值的视频数据包,则选取已发送次数小于所述第一预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包;
确定选取的视频数据包的总数据量是否满足预设的期望数据量条件;
如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
可选地,所述在当前视频帧和上一视频帧对应的已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件至少一个视频数据包,根据选取的视频数据包确定填充数据包,包括:
确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包;
如果在所述当前视频帧对应的已发送的视频数据包中,存在已发送次数小于所述第一预设次数阈值的视频数据包,则选取已发送次数小于所述第一预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,且在上一视频帧对应的已发送的视频数据包中,存在已发送次数小于第二预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于所述第二预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,且在上一视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第二预设次数阈值的视频数据包,则将所述第一预设次数阈值增加第一预设增加值,将所述第二预设次数阈值增加第二预设增加值,转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包;
确定选取的视频数据包的总数据量是否满足预设的期望数据量条件;
如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
可选地,所述如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据选取的视频数据包确定填充数据包,包括:
确定已选取的所有视频数据包的总数据量,以及除当前选取的视频数据包之外的已选取的视频数据包的数据量的和值;
如果所述总数据量大于预设的期望数据量,则确定所述总数据量与所述期望数据量的差值的绝对值,确定所述和值与所述期望数据量的差值的绝对值,将最小绝对值对应的视频数据包确定为填充数据包;
如果所述总数据量等于所述期望数据量,则将已选取的视频数据包确定为填充数据包;
所述如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包,包括:
如果所述总数据量小于所述期望数据量,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
可选地,所述选取已发送次数小于所述第一预设次数阈值的一个视频数据包,包括:
选取已发送次数小于第一预设次数阈值的且已发送次数最小的一个视频数据包;
所述在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包,包括:
在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的且已发送次数最小的一个视频数据包。
根据本公开实施例的第二方面,提供一种数据传输装置,所述装置包括:
确定模块,用于每当达到预设的数据发送周期时,确定是否存在待发送的视频数据包;
填充模块,用于当不存在待发送的视频数据包时,在已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包;
发送模块,用于向接收端发送所述填充数据包。
可选地,所述填充模块,用于:
在当前视频帧和上一视频帧对应的已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包。
可选地,所述填充模块,用于:
确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包;
如果在所述当前视频帧对应的已发送的视频数据包中,存在已发送次数小于所述第一预设次数阈值的视频数据包,则选取已发送次数小于所述第一预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包;
确定选取的视频数据包的总数据量是否满足预设的期望数据量条件;
如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
可选地,所述填充模块,用于:
确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包
如果在所述当前视频帧对应的已发送的视频数据包中,存在已发送次数小于所述第一预设次数阈值的视频数据包,则选取已发送次数小于所述第一预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,且在上一视频帧对应的已发送的视频数据包中,存在已发送次数小于第二预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于所述第二预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,且在上一视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第二预设次数阈值的视频数据包,则将所述第一预设次数阈值增加第一预设增加值,将所述第二预设次数阈值增加第二预设增加值,转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包;
确定选取的视频数据包的总数据量是否满足预设的期望数据量条件;
如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
可选地,所述填充模块,用于:
确定已选取的所有视频数据包的总数据量,以及除当前选取的视频数据包之外的已选取的视频数据包的数据量的和值;
如果所述总数据量大于预设的期望数据量,则确定所述总数据量与所述期望数据量的差值的绝对值,确定所述和值与所述期望数据量的差值的绝对值,将最小绝对值对应的视频数据包确定为填充数据包;
如果所述总数据量等于所述期望数据量,则将已选取的视频数据包确定为填充数据包;
如果所述总数据量小于所述期望数据量,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
可选地,所述填充模块,用于:
选取已发送次数小于第一预设次数阈值的且已发送次数最小的一个视频数据包;
在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的且已发送次数最小的一个视频数据包。
根据本公开实施例的第三方面,提供一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,其中:
所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序,以实现上述数据传输方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述数据传输方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过本公开实施例提供的方法,在不存在待发送的视频数据包时,可以将已发送的视频数据包作为填充数据包,向接收端发送。这样,可以保证发送端在每个数据发送周期能向接收端发送数据,并且发送的数据的数据量和期望数据量接近,进而可以保证发送端的实际发送码率和期望发送码率近似相等,进而使得发送端在下一码率计算周期到达时,可以确定出准确的期望发送码率,有利于让发送端根据准确的期望发送码率来发送数据,提高网络传输效率。此外,通过本公开实施例提供的方法,还可以根据已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件的已发送的视频数据包作为填充数据包,向接收端发送。这样,即使之前发送的视频数据包发生丢包,还可以使用填充数据包代替发生丢包的视频数据包,进而可以有效地利用填充数据包提高数据传输的质量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。在附图中:
图1是根据一示例性实施例示出的一种计算机设备的结构示意图;
图2是根据一示例性实施例示出的一种数据传输方法的流程示意图;
图3是根据一示例性实施例示出的一种数据传输方法的流程示意图;
图4是根据一示例性实施例示出的一种数据传输方法的流程示意图;
图5是根据一示例性实施例示出的一种数据传输装置的结构示意图;
图6是根据一示例性实施例示出的一种计算机设备的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开一示例性实施例提供了一种数据传输方法,该方法可以由图1所示的各模块组成的计算机设备实现,各模块的功能将在对本公开实施例提供的方法进行描述的过程中一一介绍。计算机设备可以作为发送端,发送端可以获取视频拍摄装置拍摄的环境视频,将环境视频进行编码、压缩、打包等处理之后,得到视频数据包,基于RTP协议通过传输网络,将视频数据包实时发送至接收端。接收端在接收到视频数据包之后,会基于视频数据包,播放环境视频。
在编码过程中,为了更好的适应当前的传输网络的带宽来调整对环境视频进行编码的输出码率,发送端会根据预设的码率算法、前预设个数据发送周期的实际发送码率以及丢包率,确定当前的期望发送码率。根据期望发送码率对环境视频进行编码,以保证实际输出码率小于期望发送码率,这样编码后得到的编码数据能在当前的传输网络环境下,传输至接收端。存在两种编码方式,即CBR(Constant Bit Rate,固定码率)方式和VBR(Variable Bit Rate,动态码率)方式。通过这两种编码方式对环境视频进行编码处理时,随着环境视频中的画面场景变化的快慢,编码处理后得到的编码数据的数据量也在变化。假如画面场景变化较快,则编码处理后得到的编码数据的数据量较大,场景画面变化较慢,则编码处理后得到的编码数据的数据量较少。在数据量较大时,发送端需要发送较多的数据,在数据量较少时,发送端需要发送较少的数据。
如果在前预设个数据发送周期中,因为发送的数据较少而使用较小的实际发送码率,则基于较小的实际发送码率确定出的当前的期望发送码率较小,这可能和当前实际能达到的发送码率相差较大,导致发送端确定出错误的当前的期望发送码率,进而当前会空闲出较多带宽却不使用,不利于网络传输。
为了解决上述问题,可以将空闲出的带宽用作发送填充数据包,这样空闲的带宽被利用上,实际发送码率与当前的期望发送码率近似相等。在本公开实施例中,提供了选择填充数据包的方法,在发送填充数据包的过程中可以将空闲的带宽利用上,同时还可以通过发送填充数据包的方式提高数据传输的质量。
本公开一示例性实施例提供了一种数据传输方法,如图2所示,该方法的处理流程可以包括如下的步骤:
步骤S210,每当达到预设的数据发送周期时,确定是否存在待发送的视频数据包。
图1所示的拥塞控制模块,可以基于预设的码率算法、前预设个数据发送周期的实际发送码率、丢包率以及收包延时时长,确定当前的期望发送码率,如400MB每秒。拥塞控制模块可以按照预设的计算周期,计算期望发送码率,例如每200毫秒计算一次期望发送码率。如果传输网络的传输速率较为稳定,不存在较大的抖动,则可以认为相邻几个计算周期内计算的期望发送码率是近似的。
拥塞控制模块可以将当前的期望发送码率发送至图1所示的编码模块,编码模块可以基于当前的期望发送码率,确定编码方式。如果当前的期望发送码率较高,可以选择输出码率较高的编码方式,如果当前的期望发送码率较低,可以选择输出码率较低的编码方式,以使得输出码率适应传输网络当前的带宽。接着,编码模块基于确定的编码方式,对视频拍摄装置拍摄的视频流进行编码处理,输出码率一般会低于当前的期望发送码率。随后,编码模块将编码处理后得到的编码数据发送至图1所示的节拍模块,由节拍模块控制向接收端发送编码处理后得到的编码数据的节奏。
节拍模块接收编码模块发送的编码处理后得到的编码数据,对编码处理后得到的编码数据进行切分、打包处理,得到多个视频数据包,这些视频数据包的数据量不完全相等,一般在几百KB到一千KB之间。拥塞控制模块同时可以将当前的期望发送码率发送至节拍模块。节拍模块基于当前的期望发送码率,确定每个数据发送周期需要发送的视频数据包的期望数据量,然后选取总数据量和期望数据量近似相等的至少一个视频数据包,作为一次向接收端发送的视频数据包。在节拍模块中可以设置发送队列,将每次向接收端发送的视频数据包添加至发送队列中,每当达到预设的数据发送周期如5毫秒时,节拍模块会确定发送队列中是否存在待发送的视频数据包。如果存在,节拍模块则将发送队列中的总数据量和期望数据量近似相等的至少一个视频数据包发送至接收端。
例如,节拍模块中存储有1000个大小全部为200KB(这里只是示例性的说明,实际情况中,视频数据包的大小不完全相等)的视频数据包,期望数据量为2MB,则每次选取10个视频数据包,这些视频数据包的总数据量为2000KB,与期望数据量近似相等。当达到预设的数据发送周期时,向接收端发送选取的10个视频数据包。这样,可以保证发送的数据量与期望数据量近似相等,进而实际发送码率与期望发送码率近似相等。
假如视频中的画面场景变化较快,则编码处理后得到的编码数据的数据量较大,场景画面变化较慢,则编码处理后得到的编码数据的数据量较少。但是无论编码处理后得到的编码数据的数据量是多是少,输出码率都会小于期望发送码率,这就会导致没有足够的数据可以发送。例如,节拍模块中仅存储有1000个视频数据包,新的编码处理后得到的编码数据还未到达,1000个大小全部为200KB的视频数据包仅够100个数据发送周期发送的数据量。在100个数据发送周期之后,无数据可发送。可能再经过多个数据发送周期之后,才会有新的编码处理后得到的编码数据到达,但是应该发送数据的数据发送周期未发送和期望数据量近似的数据,会导致实际发送码率达不到期望发送码率。
例如,期望发送码率为400MB每秒,即每秒要发送400MB的数据。数据发送周期为5毫秒,即每秒有200个数据发送周期。进而,每个数据发送周期需要发送的数据量为2MB。节拍模块中仅存储有1000个大小全部为200KB的视频数据包,在前100个数据发送周期可以将1000个大小全部为200KB的视频数据包都发送至接收端,在后100个数据发送周期不一定有新的编码处理后得到的编码数据到达,可能未数据发送。
步骤S220,如果不存在待发送的视频数据包,则在已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件,且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包。
节拍模块在确定不存在待发送的视频数据包之后,可以通知图1所示的填充模块。填充模块基于期望数据量,在已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件,且总数据量近似等于期望数据量的至少一个视频数据包,根据选取的视频数据包确定填充数据包。其中,由于每个视频数据包的数据量的大小在几百KB至一千KB之间不等,选取的视频数据包的总数据量不一定能够完全等于期望数据量,在选取的视频数据包的总数据量不能和期望数据量完全相等时,可以选取总数据量最为和期望数据量接近相等的视频数据包,在下文会介绍根据选取的视频数据包确定填充数据包的方式。
步骤S230,向接收端发送填充数据包。
填充模块将填充数据包发送至节拍模块,由节拍模块将填充数据包添加到发送队列中,通过发送队列向接收端发送填充数据包。
例如,节拍模块中仅存储有1000个大小全部为200KB的视频数据包,在前100个数据发送周期可以将1000个大小全部为200KB的视频数据包都发送至接收端。在第101个数据发送周期检测到不存在待发送的视频数据包,填充模块则可以在已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件,且总数据量近似等于2M的至少一个视频数据包,根据选取的视频数据包确定填充数据包,将填充数据包发送至节拍模块,由节拍模块将填充数据包添加到发送队列中。在第101个数据发送周期中,通过发送队列向接收端发送填充数据包。如果在第102个数据发送周期,依然不存在待发送的视频数据包,可以循环执行上述步骤,直到在发送队列中检测到待发送的视频数据包。
每个视频数据包都携带有对应的序列号,接收端可以根据序列号确定是否发生丢包。例如,当前接收到的视频数据包的序列号为121,则下一个视频数据包的序列号应该为122,如果发生丢包,则可能过了预设的等待时长之后,还未接收到序列号为122的视频数据包,但是此时已经接收到序列号为123甚至是其后的多个视频数据包了,可以确定序列号为122的视频数据包发生丢包。由于发送端会将已发送的视频数据包作为填充数据包再次进行发送,接收端可以在填充数据包中寻找是否有序列号为122的视频数据包,如果有则可以将作为填充数据包的序列号为122的视频数据包,用于对发生丢包的视频数据包的恢复。
可选地,步骤S220可以包括:如果不存在待发送的视频数据包,则在已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件,且总数据量满足预设的期望数据量条件的至少一个视频数据包。
可选地,步骤S220可以包括:如果不存在待发送的视频数据包,则在当前视频帧和上一视频帧对应的已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包。
由于一个视频帧的数据量较大,一般会将一个视频帧分为几个数据发送周期向接收端发送,当发送完毕之后,会将已发送的视频数据包暂存在发送端中。填充模块在选取至少一个视频数据包的过程中,可以只在当前视频帧和上一视频帧对应的已发送的视频数据包中进行选取。由于发送端基于RTP协议通过传输网络,将视频数据包实时发送至接收端,接收端在接收到视频数据包之后,会基于视频数据包,播放视频帧,因此在数据传输过程中需要保证实时性,如果在当前视频帧和上一视频帧之前的视频帧对应的已发送的视频数据包中,选取至少一个视频数据包,则即使将选取的视频数据包发送到接收端,接收端已经播过当前视频帧和上一视频帧之前的视频帧,即使当前视频帧和上一视频帧之前的视频帧对应的视频数据包发生丢包,当接收端接收到用于填充的当前视频帧和上一视频帧之前的视频帧对应的视频数据包,也不能将其用于恢复发生丢包的视频数据包了。下面将介绍两种确定填充数据包的方式。
第一种方式,可选地,如图3所示,在当前视频帧和上一视频帧对应的已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件,且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包的步骤可以包括:
(1.1)确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包。
(1.2)如果在当前视频帧对应的已发送的视频数据包中,存在已发送次数小于第一预设次数阈值的视频数据包,则选取已发送次数小于第一预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于第一预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包。
(1.3)确定选取的视频数据包的总数据量是否满足预设的期望数据量条件。
(1.4)如果已选取的所有视频数据包的总数据量满足预设的期望数据量条件,则根据已选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足预设的期望数据量条件,则转至执行(1.1),从(1.1)开始再次执行(1.1)-(1.4)。
其中,第二预设次数阈值小于第一预设次数阈值。例如,如果在当前视频帧对应的已发送的视频数据包中,存在已发送次数小于6次的视频数据包,则在已发送次数小于6次的视频数据包中,选取一个视频数据包。如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于6次的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于3次的一个视频数据包。
在每次选取完一个视频数据包之后,可以判断已选取的所有视频数据包的总数据量是否满足预设的期望数据量条件。如果已选取的所有视频数据包的总数据量满足预设的期望数据量条件,则根据已选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足预设的期望数据量条件,则再次根据(1.2)所示的方式,选取一个视频数据包,直到已选取的所有视频数据包的总数据量是否满足预设的期望数据量条件为止。
第二种方式,可选地,如图4所示,在当前视频帧和上一视频帧对应的已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件,且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包的步骤可以包括:
(2.1)确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包。
(2.2)如果在当前视频帧对应的已发送的视频数据包中,存在已发送次数小于第一预设次数阈值的视频数据包,则选取已发送次数小于第一预设次数阈值的一个视频数据包。
(2.3)如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于第一预设次数阈值的视频数据包,且在上一视频帧对应的已发送的视频数据包中,存在已发送次数小于第二预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包。
(2.4)如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于第一预设次数阈值的视频数据包,且在上一视频帧对应的已发送的视频数据包中,不存在已发送次数小于第二预设次数阈值的视频数据包,则将第一预设次数阈值增加第一预设增加值,将第二预设次数阈值增加第二预设增加值,重新从(2.1)开始执行。
(2.5)确定选取的视频数据包的总数据量是否满足预设的期望数据量条件。
(2.6)如果已选取的所有视频数据包的总数据量满足预设的期望数据量条件,则根据已选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足预设的期望数据量条件,则重新从(2.1)开始执行。
其中,第二预设次数阈值小于第一预设次数阈值。
例如,如果在当前视频帧对应的已发送的视频数据包中,存在已发送次数小于6次的视频数据包,则在已发送次数小于6次的视频数据包中,选取一个视频数据包。
如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于6次的视频数据包,且在上一视频帧对应的已发送的视频数据包中,存在已发送次数小于3次的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于3次的一个视频数据包。
如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于6次的视频数据包,且在上一视频帧对应的已发送的视频数据包中,不存在已发送次数小于3次的视频数据包,则将第一预设次数阈值增加3次,将第二预设次数阈值增加3次,转至执行(2.1)。此时,第一预设次数阈值变为9次,第二预设次数阈值变为6次,即每次没有视频数据包可以进行填充时,可以将预设次数阈值步进3次,重新根据新的条件再次选取一个视频数据包。
在每次选取完一个视频数据包之后,可以判断已选取的所有视频数据包的总数据量是否满足预设的期望数据量条件。如果已选取的所有视频数据包的总数据量满足预设的期望数据量条件,则根据已选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足预设的期望数据量条件,则再次根据(2.1)所示的方式,选取一个视频数据包,直到选取的视频数据包的总数据量是否满足预设的期望数据量条件为止。
可选地,选取已发送次数小于第一预设次数阈值的一个视频数据包的步骤可以包括:选取已发送次数小于第一预设次数阈值的,且已发送次数最小的一个视频数据包;在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包的步骤可以包括:在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的,且已发送次数最小的一个视频数据包。
当存在两个视频数据包的已发送次数都为最小时,可以根据期望数据量,选取其中一个数据量最为和期望数据量接近的视频数据包。
可选地,上述步骤(1.4)或者步骤(2.6)可以包括:确定已选取的所有视频数据包的总数据量,以及除当前选取的视频数据包之外的已选取的视频数据包的数据量的和值;如果总数据量大于预设的期望数据量,则确定总数据量与期望数据量的差值的绝对值,确定和值与期望数据量的差值的绝对值,将最小绝对值对应的视频数据包确定为填充数据包;如果总数据量等于期望数据量,则将已选取的视频数据包确定为填充数据包;如果总数据量小于期望数据量,则转至执行(1.1)或者(2.1)。
可以选取总数据量与期望数据量最为接近的视频数据包作为填充数据包。例如,期望数据量为2M,每个视频数据包的数据量为200KB,则在选到第10个视频数据包时,总数据量为2000KB,比期望数据量少了48KB。如果选第11个视频数据包,总数据量变为2200KB,比期望数据量多了152KB。进而,可以不要第11个视频数据包,将10个视频数据包作为填充数据包,在一个数据发送周期,向接收端发送。
当然,除了上述方式,还可以在确定已选取的视频数据包的总数据量大于或者等于预设的期望数据量时,将已选取的视频数据包确定为填充数据包。这样,可能每次选取的填充数据包都会比期望数据量多一点。
通过本公开实施例提供的方法,在不存在待发送的视频数据包时,可以将已发送的视频数据包作为填充数据包,向接收端发送。这样,可以保证发送端在每个数据发送周期能向接收端发送数据,并且发送的数据的数据量和期望数据量接近,进而可以保证发送端的实际发送码率和期望发送码率近似相等,进而使得发送端在下一码率计算周期到达时,可以确定出准确的期望发送码率,有利于让发送端根据准确的期望发送码率来发送数据,提高网络传输效率。此外,通过本公开实施例提供的方法,还可以根据已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件的已发送的视频数据包作为填充数据包,向接收端发送。这样,即使之前发送的视频数据包发生丢包,还可以使用填充数据包代替发生丢包的视频数据包,进而可以有效地利用填充数据包提高数据传输的质量。
本公开又一示例性实施例提供了一种数据传输装置,如图5所示,该装置包括:
确定模块510,用于每当达到预设的数据发送周期时,确定是否存在待发送的视频数据包;
填充模块520,用于当不存在待发送的视频数据包时,在已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件,且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包;
发送模块530,用于向接收端发送所述填充数据包。
可选地,所述填充模块520,用于:
在当前视频帧和上一视频帧对应的已发送的视频数据包中,基于每个已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件的至少一个视频数据包,根据选取的视频数据包确定填充数据包。
可选地,所述填充模块520,用于:
确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包;
如果在所述当前视频帧对应的已发送的视频数据包中,存在已发送次数小于所述第一预设次数阈值的视频数据包,则选取已发送次数小于所述第一预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包;
确定选取的视频数据包的总数据量是否满足预设的期望数据量条件;
如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据已选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
可选地,所述填充模块520,用于:
确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包
如果在所述当前视频帧对应的已发送的视频数据包中,存在已发送次数小于所述第一预设次数阈值的视频数据包,则选取已发送次数小于所述第一预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,且在上一视频帧对应的已发送的视频数据包中,存在已发送次数小于第二预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于所述第二预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,且在上一视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第二预设次数阈值的视频数据包,则将所述第一预设次数阈值增加第一预设增加值,将所述第二预设次数阈值增加第二预设增加值,转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包;
确定选取的视频数据包的总数据量是否满足预设的期望数据量条件;
如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据已选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
可选地,所述填充模块520,用于:
确定已选取的所有视频数据包的总数据量,以及除当前选取的视频数据包之外的已选取的视频数据包的数据量的和值;
如果所述总数据量大于预设的期望数据量,则确定所述总数据量与所述期望数据量的差值的绝对值,确定所述和值与所述期望数据量的差值的绝对值,将最小绝对值对应的视频数据包确定为填充数据包;
如果所述总数据量等于所述期望数据量,则将已选取的视频数据包确定为填充数据包;
如果所述总数据量小于所述期望数据量,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
可选地,所述填充模块520,用于:
选取已发送次数小于第一预设次数阈值的且已发送次数最小的一个视频数据包;
在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的且已发送次数最小的一个视频数据包。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
通过本公开实施例提供的装置,在不存在待发送的视频数据包时,可以将已发送的视频数据包作为填充数据包,向接收端发送。这样,可以保证发送端在每个数据发送周期能向接收端发送数据,并且发送的数据的数据量和期望数据量接近,进而可以保证发送端的实际发送码率和期望发送码率近似相等,进而使得发送端在下一码率计算周期到达时,可以确定出准确的期望发送码率,有利于让发送端根据准确的期望发送码率来发送数据,提高网络传输效率。此外,通过本公开实施例提供的方法,还可以根据已发送的视频数据包的已发送次数,选取已发送次数满足预设的发送次数条件、且总数据量满足预设的期望数据量条件的已发送的视频数据包作为填充数据包,向接收端发送。这样,即使之前发送的视频数据包发生丢包,还可以使用填充数据包代替发生丢包的视频数据包,进而可以有效地利用填充数据包提高数据传输的质量。
需要说明的是:上述实施例提供的数据传输装置在传输数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据传输装置与数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6示出了本公开一个示例性实施例提供的计算机设备1900的结构示意图。该计算机设备1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)1910和一个或一个以上的存储器1920。其中,所述存储器1920中存储有至少一条指令,所述至少一条指令由所述处理器1910加载并执行以实现上述实施例所述的数据传输方法。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (6)

1.一种数据传输方法,其特征在于,所述方法包括:
每当达到预设的数据发送周期时,确定是否存在待发送的视频数据包;
如果不存在待发送的视频数据包,则确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包;
如果在当前视频帧对应的已发送的视频数据包中,存在已发送次数小于第一预设次数阈值的视频数据包,则选取已发送次数小于所述第一预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包;
确定选取的视频数据包的总数据量是否满足预设的期望数据量条件;
如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据已选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包;
向接收端发送所述填充数据包。
2.根据权利要求1所述的方法,其特征在于,所述如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据已选取的视频数据包确定填充数据包,包括:
确定已选取的所有视频数据包的总数据量,以及除当前选取的视频数据包之外的已选取的视频数据包的数据量的和值;
如果所述总数据量大于预设的期望数据量,则确定所述总数据量与所述期望数据量的差值的绝对值,确定所述和值与所述期望数据量的差值的绝对值,将最小绝对值对应的视频数据包确定为填充数据包;
如果所述总数据量等于所述期望数据量,则将已选取的视频数据包确定为填充数据包;
所述如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包,包括:
如果所述总数据量小于所述期望数据量,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
3.根据权利要求1所述的方法,其特征在于,所述选取已发送次数小于所述第一预设次数阈值的一个视频数据包,包括:
选取已发送次数小于第一预设次数阈值的且已发送次数最小的一个视频数据包;
所述在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包,包括:
在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的且已发送次数最小的一个视频数据包。
4.一种数据传输装置,其特征在于,所述装置包括:
确定模块,用于每当达到预设的数据发送周期时,确定是否存在待发送的视频数据包;
填充模块,用于当不存在待发送的视频数据包时,确定在当前视频帧对应的已发送的视频数据包中,是否存在已发送次数小于第一预设次数阈值的视频数据包;如果在当前视频帧对应的已发送的视频数据包中,存在已发送次数小于第一预设次数阈值的视频数据包,则选取已发送次数小于所述第一预设次数阈值的一个视频数据包;如果在当前视频帧对应的已发送的视频数据包中,不存在已发送次数小于所述第一预设次数阈值的视频数据包,则在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的一个视频数据包;确定选取的视频数据包的总数据量是否满足预设的期望数据量条件;如果已选取的所有视频数据包的总数据量满足所述预设的期望数据量条件,则根据已选取的视频数据包确定填充数据包;如果已选取的所有视频数据包的总数据量不满足所述预设的期望数据量条件,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包;
发送模块,用于向接收端发送所述填充数据包。
5.根据权利要求4所述的装置,其特征在于,所述填充模块,用于:
确定已选取的所有视频数据包的总数据量,以及除当前选取的视频数据包之外的已选取的视频数据包的数据量的和值;
如果所述总数据量大于预设的期望数据量,则确定所述总数据量与所述期望数据量的差值的绝对值,确定所述和值与所述期望数据量的差值的绝对值,将最小绝对值对应的视频数据包确定为填充数据包;
如果所述总数据量等于所述期望数据量,则将已选取的视频数据包确定为填充数据包;
如果所述总数据量小于所述期望数据量,则转至执行确定在当前视频帧对应的已发送的视频数据包中是否存在已发送次数小于第一预设次数阈值的视频数据包。
6.根据权利要求4所述的装置,其特征在于,所述填充模块,用于:
选取已发送次数小于第一预设次数阈值的且已发送次数最小的一个视频数据包;
在上一视频帧对应的已发送的视频数据包中,选取已发送次数小于第二预设次数阈值的且已发送次数最小的一个视频数据包。
CN201811142210.9A 2018-09-28 2018-09-28 数据传输方法和装置 Active CN110971942B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811142210.9A CN110971942B (zh) 2018-09-28 2018-09-28 数据传输方法和装置
EP19865006.1A EP3860131A4 (en) 2018-09-28 2019-09-25 DATA TRANSFER METHOD AND DEVICE
US17/281,222 US11589101B2 (en) 2018-09-28 2019-09-25 Data transmission method and apparatus
PCT/CN2019/107731 WO2020063635A1 (zh) 2018-09-28 2019-09-25 数据传输方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811142210.9A CN110971942B (zh) 2018-09-28 2018-09-28 数据传输方法和装置

Publications (2)

Publication Number Publication Date
CN110971942A CN110971942A (zh) 2020-04-07
CN110971942B true CN110971942B (zh) 2021-08-17

Family

ID=69952434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811142210.9A Active CN110971942B (zh) 2018-09-28 2018-09-28 数据传输方法和装置

Country Status (4)

Country Link
US (1) US11589101B2 (zh)
EP (1) EP3860131A4 (zh)
CN (1) CN110971942B (zh)
WO (1) WO2020063635A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113194292A (zh) * 2021-04-30 2021-07-30 招商局金融科技有限公司 智能设备的协调管理方法、装置、设备及存储介质
CN113592216A (zh) * 2021-06-09 2021-11-02 瑞祥集团(河北)科技材料有限公司 一种应用于智能工厂的生产管理方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1901504A (zh) * 2006-06-30 2007-01-24 华中科技大学 一种流媒体点播系统的数据调度方法
CN101707697A (zh) * 2009-12-09 2010-05-12 深圳市同洲电子股份有限公司 一种推送视频及数据内容的方法、系统及设备
CN102316315A (zh) * 2010-06-29 2012-01-11 中国科学院软件研究所 一种实时视频传输方法
CN104410587A (zh) * 2014-11-13 2015-03-11 京信通信系统(中国)有限公司 一种接收缓冲区容量控制方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0218961D0 (en) * 2002-08-15 2002-09-25 Koninkl Philips Electronics Nv Transmission method and system
US8737219B2 (en) 2004-01-30 2014-05-27 Hewlett-Packard Development Company, L.P. Methods and systems that use information about data packets to determine an order for sending the data packets
US9544602B2 (en) * 2005-12-30 2017-01-10 Sharp Laboratories Of America, Inc. Wireless video transmission system
US20080273600A1 (en) * 2007-05-01 2008-11-06 Samsung Electronics Co., Ltd. Method and apparatus of wireless communication of uncompressed video having channel time blocks
US8059622B2 (en) * 2008-09-04 2011-11-15 Intel Corporation Multi-radio platform and method for coordinating activities between a broadband wireless access network transceiver and co-located transceiver
CN101729373B (zh) 2008-10-29 2012-10-17 阿尔卡特朗讯 对多优先级业务进行调度的方法及装置
CN102045552B (zh) 2009-10-14 2012-12-19 中兴通讯股份有限公司 一种多媒体码流发送的方法和系统
WO2013025556A1 (en) * 2011-08-12 2013-02-21 Splunk Inc. Elastic scaling of data volume
US8964553B2 (en) * 2011-12-13 2015-02-24 Ixia Network impairment unit with bandwidth-constrained packet duplication
KR20140050454A (ko) * 2012-10-19 2014-04-29 삼성전자주식회사 서버, 클라이언트 디바이스 및 그 제어 방법
CN105103500A (zh) * 2013-03-20 2015-11-25 富士通株式会社 通信方法、通信装置以及通信程序
CN104320416B (zh) 2014-11-13 2018-03-20 杭州海康威视数字技术股份有限公司 对实时传输协议数据进行打包的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1901504A (zh) * 2006-06-30 2007-01-24 华中科技大学 一种流媒体点播系统的数据调度方法
CN101707697A (zh) * 2009-12-09 2010-05-12 深圳市同洲电子股份有限公司 一种推送视频及数据内容的方法、系统及设备
CN102316315A (zh) * 2010-06-29 2012-01-11 中国科学院软件研究所 一种实时视频传输方法
CN104410587A (zh) * 2014-11-13 2015-03-11 京信通信系统(中国)有限公司 一种接收缓冲区容量控制方法及装置

Also Published As

Publication number Publication date
EP3860131A4 (en) 2021-11-24
WO2020063635A1 (zh) 2020-04-02
EP3860131A1 (en) 2021-08-04
US20210392391A1 (en) 2021-12-16
US11589101B2 (en) 2023-02-21
CN110971942A (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
CN102325274B (zh) 一种自适应网络带宽的视频流传输控制方法
CN110049357B (zh) 一种带宽预估方法、装置、设备及存储介质
CN109660879B (zh) 直播丢帧方法、系统、计算机设备和存储介质
KR101005138B1 (ko) 셀들의 캡슐화를 위한 방법 및 시스템
CN110971942B (zh) 数据传输方法和装置
US8010863B2 (en) Method and apparatus for synchronizing multiple multimedia streams
CN110381316A (zh) 一种视频传输控制方法、装置、设备及存储介质
CN104967502A (zh) 数据发送方法和装置、数据接收方法和装置
US8812724B2 (en) Method and device for transmitting variable rate video data
CN109600610A (zh) 一种数据编码方法及终端
CN106921860B (zh) 一种端到端的视频发送方法及装置
CN111211988B (zh) 面向分布式机器学习的数据传输方法及系统
CN110087140A (zh) 一种传输流媒体数据的方法、装置、介质及设备
KR20230012483A (ko) 5g 네트워크들 상으로의 분할 렌더링의 수행 및 평가
CN105393481A (zh) 信息处理装置、信息处理方法和程序
CN106911740A (zh) 一种缓存管理的方法和装置
CN113612580B (zh) 基于喷泉码编码策略和冗余自适应的屏幕更新传输方法
CN111385055B (zh) 一种数据传输方法和装置
JPH11215480A (ja) 映像通信システム及び映像送信装置及び映像受信装置及びそれらの制御方法及び記憶媒体
CN107979542A (zh) 网络拥塞确定方法及本端网元
CN114142968A (zh) 一种数据包传输方法、装置、终端设备和存储介质
CN107302504B (zh) 一种基于虚拟发送队列的多路传输调度方法及系统
WO2023029994A1 (zh) 视频通话处理方法、装置、设备及存储介质
CN115037701B (zh) 视频处理方法、装置、服务器及介质
CN113207045B (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