一种数据流延迟的控制方法、装置及接收设备与流程

文档序号:13739603阅读:152来源:国知局
一种数据流延迟的控制方法、装置及接收设备与流程

本发明涉及直播领域,更具体的说,涉及一种数据流延迟的控制方法、装置及接收设备。



背景技术:

现今移动互联网在社交场景的使用越来越广泛,随着大众的需求,直播逐渐走进大众的视野中。

在直播的过程中,采集端采集端将采集的音视频数据经过网络分段发送,接收端接收到音视频数据后,就可以进行播放。当采集端或者接收端的网速不稳定时,就会导致部分数据包需要重复发送多次才能成功,进而导致延迟,随着直播时间的增加,这个延迟会积累起来,称为积累延迟。

现有技术中,当出现积累延迟时,采用断开当前的直播流,然后重新连接直播流的方法来消除积累延迟。但是当采集端或接收端的网速不稳定时,就会造成直播连接失败,进而影响用户体验。



技术实现要素:

有鉴于此,本发明提供一种数据流延迟的控制方法、装置及接收设备,以解决采用断开当前的直播流,然后重新连接直播流的方法来消除积累延迟时,当采集端或接收端的网速不稳定时,就会造成直播连接失败,进而影响用户体验的问题。

为解决上述技术问题,本发明采用了如下技术方案:

一种数据流延迟的控制方法,应用于接收设备,包括:

接收发送设备发送的最新的数据包;

将所述最新的数据包保存到数据包队列中的末端;其中,所述数据包队列中的每个数据包包括一个所述发送设备开始采集所述数据包时的时间值,且所述数据包队列中的数据包按照时间值的先后顺序进行排序;

根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,判断直播是否存在积累延迟;

当判断出直播存在积累延迟,丢弃所述数据包队列中除所述最新的数据包之外的部分数据包,以消除所述积累延迟。

优选地,根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,判断直播是否存在积累延迟,包括:

根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,计算所述第一个数据包的时间值和所述最新的数据包的时间值的时间差;

判断所述时间差是否大于预设数值;

其中,当所述时间差不大于预设数值时,所述直播不存在积累延迟;

当所述时间差大于预设数值时,所述直播存在积累延迟。

优选地,丢弃所述数据包队列中除所述最新的数据包之外的部分数据包,以消除所述积累延迟,包括:

丢弃所述数据包队列中的第一个数据包;

计算所述数据包队列中的新的第一个数据包的时间值和所述最新的数据包的时间值的数据包时间差;

判断所述数据包时间差是否大于所述预设数值;

当判断出所述数据包时间差大于所述预设数值,返回所述丢弃所述数据包队列中的第一个数据包步骤。

优选地,所述数据包包括音频数据包或视频数据包。

一种数据流延迟的控制装置,应用于接收设备,包括:

接收模块,用于接收发送设备发送的最新的数据包;

保存模块,用于将所述最新的数据包保存到数据包队列中的末端;其中,所述数据包队列中的每个数据包包括一个所述发送设备开始采集所述数据包时的时间值,且所述数据包队列中的数据包按照时间值的先后顺序进行排序;

判断模块,用于根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,判断直播是否存在积累延迟;

处理模块,用于当所述判断模块判断出直播存在积累延迟,丢弃所述数据包队列中除所述最新的数据包之外的部分数据包,以消除所述积累延迟。

优选地,所述判断模块包括:

第一计算子模块,用于根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,计算所述第一个数据包的时间值和所述最新的数据包的时间值的时间差;

第一判断子模块,用于判断所述时间差是否大于预设数值;

其中,当所述时间差不大于预设数值时,所述直播不存在积累延迟;

当所述时间差大于预设数值时,所述直播存在积累延迟。

优选地,所述处理模块包括:

丢弃子模块,用于丢弃所述数据包队列中的第一个数据包;

第二计算子模块,用于计算所述数据包队列中的新的第一个数据包的时间值和所述最新的数据包的时间值的数据包时间差;

第二判断子模块,用于判断所述数据包时间差是否大于所述预设数值;

所述丢弃子模块,还用于当所述第二判断子模块判断出所述数据包时间差大于所述预设数值,丢弃所述数据包队列中的第一个数据包。

优选地,所述数据包包括音频数据包或视频数据包。

一种接收设备,包括接收端口和处理器;

所述接收端口,用于接收发送设备发送的最新的数据包;

所述处理器,用于将所述最新的数据包保存到数据包队列中的末端,根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,判断直播是否存在积累延迟,当判断出直播存在积累延迟,丢弃所述数据包队列中除所述最新的数据包之外的部分数据包,以消除所述积累延迟;

其中,所述数据包队列中的每个数据包包括一个所述发送设备开始采集所述数据包时的时间值,且所述数据包队列中的数据包按照时间值的先后顺序进行排序。

相较于现有技术,本发明具有以下有益效果:

