视频缓冲控制方法及装置与流程

文档序号:12697386阅读:211来源:国知局
视频缓冲控制方法及装置与流程

本发明实施例涉及视频技术领域,尤其涉及一种视频缓冲控制方法及装置。



背景技术:

用户可以通过客户端(电视等设备)观看网络直播、网络点播等视频,为了保证用户能够观看流畅的视频,客户端通常设置视频缓冲区,在视频缓冲区中缓存未播放的视频。

在现有技术中,在客户端向视频服务器发送视频请求之后,视频服务器以系统调度时长(通常大于或等于1秒)为单位向客户端推流,每个系统调度时长向客户端发送固定大小的视频。客户端根据自身内存、及视频服务器发送视频的码率,确定用于缓存视频的视频缓冲区,将视频服务器发送的视频数据缓存在视频缓冲区,并根据视频播放速度在视频缓冲区中获取视频数据进行播放。客户端还实时检测视频缓冲区中缓存的视频数据量,若缓冲区中缓存的视频数据量小于预设最小值时,则客户端请求视频服务器加快向客户端发送视频数据的码率,在缓存区中缓存的视频数量大于预设最大值时,则客户端请求视频服务器降低向客户端发送视频数据的码率。

由上可知,在现有技术中,由客户端对视频缓冲进行控制,这就要求所有进行视频播放的客户端均具备视频缓冲控制的功能,导致对客户端的要求较高;进一步的,由客户端根据视频缓冲区中的视频数据,确定视频服务器发送视频数据的码率,会导致视频服务器发送视频数据的码率波动较大,导致视频推流的稳定性较低。



技术实现要素:

本发明实施例提供一种视频缓冲控制方法及装置,提高了视频推流的稳定性。

第一方面,本发明实施例提供一种视频缓冲控制方法,包括:

获取目标视频的平均推流码率、所述目标视频的加速推流码率、及预设视频缓冲时长,所述加速推流码率大于所述平均推流码率;

根据所述平均推流码率、所述加速推流码率、及所述预设视频缓冲时长,确定所述目标视频的加速推流时长;

根据所述目标视频的起始推流时刻和当前时刻,确定所述目标视频的当前推流时长;

在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之前,根据所述加速推流码率,向客户端推送视频;

在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之后,根据所述平均推流码率,向客户端推送视频。

在一种可能的实施方式中,获取所述目标视频的平均推流码率,包括:

获取所述目标视频的文件大小和所述目标视频的播放时长;

根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。

在另一种可能的实施方式中,获取所述目标视频的加速推流码率,包括:

获取预设加速推流增量;

根据所述平均推流码率和所述加速推流增量,确定所述加速推流码率。

在另一种可能的实施方式中,根据所述平均推流码率、所述加速推流码率、及所述预设视频缓冲时长,确定所述目标视频的加速推流时长,包括:

根据如下公式一,确定所述目标视频的加速推流时长Tfast

其中,所述Tbuff为所述预设视频缓冲时长,所述bavg为所述平均推流码率,所述bfast为所述加速推流码率。

在另一种可能的实施方式中,根据所述加速推流码率,向客户端推送视频,包括:

根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述加速推流码率,确定第一推流滞后时长;

若所述第一推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;

若所述第一推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;

若所述第一推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。

在另一种可能的实施方式中,根据所述平均推流码率,向客户端推送视频,包括:

根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述平均推流码率,确定第二推流滞后时长;

若所述第二推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;

若所述第二推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;

若所述第二推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。

在另一种可能的实施方式中,根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述加速推流码率,确定第一推流滞后时长,包括:

根据如下公式二确定所述第一推流滞后时长Tdelay1

其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bfast为所述加速推流码率。

在另一种可能的实施方式中,根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述平均推流码率,确定推流滞后时长,包括:

根据如下公式三确定所述第二推流滞后时长Tdelay2

其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bavg为所述平均推流码率。

