视频数据的发送方法及装置的制造方法

文档序号:8441794阅读:271来源:国知局
视频数据的发送方法及装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,特别涉及一种视频数据的发送方法及装置。
【背景技术】
[0002]随着互联网技术的发展,互联网上的直播视频以其新颖的形式、丰富的内容,吸引了越来越多的用户使用。例如,主播可在直播间内录制视频,并通过互联网实时地将录制的视频发送至直播间的其他用户,以进行交流互动。
[0003]相关技术在发送视频数据时,客户端首先会对待发送的视频进行编码,得到多个数据包,然后基于TCP (Transmiss1n Control Protocol,传输控制协议),通过互联网将各个数据包发送至服务器,在发送过程中,在前一个数据包发送成功之后,才会发送后一个数据包,若网络状态不佳时,某一数据包多次未发送成功,客户端会一直发送该数据包,直至该数据包发送成功。
[0004]相关技术在发送视频数据时,若网络状况不佳,某一数据包发送多次未发送成功,而客户端会一直发送该数据包,导致在相同的时间内,视频数据发送效率较低,且发送的视频数据滞后,时延较大。

【发明内容】

[0005]为了解决相关技术的问题,本发明实施例提供了一种视频数据的发送方法及装置。所述技术方案如下:
[0006]一方面,提供了一种视频数据的发送方法,所述方法包括:
[0007]当达到视频数据的发送时间时,获取发送队列缓存的数据包,所述发送队列用于缓存未被视频服务器确认的数据包;
[0008]根据所述发送队列缓存的数据包、视频数据包的发送间隔及数据包的缓存时限,确定本次发送数据包的目标发送量;
[0009]根据所述发送队列缓存的数据包的历史发送时间以及所述目标发送量,从发送队列缓存的数据包中,选取待发送的数据包;
[0010]向所述视频服务器发送所述待发送的数据包。
[0011]另一方面,提供了一种视频数据的发送装置,所述装置包括:
[0012]获取模块,用于当达到视频数据的发送时间时,获取发送队列缓存的数据包,所述发送队列用于缓存未被视频服务器确认的数据包;
[0013]确定模块,用于根据所述发送队列缓存的数据包、视频数据包的发送间隔及数据包的缓存时限,确定本次发送数据包的目标发送量;
[0014]选取模块,用于根据所述发送队列缓存的数据包的历史发送时间以及所述目标发送量,从发送队列缓存的数据包中,选取待发送的数据包;
[0015]发送模块,用于向所述视频服务器发送所述待发送的数据包。
[0016]本发明实施例提供的技术方案带来的有益效果是:
[0017]当达到视频数据的发送时间时,客户端获取发送队列缓存的数据包,并根据发送队列缓存的数据包、视频数据包的发送间隔及数据包的缓存时限,确定本次发送数据包的目标发送量,然后根据发送队列缓存的数据包的历史发送时间以及目标发送量,从发送队列缓存的数据包中,选取待发送的数据包,进而向视频服务器发送待发送的数据包。由于本次发送数据包的发送量是根据发送队列缓存的数据包量确定的,且每当达到视频数据的发送时间,客户端都会向服务器发送数据包,从而使得视频数据的发送速度稳定、平滑,提高了相同时间内视频数据的发送效率。另外,当发送队列中的任一数据包发送多次均未成功发送后,客户端会将该数据包到下一个指定数据包之间的数据包丢弃,从而避免了因发送队列中缓存的数据包量过大产生的时延,使得服务器接收到的视频数据具有时效性,提高了用户的观看体验效果。
【附图说明】
[0018]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1是本发明一个实施例提供的一种视频数据的发送方法流程图;
[0020]图2是本发明另一个实施例提供的一种视频数据的发送方法流程图;
[0021]图3是本发明另一个实施例提供的一种视频数据的发送装置结构示意图;
[0022]图4是本发明另一个实施例提供的一种终端的结构示意图。
【具体实施方式】
[0023]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0024]随着互联网技术的发展,观看直播视频的用户越来越多。为了满足用户的观看需求,如何发送视频数据成为了关键。目前,在发送视频数据时,主要基于TCP协议,通过互联网进行发送。由于TCP协议主要作用在协议层,当视频数据在应用层发送时,客户端只能按照视频编码顺序进行发送,且根据协议层的规定不能丢弃任一个数据包。当网络状态不佳时,虽然某一数据包在发送多次后都未能成功发送,然而客户端依然会继续发送该数据包,直至该数据包发送成功,这使得发送的视频数据时延较大。由于直播视频对时效性要求较高,因此,为了提高直播视频的时效性,本发明实施例提供了一种视频数据的发送方法,参见图1,本实施例提供的方法流程包括:
[0025]101、当达到视频数据的发送时间时,获取发送队列缓存的数据包,发送队列用于缓存未被视频服务器确认的数据包。
[0026]102、根据发送队列缓存的数据包、数据包的发送间隔及数据包的缓存时限,确定本次发送数据包的目标发送量。
[0027]103、根据发送队列缓存的数据包的历史发送时间以及目标发送量,从发送队列缓存的数据包中,选取待发送的数据包。
[0028]104、向视频服务器发送待发送的数据包。
[0029]本发明实施例提供的方法,当达到视频数据的发送时间时,客户端获取发送队列缓存的数据包,并根据发送队列缓存的数据包、视频数据包的发送间隔及数据包的缓存时限,确定本次发送数据包的目标发送量,然后根据发送队列缓存的数据包的历史发送时间以及目标发送量,从发送队列缓存的数据包中,选取待发送的数据包,进而向视频服务器发送待发送的数据包。由于本次发送数据包的发送量是根据发送队列缓存的数据包量确定的,且每当达到视频数据的发送时间,客户端都会向服务器发送数据包,从而使得视频数据的发送速度稳定、平滑,提高了相同时间内视频数据的发送效率。另外,当发送队列中的任一数据包发送多次均未成功发送后,客户端会将该数据包到下一个指定数据包之间的数据包丢弃,从而避免了因发送队列中缓存的数据包量过大产生的时延,使得服务器接收到的视频数据具有时效性,提高了用户的观看体验效果。
[0030]在本发明的一个实施例中,根据发送队列缓存的数据包、数据包的发送间隔及数据包的缓存时限,确定本次发送数据包的目标发送量,包括:
[0031]根据数据包的发送间隔及数据包的缓存时限,确定发送次数;
[0032]根据发送队列缓存的数据包及发送次数,确定本次发送数据包的目标发送量。
[0033]在本发明的一个实施例中,根据发送队列缓存的数据包的历史发送时间以及目标发送量,从发送队列缓存的数据包中,选取待发送的数据包,包括:
[0034]根据目标发送量,从发送队列缓存的数据包中选取目标数据包;
[0035]判断目标数据包是否为第一次发送;
[0036]若目标数据包为第一次发送,且当前已确定的待发送的数据包量不大于目标发送量,则将目标数据包作为待发送的数据包;
[0037]若目标数据包不为第一次发送,将目标数据包的第一时长与第二时长进行比较;
[0038]当目标数据的第一时长大于第二时长,且当前已确定的待发送的数据包量不大于目标发送量,则将目标数据包作为待发送的数据包;
[0039]其中,第一时长为目标数据包前一次的发送时间与当前时间之间的时间间隔,第二时长为视频服务器对数据包进行确认的基准时长。
[0040]在本发明的一个实施例中,该方法,还包括:
[0041]若任一数据包的发送次数达到指定次数且均未发送成功时,则将数据包与指定数据包之间的数据包作丢包处理。
[0042]在本发明的一个实施例中,向视频服务器发送待发送的数据包,包括:
[0043]根据网络带宽,确定数据包的并行发送数量;
[0044]根据并行发送数量、待发送的数据包以及待发送的数据包的发送顺序,对待发送的数据包进行分组,得到与并行发送数量相应的数据包组;
[0045]向视频服务器串行发送数据包组。
[0046]上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再
--赘述。
[0047]结合图1所示的实施例,本发明实施例提供了一种视频数据的发送方法,参见图2,本实施例提供的方法流程包括:
[0048]201、客户端对每帧视频进行编码,得到多个数据包,并将数据包缓存在发送队列。
[0049]在本实施例中,客户端为直播视频的发送方,如直播间内的主播所使用的终端等。客户端在录制视频的过程中,会对录制的视频进行编码,得到多个数据包。通常在编码时,非关键帧以关键帧或其他非关键帧为参考进行编码。例如,第I视频帧为关键帧,第2视频帧和第3视频帧为非关键帧。第I视频帧编码后分成20个数据包,编码为I?20 ;第2视频帧编码以第I视频帧为参考进行编码,编码后分为10个数据包,编码为21?30 ;第3视频帧以第2视频帧为参考进行编码,编码后分为10个数据包,编码为31?40。
[0050]为了尽量保证播放视频的可靠性,避免某一数据包在发送过程中丢失或出现错误,导致视频服务器对该数据包无法解码或解码错误,视频不能正常播放,那么,为了实现该数据包的重传,在本实施例中,客
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1