本发明提供了一种数据流延迟的控制方法、装置及接收设备,本发明中当存在积累延迟时,丢弃数据包队列中除所述最新的数据包之外的部分数据包,进而接收的最新的数据包就能够尽早播放,进而消除积累延迟,本方案中不需要断开直播流和重新连接直播流,进而不会存在当采集端或接收端的网速不稳定时,就会造成直播连接失败,进而影响用户体验的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明提供的一种数据流延迟的控制方法的方法流程图;

图2为本发明提供的另一种数据流延迟的控制方法的方法流程图;

图3为本发明提供的一种数据流延迟的控制装置的结构示意图;

图4为本发明提供的另一种数据流延迟的控制装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种数据流延迟的控制方法,可以应用于直播领域的接收设备,其中,接收设备可以是手机、平板、笔记本等设备上的处理模块或者是播放器。

参照图1,数据流延迟的控制方法可以包括:

s11、接收发送设备发送的最新的数据包;

其中,发送设备为采集端的设备,数据包包括音频数据包或视频数据包。发送设备将采集的连续的数据包经过压缩后,经过网络分段发送至接收设备,使用接收设备的用户就能够实时观看到直播。

由于采集端是不间断的发送数据包的,所述接收设备也会不间断的接收到数据包。

s12、将所述最新的数据包保存到数据包队列中的末端;

其中,所述数据包队列中的每个数据包包括一个所述发送设备开始采集所述数据包时的时间值,且所述数据包队列中的数据包按照时间值的先后顺序进行排序。

具体的,接收设备接收到数据包后,会先解析是音频数据包还是视频数据包,若是音频数据包,则将该音频数据包保存到音频数据包队列的末端,若是视频数据包,则将该视频数据包保存到视频数据包队列的末端。

需要说明的是,发送设备在采集数据包时,会将开始采集数据包的时间值保存到相应的数据包中。

接收设备接收到数据包后,会将数据包保存到数据包队列中,由于发送端或接收端网速不好或者是数据包传输失败时,会造成接收设备的数据包队列中会保存有若干个数据包。数据包队列中的数据包是按照数据包中的时间值的先后顺序进行排列的,时间值较早的数据包在数据包队列中序号较小,时间值较晚的数据包在数据包队列中序号较大。如有a、b和c三个数据包,时间值分别是1.03、1.01、1.02,则在数据包队列中的排列顺序为b、c、a。

s13、判断直播是否存在积累延迟;当判断出直播存在积累延迟,执行步骤s14;当判断出直播不存在积累延迟,执行步骤s15。

具体的,根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,判断直播是否存在积累延迟。

可选的,在本实施例的基础上,步骤s13可以包括:

1)根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,计算所述第一个数据包的时间值和所述最新的数据包的时间值的时间差;

如,第一个数据包的时间值为1.00,最新的数据包的时间值为1.05,则时间差为1.05-1.00=0.05。

2)判断所述时间差是否大于预设数值;

其中,当所述时间差不大于预设数值时,所述直播不存在积累延迟;

当所述时间差大于预设数值时,所述直播存在积累延迟。预设数据为技术人员根据具体直播应用场景进行设定的。

具体的,采用第一个数据包的时间值和所述最新的数据包的时间值的时间差与预设数值的比较结果来判断是否存在积累延迟,是由于第一个数据包的时间值和所述最新的数据包的时间值的时间差,能够说明数据包队列中的数据包需要播放该时间差的时间才能够播放完成,当时间差较长时,说明最新的数据包需要经过时间差的时间才能够播放,但是最新的数据包是发送设备最新发送的数据包,说明需要接收设备开始播放最新的数据包了,而接收设备这端还有时间差的时间才能够播放到该最新的数据包,进而能够推测出接收设备端存在积累延迟。

s14、丢弃所述数据包队列中除所述最新的数据包之外的部分数据包,以消除所述积累延迟。

具体的,当存在积累延迟时,可以丢弃所述数据包队列中除所述最新的数据包之外的部分数据包,进而该最新的数据包就能够尽早的播放,以此来消除积累延迟。

s15、按照数据包的排列顺序依次播放数据包队列中的数据包,或将数据包队列中的数据包发送到播放设备,以使播放设备按照数据包的排列顺序依次播放数据包队列中的数据包。

具体的,当判断出直播不存在积累延迟时。当接收设备为播放器时,可以按照数据包的排列顺序依次播放数据包队列中的数据包;当接收设备为处理模块时,可以将数据包队列中的数据包发送到播放设备,以使播放设备按照数据包的排列顺序依次播放数据包队列中的数据包。其中,播放设备可以是播放器。

其中,在播放数据包时,首先将数据包从数据包队列中取出,然后解析成相应的音频或视频进行播放。其中,当数据包为音频数据包时,应该将数据包解析成音频,当数据包为视频数据包时,应该将视频数据包解析成视频。

本实施例中,当存在积累延迟时,丢弃数据包队列中除所述最新的数据包之外的部分数据包,进而接收的最新的数据包就能够尽早播放,进而消除积累延迟,本方案中不需要断开直播流和重新连接直播流,进而不会存在当采集端或接收端的网速不稳定时,就会造成直播连接失败,进而影响用户体验的问题。