第二方面,本发明实施例提供一种视频缓冲控制装置,包括获取模块、第一确定模块、第二确定模块和推流模块,其中,

所述获取模块用于,获取目标视频的平均推流码率、所述目标视频的加速推流码率、及预设视频缓冲时长,所述加速推流码率大于所述平均推流码率;

所述第一确定模块用于,根据所述平均推流码率、所述加速推流码率、及所述预设视频缓冲时长,确定所述目标视频的加速推流时长;

所述第二确定模块用于,根据所述目标视频的起始推流时刻和当前时刻,确定所述目标视频的当前推流时长;

所述推流模块用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之前,根据所述加速推流码率,向客户端推送视频;

所述推流模块还用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之后,根据所述平均推流码率,向客户端推送视频。

在一种可能的实施方式中,所述获取模块具体用于:

获取所述目标视频的文件大小和所述目标视频的播放时长;

根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。

在另一种可能的实施方式中,所述获取模块具体用于:获取预设加速推流增量;

根据所述平均推流码率和所述加速推流增量,确定所述加速推流码率。

在另一种可能的实施方式中,所述第一确定模块用于:

根据如下公式一,确定所述目标视频的加速推流时长Tfast

其中,所述Tbuff为所述预设视频缓冲时长,所述bavg为所述平均推流码率,所述bfast为所述加速推流码率。

在另一种可能的实施方式中,所述推流模块具体用于:

根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述加速推流码率,确定第一推流滞后时长;

若所述第一推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;

若所述第一推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;

若所述第一推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。

在另一种可能的实施方式中,所述推流模块具体用于:

根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述平均推流码率,确定第二推流滞后时长;

若所述第二推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;

若所述第二推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;

若所述第二推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。

在另一种可能的实施方式中,所述推流模块具体用于:

根据如下公式二确定所述第一推流滞后时长Tdelay1

其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bfast为所述加速推流码率。

在另一种可能的实施方式中,所述推流模块具体用于:

根据如下公式三确定所述第二推流滞后时长Tdelay2

其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bavg为所述平均推流码率。

本发明实施例提供的视频缓冲控制方法及装置,由视频服务器对视频缓冲进行控制,无需客户端具备视频缓冲控制的功能,进而降低了对客户端的要求。进一步的,当客户端的视频缓冲区中未缓存到预设数量的视频数据时,则视频服务器以大于平均推流码率的加速推流码率向客户端推流,以使客户端的视频缓冲区可以积累足量的视频数据;当客户端的视频缓冲区中首次缓存到预设数量的视频之后,则视频服务器以平均推流码率向客户端推流,以保证客户端的视频缓冲区中的视频数据可以维持在预设数量,在上述过程中,视频服务器均以稳定的码率向客户端推流,避免视频服务器向客户端推流的码率出现大的波动,进而提高视频服务器推流的稳定性。

附图说明

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

图1为本发明实施例提供的视频缓冲控制方法的应用场景示意图;

图2为本发明实施例提供的视频缓冲控制方法的流程示意图一;

图3为本发明实施例提供的视频缓冲控制方法的流程示意图二;

图4为本发明实施例提供的视频缓冲控制装置的结构示意图。

具体实施方式

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

图1为本发明实施例提供的视频缓冲控制方法的应用场景示意图。请参见图1,包括客户端101和视频服务器102。其中,客户端101通常为缓存较为小的电视等终端设备。客户端101中设置有视频缓冲区,在客户端101向视频服务器102发送视频请求之后,视频服务器102则持续向客户端101推流,其中,视频服务器102向客户端101发送的视频包首先被缓存在视频缓冲区,客户端101在进行视频播放时,从视频缓冲区获取缓冲的视频,并进行视频播放。

在本申请中,为了保证客户端101能够流畅的播放视频,且视频缓冲区中不会缓存过多的视频数据,在视频服务器102接收到客户端101发送的视频请求之后,视频服务器102先根据客户端101请求的视频的播放时长及总大小,确定平均推流码率,在视频服务器102开始推流的一段时长内,先以略大于平均推流码率的速度向客户端101推流,使得视频服务器102向客户端101发送视频的速度略大于客户端101进行视频播放的速度,客户端101可以将未及时播放的视频数据缓存在视频缓冲区,在视频服务器102确定客户端101的视频缓冲区中缓存的视频量达到预设值之后,视频服务器102则以平均推流码率向客户端101推流,以使客户端101的视频缓冲区中缓存的视频量维持在预设值。在本申请中,由视频服务器102对视频缓冲进行控制,无需客户端101具备视频缓冲控制的功能,降低了对客户端101的要求。进一步的,视频服务器102在保证客户端101的视频缓冲区中的视频量在预设值的前提下,可以以稳定的速度向客户端推流,进而提高视频服务器102推流的稳定性。

下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容在不同的实施例中不再进行赘述。

图2为本发明实施例提供的视频缓冲控制方法的流程示意图一。请参见图2,该方法可以包括:

S201、获取目标视频的平均推流码率、目标视频的加速推流码率、及预设视频缓冲时长。

在本发明实施例中,在视频服务器向客户端推送目标视频的过程中,视频推流装置以视频包为单位进行推流,例如,当目标视频为TS格式时,视频包的大小为1316字节。

平均推流码率与目标视频的播放速率一致,可选的,可以通过如下可行的实现方式确定目标视频的平均推流码率:获取目标视频的文件大小和目标视频的播放时长,并根据目标视频的文件大小和目标视频的播放时长,确定目标视频的平均推流码率,可以将目标视频的文件大小与视频播放时长的比值确定为平均推流码率。需要说明的是,由于目标视频的平均推流码率为固定值,因此,视频服务器可以只计算一次平均推流码率,并缓存该平均推流码率,当视频服务器需要使用该平均推流码率时,直接在缓存中获取即可。

目标视频的加速推流码率大于目标视频的平均推流码率,可选的,可以通过如下可行的实现方式确定目标视频的加速推流码率:获取预设加速推流增量,根据平均推流码率和加速推流增量,确定加速推流码率。需要说明的是,由于目标视频的加速推流码率为固定值,因此,视频服务器可以只计算一次加速推流码率,并缓存该加速推流码率,当视频服务器需要使用加速推流码率时,直接在缓存中获取即可。

可选的,加速推流增量可以为预设百分比,相应的,加速推流码率bfast=bavg×(1+a),其中,bavg为平均推流码率,a为预设百分比。例如,a可以为2%、3%等,在实际应用过程中,可以根据实际需要设置该预设百分比。

可选的,加速推流增量可以为预设增量推流码率,相应的,加速推流码率可以为平均推流码率和预设增量推流码率之和。在实际应用过程中,可以根据实际需要设置该预设增量推流码率。

预设视频缓冲时长为视频服务器预先设置的一个时长,该预设视频缓冲时长是指理想情况下、客户端的视频缓冲区中缓存的视频可以播放的时长。例如,假设预设视频缓冲时长为N秒,客户端当前正在播放第N1秒的视频,则理想情况下,客户端的视频缓冲区中应该缓存到了第N+N1秒的视频。例如,该预设视频缓冲时长可以为5秒等,在实际应用过程中,可以根据实际需要设置该预设视频缓冲时长

S202、根据平均推流码率、加速推流码率、及预设视频缓冲时长,确定目标视频的加速推流时长。

可选的,可以根据如下公式一,确定目标视频的加速推流时长Tfast

其中,Tbuff为预设视频缓冲时长,bavg为平均推流码率,bfast为加速推流码率。

S203、根据目标视频的起始推流时刻和当前时刻,确定目标视频的当前推流时长。