可选的,在上述任一数据流延迟的控制方法的实施例的基础上,参照图2,步骤s14可以包括:

s21、丢弃所述数据包队列中的第一个数据包;

具体的,本步骤可以直接删除数据包队列中的第一个数据包。第一个数据包是数据包中列中序号最小的数据包。

s22、计算所述数据包队列中的新的第一个数据包的时间值和所述最新的数据包的时间值的数据包时间差;

其中,计算得到数据包时间差和计算得到时间差的过程类似,请参照计算得到时间差的计算过程。

s23、判断所述数据包时间差是否大于所述预设数值;当判断出所述数据包时间差大于所述预设数值,执行步骤s21;当判断出所述数据包时间差不大于所述预设数值,执行步骤s24。

具体的,当数据包时间差仍大于预设数值时,说明直播仍存在积累延迟,此时按照数据包队列中的数据包的先后顺序,再次丢弃一个数据包,然后判断是否存在延迟。

s24、按照数据包的排列顺序依次播放所述数据包队列中的数据包,或将所述数据包队列中的数据包发送到播放设备,以使所述播放设备按照数据包的排列顺序依次播放所述数据包队列中的数据包;

具体的,当判断出所述数据包时间差不大于所述预设数值,说明不存在积累延迟,此时可以正常播放数据包队列中的数据包。具体播放过程请参照上述实施例中的相应说明,在此不再赘述。

本实施例中,按照数据包中的数据包的先后顺序,依次丢弃数据包来达到缩短积累延迟的目的,进而能够使得用户能够正常的观看直播,提升用户体验。

可选的,在上述数据流延迟的控制方法的实施例的基础上,本发明的另一实施例提供了一种数据流延迟的控制装置,应用于接收设备,参照图3,数据流延迟的控制装置可以包括:

接收模块101,用于接收发送设备发送的最新的数据包;

保存模块102,用于将所述最新的数据包保存到数据包队列中的末端;其中,所述数据包队列中的每个数据包包括一个所述发送设备开始采集所述数据包时的时间值,且所述数据包队列中的数据包按照时间值的先后顺序进行排序;

判断模块103,用于根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,判断直播是否存在积累延迟;

处理模块104,用于当所述判断模块判断出直播存在积累延迟,丢弃所述数据包队列中除所述最新的数据包之外的部分数据包,以消除所述积累延迟。

进一步,所述判断模块103包括:

第一计算子模块,用于根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,计算所述第一个数据包的时间值和所述最新的数据包的时间值的时间差;

第一判断子模块,用于判断所述时间差是否大于预设数值;

其中,当所述时间差不大于预设数值时,所述直播不存在积累延迟;

当所述时间差大于预设数值时,所述直播存在积累延迟。

进一步,所述数据包包括音频数据包或视频数据包。

本实施例中,当存在积累延迟时,丢弃数据包队列中除所述最新的数据包之外的部分数据包,进而接收的最新的数据包就能够尽早播放,进而消除积累延迟,本方案中不需要断开直播流和重新连接直播流,进而不会存在当采集端或接收端的网速不稳定时,就会造成直播连接失败,进而影响用户体验的问题。

需要说明的是,本实施例中的各个模块和子模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。

在上述任一数据流延迟的控制装置的实施例的基础上,参照图4,所述处理模,104可以包括:

丢弃子模块1041,用于丢弃所述数据包队列中的第一个数据包;

第二计算子模块1042,用于计算所述数据包队列中的新的第一个数据包的时间值和所述最新的数据包的时间值的数据包时间差;

第二判断子模块1043,用于判断所述数据包时间差是否大于所述预设数值;

所述丢弃子模块1041,还用于当所述第二判断子模块1043判断出所述数据包时间差大于所述预设数值,丢弃所述数据包队列中的第一个数据包。

本实施例中,按照数据包中的数据包的先后顺序,依次丢弃数据包来达到缩短积累延迟的目的,进而能够使得用户能够正常的观看直播,提升用户体验。

需要说明的是,本实施例中的各个模块和子模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。

可选的,在上述数据流延迟的控制方法和装置的实施例的基础上,本发明的另一实施例中提供了一种接收设备,可以包括接收端口和处理器;

所述接收端口,用于接收发送设备发送的最新的数据包;

所述处理器,用于将所述最新的数据包保存到数据包队列中的末端,根据所述数据包队列中的第一个数据包的时间值和所述最新的数据包的时间值,判断直播是否存在积累延迟,当判断出直播存在积累延迟,丢弃所述数据包队列中除所述最新的数据包之外的部分数据包,以消除所述积累延迟;

其中,所述数据包队列中的每个数据包包括一个所述发送设备开始采集所述数据包时的时间值,且所述数据包队列中的数据包按照时间值的先后顺序进行排序。

本实施例中,当存在积累延迟时,丢弃数据包队列中除所述最新的数据包之外的部分数据包,进而接收的最新的数据包就能够尽早播放,进而消除积累延迟,本方案中不需要断开直播流和重新连接直播流,进而不会存在当采集端或接收端的网速不稳定时,就会造成直播连接失败,进而影响用户体验的问题。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1