在初始时,目标视频的起始推流时刻为视频服务器首次向客户端发送视频包的时刻,例如,假设视频服务器在3点向客户端发送目标视频的第一个视频包,则目标视频的起始推流时刻为3点。在实际应用过程中,当视频服务器的推流滞后时长过大时,目标视频的起始推流时刻可能会更新,起始推流时刻的更新具体在图3实施例中进行详细说明。可选的,视频服务器可以在预设文件中存储目标视频的起始推流时刻,并根据推流的实际情况对起始推流时刻进行更新维护,这样,当视频服务器需要获取起始推流时刻时,直接在预设文件中获取即可,进而提高获取目标视频的起始推流时刻的效率。

可选的,当前推流时长为当前时刻与起始推流时刻之差。

S204、在目标视频的当前推流时长首次大于或等于加速推流时长之前,根据加速推流码率,向客户端推送视频。

从视频服务器向客户端发送目标视频的第一个数据包起,若目标视频的当前推流时长一直小于加速推流时长,则说明客户端的视频缓冲区中当前缓存的视频的可播放时长小于加速推流时长,为了保证在客户端的视频缓冲区缓存足够的视频,则视频服务器以加速推流码率向客户端推送视频。

当视频服务器以加速推流码率向客户端推送视频时,视频服务器向客户端发送视频的速度大于客户端进行视频播放的速度,以使客户端可以在视频缓冲区中缓存客户端无法及时播放的视频。

S205、在目标视频的当前推流时长首次大于或等于加速推流时长之后,根据平均推流码率,向客户端推送视频。

从视频服务器向客户端发送目标视频的第一个数据包起,在目标视频的当前推流时长首次大于或等于加速推流时长时,则说明客户端的视频缓冲区中当前缓存的视频的可播放时长大于或等于加速推流时长,为了避免在客户端缓冲过量的视频,则视频服务器以平均推流码率向客户端推送视频。

本发明实施例提供的视频缓冲控制方法,由视频服务器对视频缓冲进行控制,无需客户端具备视频缓冲控制的功能,进而降低了对客户端的要求。进一步的,当客户端的视频缓冲区中未缓存到预设数量的视频数据时,则视频服务器以大于平均推流码率的加速推流码率向客户端推流,以使客户端的视频缓冲区可以积累足量的视频数据;当客户端的视频缓冲区中首次缓存到预设数量的视频之后,则视频服务器以平均推流码率向客户端推流,以保证客户端的视频缓冲区中的视频数据可以维持在预设数量,在上述过程中,视频服务器均以稳定的码率向客户端推流,避免视频服务器向客户端推流的码率出现大的波动,进而提高视频服务器推流的稳定性。

在图2所示实施例的基础上,可选的,在视频服务器向客户端推送视频的过程中,为了进一步提高推流的稳定性,视频服务器可以根据如下可行的实现方式向客户端推流,具体的,请参见图3所示的实施例。

图3为本发明实施例提供的视频缓冲控制方法的流程示意图二。请参见图3,该方法可以包括:

S301、获取目标视频的平均推流码率、目标视频的加速推流码率、及预设视频缓冲时长。

S301与S201的执行过程相同,此处不再进行赘述。

S302、根据平均推流码率、加速推流码率、及预设视频缓冲时长,确定目标视频的加速推流时长。

S302与S202的执行过程相同,此处不再进行赘述。

S303、根据目标视频的起始推流时刻和当前时刻,确定目标视频的当前推流时长。

S303与S203的执行过程相同,此处不再进行赘述。

S304、判断当前推流时长是否大于或等于加速推流时长。

若否,则执行S305-S310。

若是,则执行S311-S318。

S305、根据起始推流时刻、起始推流时刻与当前时刻之间推送的第一视频量、及加速推流码率,确定第一推流滞后时长。

第一视频量是指起始推流时刻与当前时刻之间视频服务器向客户端发送的视频量。可选的,视频服务器可以记录在起始推流时刻向客户端发送的视频包在视频文件的位置P1、及视频服务器最近一次向客户端发送的视频包在视频文件的位置P2,并根据位置P1和P2,确定第一视频量的大小。

可选的,可以根据如下公式二确定第一推流滞后时长Tdelay1

其中,Tnow为当前时刻,Tbegin为起始推流时刻,n为第一视频量,bfast为所述加速推流码率。

需要说明的是,在上述公式二中,若第一视频量n的单位和加速推流码率bfast的单位不一致时,需要先统一第一视频量n的加速推流码率bfast的单位。例如,若第一视频量n的单位为字节,加速推流码率bfast的单位为bit/s,则需要先将第一视频量n的单位换成比特。

若第一推流滞后时长等于零,则说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的速度等于加速推流码率。

若第一推流滞后时长大于零,则说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率小于加速推流码率。

若第一推流滞后时长小于零,则说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率大于加速推流码率。

S306、判断第一推流滞后时长是否小于第一阈值。

若是,则执行S307。若否,则执行S308。

其中,第一阈值小于或等于零,可选的,第一阈值可以与S307中的暂停推流的预设时长相关,若预设时长为t,则第一阈值可以为-t。

S307、在预设时长内暂停推流。

在本发明实施例中,预设时长通常较小,可选的,预设时长可以大于0且小于10毫秒,例如,预设时长可以为4毫秒。需要说明的是,在实际应用过程中,可以根据实际需要设置该预设时长,本发明实施例对此不作具体限定。

在第一推流滞后时长小于第一阈值时,说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率过快,为了保证向客户端进行稳定的推流,则视频服务器在预设时长内暂停推流。

在S307之后,执行S303。

S308、判断第一推流滞后时长是否大于第二阈值。

第二阈值为需要修正起始推流时刻的最大门限值,可选的,第二阈值可以大于30毫秒且小于2秒。当然,在实际应用过程中,可以根据实际需要设置该第二阈值,本发明实施例对此不做具体限定。

若是,则执行S309。若否,则执行S310。

S309、将起始推流时刻更新为当前时刻,并向客户端推送当前时刻对应的视频包。

在第一推流滞后时长大于第二阈值时,说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率过慢,且该慢的程度超出了用户可接收的范围,无法通过码率补偿将推流恢复正常。为了避免视频服务器连续向客户端发送视频包而出现抖动(视频服务器在短时段内的码率突然过高),则视频服务器将起始推流时刻更新为当前时刻,这样,视频服务器可以从当前时刻起,重新对推流码率进行监控,避免了视频服务器出现过大抖动。

在S309之后,执行S303。

S310、向客户端推送当前时刻对应的视频包。

在S310之后,执行S303。

在第一推流滞后时长大于或等于第一阈值且小于或等于第二阈值时,说明在起始推流时刻与当前时刻之间,视频服务器向客户端推流的码率偏慢,但是偏慢的程度在用户可接受范围内,可以通过码率补偿将推流恢复正常。为了进行码率补偿,则视频服务器立刻在目标视频中确定当前时刻对应的视频包,并向客户端发送当前时刻对应的视频包。

可选的,视频服务器可以在目标视频中确定未推送视频,并将未推送视频中、播放时刻最早的预设大小的视频确定为当前时刻对应的视频包。可选的,当目标视频的格式为TS视频时,预设大小可以为1316字节。需要说明的是,若未推送视频的大小小于预设大小,则将为推送视频对应的视频包确定为当前时刻对应的视频包。

S311、根据起始推流时刻、起始推流时刻与当前时刻之间推送的第一视频量、及平均推流码率,确定第二推流滞后时长。

可选的,可以根据如下公式三确定第二推流滞后时长Tdelay2

其中,Tnow为当前时刻,Tbegin为起始推流时刻,n为第一视频量,bavg为平均推流码率。

S312、判断第二推流滞后时长是否小于第一阈值,第一阈值小于或等于零。

若是,则执行S313。若否,则执行S314。

需要说明的是,S312中的第一阈值与S306中的第一阈值类似,此处不再进行赘述。

S313、在预设时长内暂停推流。

需要说明的是,S313中的预设时长与S307中的预设时长类似,此处不再进行赘述。

在S313之后,执行S317。

S314、判断第二推流滞后时长是否大于第二阈值。

第二阈值为需要修正起始推流时刻的最大门限值,可选的,第二阈值可以大于30毫秒且小于2秒。当然,在实际应用过程中,可以根据实际需要设置该第二阈值,本发明实施例对此不做具体限定。

若是,则执行S315。若否,则执行S316。

S315、将起始推流时刻更新为当前时刻,并向客户端推送当前时刻对应的视频包。

在S315之后,执行S317。

S316、向客户端推送当前时刻对应的视频包。

S316的执行过程可以参考S310,此处不再进行赘述。

S317、判断目标视频是否推送完成。

若是,则执行S318。

若否,则执行S311。

S318、结束。

图4为本发明实施例提供的视频缓冲控制装置的结构示意图。该视频缓冲控制装置可以设置在视频服务器中。请参见图4,该装置可以包括获取模块11、第一确定模块12、第二确定模块13和推流模块14,其中,

所述获取模块11用于,获取目标视频的平均推流码率、所述目标视频的加速推流码率、及预设视频缓冲时长,所述加速推流码率大于所述平均推流码率;

所述第一确定模块12用于,根据所述平均推流码率、所述加速推流码率、及所述预设视频缓冲时长,确定所述目标视频的加速推流时长;

所述第二确定模块13用于,根据所述目标视频的起始推流时刻和当前时刻,确定所述目标视频的当前推流时长;

所述推流模块14用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之前,根据所述加速推流码率,向客户端推送视频;

所述推流模块14还用于,在所述目标视频的当前推流时长首次大于或等于所述加速推流时长之后,根据所述平均推流码率,向客户端推送视频。

本发明实施例提供的视频缓冲控制装置可以执行上述方法实施例所示技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

在一种可能的实施方式中,所述获取模块11具体用于:

获取所述目标视频的文件大小和所述目标视频的播放时长;

根据所述目标视频的文件大小和所述目标视频的播放时长,确定所述目标视频的平均推流码率。

在另一种可能的实施方式中,所述获取模块11具体用于:获取预设加速推流增量;

根据所述平均推流码率和所述加速推流增量,确定所述加速推流码率。

在另一种可能的实施方式中,所述第一确定模块12用于:

根据如下公式一,确定所述目标视频的加速推流时长Tfast

其中,所述Tbuff为所述预设视频缓冲时长,所述bavg为所述平均推流码率,所述bfast为所述加速推流码率。

在另一种可能的实施方式中,所述推流模块14具体用于:

根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述加速推流码率,确定第一推流滞后时长;

若所述第一推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;

若所述第一推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;

若所述第一推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。

在另一种可能的实施方式中,所述推流模块14具体用于:

根据所述起始推流时刻、所述起始推流时刻与所述当前时刻之间推送的第一视频量、及所述平均推流码率,确定第二推流滞后时长;

若所述第二推流滞后时长小于第一阈值,则在预设时长内暂停推流,所述第一阈值小于或等于零;

若所述第二推流滞后时长大于或等于所述第一阈值且小于或等于第二阈值,则向客户端推送所述当前时刻对应的视频包;

若所述第二推流滞后时长大于第二阈值,则将所述起始推流时刻更新为所述当前时刻,并向客户端推送所述当前时刻对应的视频包。

在另一种可能的实施方式中,所述推流模块14具体用于:

根据如下公式二确定所述第一推流滞后时长Tdelay1

其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bfast为所述加速推流码率。

在另一种可能的实施方式中,所述推流模块14具体用于:

根据如下公式三确定所述第二推流滞后时长Tdelay2

其中,所述Tnow为所述当前时刻,所述Tbegin为所述起始推流时刻,所述n为所述第一视频量,所述bavg为所述平均推流码率。

本发明实施例提供的视频缓冲控制装置可以执行上述方法实施例所示技术方案,其实现原理以及有益效果类似,此处不再进行赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。

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