视频播放容灾方法、装置及计算机存储介质与流程

文档序号:20949402发布日期:2020-06-02 20:03阅读:203来源:国知局
视频播放容灾方法、装置及计算机存储介质与流程

本申请涉及互联网技术领域,特别涉及一种视频播放容灾方法、装置及计算机存储介质。



背景技术:

随着互联网技术的发展,用户可以通过观看视频的方式了解多种信息。在视频播放过程中,由于为终端提供播放资源的服务器可能存在播放故障,导致终端的视频播放出现异常,且这种播放故障是无法提前预知的,因此终端播放视频时需要做容灾处理。

相关技术中,对于待播放的目标视频,在播放目标视频之前,终端可以先获取目标视频的多个播放地址,然后基于多个播放地址中的第一播放地址,向第一播放地址指向的第一服务器发送连接请求,以与第一服务器建立播放连接,并通过与第一服务器之间的播放连接,向第一服务器获取目标视频的视频资源,根据获取的视频资源来播放目标视频。其中,第一播放地址可以为多个播放地址中的任一个。在播放目标视频的过程中,当因第一服务器出现异常或与第一服务器之间的播放连接中断等原因导致目标视频播放异常时,终端可以再基于多个播放地址中的第二播放地址,尝试向第二播放地址指向的第二服务器发送连接请求,以与第二服务器建立播放连接,第二播放地址为多个播放地址中除第一播放地址之外的任一播放地址。若成功建立与第二服务器之间的播放连接,则即可通过建立的播放连接,向第二服务器获取目标视频的视频资源,以根据获取的视频资源继续播放目标视频。若未成功建立与第二服务器之间的播放连接,则还需要继续尝试基于其他播放地址与其他服务器建立播放连接,以继续播放目标视频,实现视频播放的容灾处理。

由于终端在播放异常时,需要先尝试与其他服务器建立播放连接,成功建立播放连接后才能继续进行视频播放,且在无法一次成功建立播放连接的情况下,还需要发送多次连接请求,这样将可能导致视频播放的延迟时间较久,以及容易出现卡顿等情况。



技术实现要素:

本申请实施例提供了一种视频播放容灾方法、装置及计算机存储介质,可以用于解决相关技术中存在的视频播放异常时,切换播放连接的过程花费时间较久,视频播放容易出现卡顿的问题。所述技术方案如下:

第一方面,提供了一种视频播放容灾方法,应用于终端,所述方法包括:

通过与第一服务器之间的播放连接,向所述第一服务器发送第一视频播放请求,所述第一视频播放请求携带目标视频标识;

接收所述第一服务器基于所述第一视频播放请求发送的目标视频的第一视频资源,根据所述第一视频资源播放所述目标视频;

当检测到所述目标视频播放异常时,通过与第二服务器之间的播放连接,向所述第二服务器发送第二视频播放请求,所述第二视频播放请求携带所述目标视频标识,所述第二服务器是与所述终端通过长连接的方式保持播放连接的至少一个服务器中的任一个,且所述至少一个服务器是与所述目标视频的至少一个播放地址一一对应的服务器;

接收所述第二服务器基于所述第二视频播放请求发送的所述目标视频的第二视频资源,根据所述第二视频资源继续播放所述目标视频。

可选地,所述向第一服务器发送第一视频播放请求之前,包括:

获取目标视频的多个播放地址,所述多个播放地址与多个服务器一一对应,所述第一服务器为所述多个服务器中的任一个,所述至少一个服务器为所述多个服务器中除所述第一服务器之外的其他服务器;

基于所述多个播放地址,分别向所述多个服务器发送连接请求,以与所述多个服务器建立播放连接;

所述通过与第一服务器之间的播放连接,向所述第一服务器发送第一视频播放请求之后,还包括:

通过长连接的方式保持与所述至少一个服务器之间的播放连接。

可选地,所述基于所述多个播放地址,分别向所述多个服务器发送连接请求之后,还包括:

从所述多个服务器中确定最先与所述终端建立播放连接的服务器;

将所述多个服务器中最先与所述终端建立播放连接的服务器,确定为所述第一服务器。

可选地,所述第二视频播放请求还携带异常播放时间点,所述异常播放时间点是指所述目标视频播放异常时的播放时间点,所述第二视频资源为所述异常播放时间点之后的视频资源;

所述根据所述第二视频资源继续播放所述目标视频,包括:

根据所述第二视频资源,以所述异常播放时间点为起始点继续播放所述目标视频。

第二方面,提供了一种视频播放容灾方法,应用于服务器,所述方法包括:

接收终端基于目标视频的播放地址发送的连接请求;

基于所述连接请求,建立与所述终端之间的播放连接;

通过长连接的方式,保持与所述终端之间的播放连接;

若接收到所述终端通过所述播放连接发送的第二视频播放请求,则基于所述第二视频播放请求,向所述终端发送所述目标视频的第二视频资源,以使所述终端基于所述第二视频资源继续播放所述目标视频,所述第二视频播放请求携带目标视频标识,所述第二视频播放请求是由所述终端在检测到所述目标视频播放异常时发送的。

可选地,所述第二视频播放请求还携带所述异常播放时间点,所述异常播放时间点是指所述目标视频播放异常时的播放时间点;

所述基于所述第二视频播放请求,向所述终端发送所述目标视频的第二视频资源,包括:

根据所述目标视频标识,获取所述目标视频的视频资源;

根据所述异常播放时间点,从所述目标视频的视频资源中确定所述异常播放时间点之后的视频资源,得到所述第二视频资源;

向所述终端发送所述第二视频资源,以使所述终端基于所述第二视频资源,以所述异常播放时间点为起始点继续播放所述目标视频。

第三方面,提供了一种视频播放容灾装置,应用于终端,所述装置包括:

第一发送模块,用于通过与第一服务器之间的播放连接,向所述第一服务器发送第一视频播放请求,所述第一视频播放请求携带目标视频标识;

第一接收模块,用于接收所述第一服务器基于所述第一视频播放请求发送的目标视频的第一视频资源,根据所述第一视频资源播放所述目标视频;

第二发送模块,用于当检测到所述目标视频播放异常时,通过与第二服务器之间的播放连接,向所述第二服务器发送第二视频播放请求,所述第二视频播放请求携带所述目标视频标识,所述第二服务器是与所述终端通过长连接的方式保持播放连接的至少一个服务器中的任一个,且所述至少一个服务器是与所述目标视频的至少一个播放地址一一对应的服务器;

第二接收模块,用于接收所述第二服务器基于所述第二视频播放请求发送的所述目标视频的第二视频资源,根据所述第二视频资源继续播放所述目标视频。

可选地,所述装置还包括:

获取模块,用于获取目标视频的多个播放地址,所述多个播放地址与多个服务器一一对应,所述第一服务器为所述多个服务器中的任一个,所述至少一个服务器为所述多个服务器中除所述第一服务器之外的其他服务器;

第三发送模块,用于基于所述多个播放地址,分别向所述多个服务器发送连接请求,以与所述多个服务器建立播放连接;

连接保持模块,用于通过长连接的方式保持与所述至少一个服务器之间的播放连接。

可选地,所述装置还包括:

第一确定模块,用于从所述多个服务器中确定最先与所述终端建立播放连接的服务器;

第二确定模块,用于将所述多个服务器中最先与所述终端建立播放连接的服务器,确定为所述第一服务器。

可选地,所述第二视频播放请求还携带异常播放时间点,所述异常播放时间点是指所述目标视频播放异常时的播放时间点,所述第二视频资源为所述异常播放时间点之后的视频资源;

所述第二接收模块,包括:

播放子模块,用于根据所述第二视频资源,以所述异常播放时间点为起始点继续播放所述目标视频。

第四方面,提供了一种视频播放容灾装置,应用于服务器,所述装置包括:

接收模块,用于接收终端基于目标视频的播放地址发送的连接请求;

建立连接模块,用于基于所述连接请求,建立与所述终端之间的播放连接;

连接保持模块,用于通过长连接的方式,保持与所述终端之间的播放连接;

发送模块,用于若接收到所述终端通过所述播放连接发送的第二视频播放请求,则基于所述第二视频播放请求,向所述终端发送所述目标视频的第二视频资源,以使所述终端基于所述第二视频资源继续播放所述目标视频,所述第二视频播放请求携带目标视频标识,所述第二视频播放请求是由所述终端在检测到所述目标视频播放异常时发送的。

可选地,所述第二视频播放请求还携带所述异常播放时间点,所述异常播放时间点是指所述目标视频播放异常时的播放时间点;

所述发送模块,包括:

获取子模块,用于根据所述目标视频标识,获取所述目标视频的视频资源;

确定子模块,用于根据所述异常播放时间点,从所述目标视频的视频资源中确定所述异常播放时间点之后的视频资源,得到所述第二视频资源;

发送子模块,用于向所述终端发送所述第二视频资源,以使所述终端基于所述第二视频资源,以所述异常播放时间点为起始点继续播放所述目标视频。

第五方面,提供了一种视频播放容灾系统,所述系统包括终端、第一服务器和至少一个第二服务器;

所述终端用于实现上述第一方面所述的任一项方法的步骤;

所述第二服务器用于实现上述第二方面所述的任一项方法的步骤。

第六方面,提供了一种终端,所述终端包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述第一方面提供的任一项方法的步骤。

第七方面,提供了一种服务器,所述服务器包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述第二方面提供的任一项方法的步骤。

第八方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面提供的任一项方法的步骤。

第九方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第二方面提供的任一项方法的步骤。

第十方面,提供了一种计算机程序产品,当所述计算机程序产品被执行时,用于实现上述视频播放容灾方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

本申请实施例中,终端基于第一服务器返回的视频资源来播放目标视频的同时,还可以与目标视频的播放地址所对应的其他服务器通过长连接的方式保持播放连接,如此,当检测到目标视频播放异常时,无需先与其他服务器建立播放连接,即可直接通过保持的播放连接,向其他服务器发送视频播放请求,利用其他服务器返回的视频资源继续播放目标视频。也即是,当终端发生播放异常情况时,无需先向其他服务器发送建立播放连接请求,成功建立播放连接后再继续播放视频,而是可以直接切换连接至其他服务器,利用其他服务器返回的视频资源继续播放目标视频,从而缩短了服务器的切换时间以及视频播放的延迟时间,保证了视频播放的流畅度。

附图说明

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

图1是本申请实施例提供的一种视频播放容灾系统的示意图;

图2是本申请实施例提供的另一种视频播放容灾系统的示意图;

图3是本申请实施例提供的一种视频播放容灾的方法流程图;

图4是本申请实施例提供的另一种视频播放容灾的方法流程图;

图5是本申请实施例提供的另一种视频播放容灾的方法流程图;

图6是本申请实施例提供的一种视频播放容灾装置的结构示意图;

图7是本申请实施例提供的另一种视频播放容灾装置的结构示意图;

图8是本申请实施例提供的一种终端的结构示意图;

图9是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。随着互联网技术的发展,用户可以通过观看视频的方式了解多种信息。在视频播放过程中,为了保证用户良好的观看体验,视频播放必须提前做好容灾处理。也即是,当视频播放异常时,需要切换至其他的播放地址,以通过其他播放地址获取视频资源,实现视频的继续播放。由于终端和其他播放地址所指向的服务器之间建立播放连接需要耗费一定的时间,因此,容易导致视频播放卡顿,无法流畅播放的问题。本申请提出了一种视频播放容灾方法,可以缩短视频播放的延迟时间,减少视频播放卡顿情况的发生。

接下来,对本申请实施例涉及的实施环境进行介绍。

图1是本申请实施例提供的一种视频播放容灾系统100,该系统100包括多个服务器101和终端102。终端102和任一服务器101之间可以通过有线或者无线的连接方式进行通信。任一终端102可以从服务器101获取目标视频的视频资源,以播放目标视频。多个服务器101上存储有目标视频的视频资源,也可以从其他服务器获取目标视频的视频资源。示例地,该多个服务器101为与目标视频的多个播放地址一一对应的多个服务器,即多个播放地址分别指向的服务器。

其中,多个服务器101可以包括第一服务器1011和至少一个第二服务器1012。第一服务器1011为多个服务器101中当前为终端102提供视频资源,以供终端102进行视频播放的服务器,即通过播放连接向终端102发送视频资源的服务器。第二服务器1012为在第一服务器1011为终端102提供视频资源的过程中,与终端102通过长连接的方式保持播放连接的服务器。当终端102检测到视频播放异常时,即可直接切换至任一第二服务器1012,通过与该第二服务器1012之间保持的播放连接获取视频资源,以继续播放视频。

作为一个示例,终端102和多个服务器101建立播放连接时,终端可以与第一服务器1011建立短连接,与至少一个第二服务器1012建立长连接。其中,短连接是指当终端102和第一服务器1011之间的播放连接中断时,第一服务器1011则停止和终端102之间的通信。长连接是指在连接保持期间,即使没有视频资源传输,此连接也不断开,继续保持连接状态,当检测视频播放异常时即可基于保持的连接直接发送视频资源。若终端102需要再次从第一服务器1011获取视频资源,则需要先向第一服务器1011发送连接请求,在与第一服务器1011建立播放连接后,可以通过与第一服务器1011之间的播放连接,从第一服务器1011获取目标视频的视频资源。

此外,在建立播放连接的过程中,终端102也可以和多个服务器101建立长连接,也即是,以长连接的方式保持终端102和第一服务器1011和至少一个第二服务器1012之间的播放连接不中断。本申请实施例对终端102和第一服务器1011之间采用的连接方式不做限制,可以是上述短连接或者长连接中任一种连接方式。

在本申请实施例中,每个终端102可以为手机、台式计算机、笔记本电脑等设备,图1中仅仅是以1部手机举例进行说明,并不构成对本申请实施例的限定。

图2是本申请实施例提供的另一种视频播放容灾系统,该系统200包括源服务器201,多个中转服务器202和终端203。终端203和中转服务器202之间通过有线或者无线的方式连接以进行通信,此外,终端203也可以和源服务器201之间通过有线或者无线的连接方式进行通信。

其中,源服务器201可以接收用户上传的视频资源,并将该视频资源进行存储,或者下发给多个中转服务器202。当中转服务器202接收到来自终端203的视频播放请求时,中转服务器202基于该视频播放请求,向终端203下发目标视频的视频资源。若中转服务器202上不存在目标视频的视频资源,则中转服务器202可以向源服务器201发送视频资源获取请求,以从源服务器201获取目标视频的视频资源,并将该视频资源发送给终端203。终端203可以从任一中转服务器202中获取目标视频资源,以播放目标视频。

需要说明的是,上述多个中转服务器202可以包括第一服务器2021和至少一个第二服务器2022。同理,终端203和多个中转服务器202建立播放连接时,终端可以与第一服务器2021建立短连接,与至少一个第二服务器2022建立长连接,并以长连接的方式保证在终端播放目标视频的过程中该播放连接不中断。其中,短连接是指当终端203和第一服务器2021之间的播放连接中断时,第一服务器2021则停止和终端203之间的通信。若终端203需要再次从第一服务器2021获取视频资源,则需要先向第一服务器2021发送连接请求,在与第一服务器2021建立播放连接后,可以通过与第一服务器2021之间的播放连接,继续从第一服务器2021获取目标视频的视频资源。

此外,在建立播放连接的过程中,终端203也可以和多个中转服务器202建立长连接,也即是,以长连接的方式保持终端203和第一服务器2021和至少一个第二服务器2022之间的播放连接不中断。本申请实施例对终端203和第一服务器2021之间采用的连接方式不做限制,可以是上述短连接或者长连接中任一种连接方式。

在本申请实施例中,每个终端203可以为手机、台式计算机、笔记本电脑等设备,图2中仅仅是以2部手机举例进行说明,并不构成对本申请实施例的限定。

图3是本申请实施例提供的一种视频播放容灾的方法流程图,该方法用于图1所示的视频播放容灾系统100中的终端102,或者图2所示的视频播放容灾系统200中的终端203。参见图3,该方法包括如下步骤:

步骤301:通过与第一服务器之间的播放连接,向第一服务器发送第一视频播放请求,第一视频播放请求携带目标视频标识。

步骤302:接收第一服务器基于第一视频播放请求发送的目标视频的第一视频资源,根据第一视频资源播放目标视频。

步骤303:当检测到目标视频播放异常时,通过与第二服务器之间的播放连接,向第二服务器发送第二视频播放请求,第二视频播放请求携带目标视频标识,第二服务器是与终端通过长连接的方式保持播放连接的至少一个服务器中的任一个,且至少一个服务器是与目标视频的至少一个播放地址一一对应的服务器。

步骤304:接收第二服务器基于第二视频播放请求发送的目标视频的第二视频资源,根据第二视频资源继续播放目标视频。

可选地,该向第一服务器发送第一视频播放请求之前,包括:

获取目标视频的多个播放地址,该多个播放地址与多个服务器一一对应,该第一服务器为该多个服务器中的任一个,该至少一个服务器为该多个服务器中除该第一服务器之外的其他服务器;

基于该多个播放地址,分别向该多个服务器发送连接请求,以与该多个服务器建立播放连接;

该通过与第一服务器之间的播放连接,向该第一服务器发送第一视频播放请求之后,还包括:

通过长连接的方式保持与该至少一个服务器之间的播放连接。

可选地,该基于该多个播放地址,分别向该多个服务器发送连接请求之后,还包括:

从该多个服务器中确定最先与该终端建立播放连接的服务器;

将该多个服务器中最先与该终端建立播放连接的服务器,确定为该第一服务器。

可选地,该第二视频播放请求还携带异常播放时间点,该异常播放时间点是指该目标视频播放异常时的播放时间点,该第二视频资源为该异常播放时间点之后的视频资源;

该根据该第二视频资源继续播放该目标视频,包括:

根据该第二视频资源,以该异常播放时间点为起始点继续播放该目标视频。

本申请实施例中,终端基于第一服务器返回的视频资源来播放目标视频的同时,还可以与目标视频的播放地址所对应的其他服务器通过长连接的方式保持播放连接,如此,当检测到目标视频播放异常时,无需先与其他服务器建立播放连接,即可直接通过保持的播放连接,向其他服务器发送视频播放请求,利用其他服务器返回的视频资源继续播放目标视频。也即是,当终端发生播放异常情况时,无需先向其他服务器发送建立播放连接请求,成功建立播放连接后再继续播放视频,而是可以直接切换连接至其他服务器,利用其他服务器返回的视频资源继续播放目标视频,从而缩短了服务器的切换时间以及视频播放的延迟时间,保证了视频播放的流畅度,提高了用户的视频观看体验。

上述所有可选技术方案,均可按照任意结合形成本申请的可选实施例,本申请实施例对此不再一一赘述。

图4是本申请实施例提供的另一种视频播放容灾的方法流程图,该方法用于图1所示的视频播放容灾系统100中的服务器101,或者图2所示的视频播放容灾系统200中的中转服务器202。参见图4,该方法包括如下步骤:

步骤401:接收终端基于目标视频的播放地址发送的连接请求。

步骤402:基于连接请求,建立与终端之间的播放连接。

步骤403:通过长连接的方式,保持与终端之间的播放连接。

步骤404:若接收到终端通过播放连接发送的第二视频播放请求,则基于第二视频播放请求,向终端发送目标视频的第二视频资源,以使终端基于第二视频资源继续播放目标视频,第二视频播放请求携带目标视频标识,第二视频播放请求是由终端在检测到目标视频播放异常时发送的。

可选地,该第二视频播放请求还携带该异常播放时间点,该异常播放时间点是指该目标视频播放异常时的播放时间点;

该基于该第二视频播放请求,向该终端发送该目标视频的第二视频资源,包括:

根据该目标视频标识,获取该目标视频的视频资源;

根据该异常播放时间点,从该目标视频的视频资源中确定该异常播放时间点之后的视频资源,得到该第二视频资源;

向该终端发送该第二视频资源,以使该终端基于该第二视频资源,以该异常播放时间点为起始点继续播放该目标视频。

本申请实施例中,终端基于第一服务器返回的视频资源来播放目标视频的同时,还可以与目标视频的播放地址所对应的其他服务器通过长连接的方式保持播放连接,如此,当检测到目标视频播放异常时,无需先与其他服务器建立播放连接,即可直接通过保持的播放连接,向其他服务器发送视频播放请求,利用其他服务器返回的视频资源继续播放目标视频。也即是,当终端发生播放异常情况时,无需先向其他服务器发送建立播放连接请求,成功建立播放连接后再继续播放视频,而是可以直接切换连接至其他服务器,利用其他服务器返回的视频资源继续播放目标视频,从而缩短了服务器的切换时间以及视频播放的延迟时间,保证了视频播放的流畅度,提高了用户的视频观看体验。

上述所有可选技术方案,均可按照任意结合形成本申请的可选实施例,本申请实施例对此不再一一赘述。

图5是本申请实施例提供的另一种视频播放容灾的方法流程图,该方法用于图1所示的视频播放容灾系统100,或者图2所示的视频播放容灾系统200。参见图5,该方法包括如下步骤:

步骤501:终端获取目标视频的多个播放地址,多个播放地址与多个服务器一一对应。

其中,目标视频为终端待播放的视频。该多个播放地址不同,且不同的播放地址指向不同的服务器。该多个服务器中的每个服务器可以存储有目标视频的视频资源,也可以从目标视频的源服务器获取目标视频的视频资源。

当终端确定需要播放目标视频时,可以先获取目标视频的多个播放地址,以便通过这多个播放地址来播放目标视频。

步骤502:终端基于多个播放地址,分别向多个服务器发送连接请求,以与多个服务器建立播放连接。

其中,该连接请求用于请求与对应服务器建立播放连接。终端可以向每个播放地址指向的服务器发送连接请求,以请求与对应服务器建立播放连接。

步骤503:多个服务器基于连接请求,建立与终端之间的播放连接。

本申请实施例中,该多个服务器包括第一服务器和至少一个第二服务器。第一服务器是为确定的为终端提供目标视频的视频资源的服务器,比如为确定的最初向终端发送目标视频的视频资源的服务器,且第一服务器可以为多个服务器中的任一服务器。当终端播放异常时,需要切换到至第二服务器,以从第二服务器中获取目标视频的视频资源。

对于这多个服务器来说,不同的服务器对该连接请求的响应时间可能不同,因此,为了便于用户尽快的获取目标视频的视频资源,从而快速播放目标视频,在建立连接时,可以根据服务器的响应速度确定第一服务器。

比如,从多个服务器中确定最先与终端建立播放连接的服务器,将最先与终端建立播放连接的服务器,确定为第一服务器。

此外,在与终端建立连接后,不同服务器与终端之间的通信质量也可能不相同,因此,为了便于用户保持较长时间的流畅播放,在建立连接时,还可以根据服务器与终端之间的通信质量确定第一服务器。

比如,从多个服务器中确定与终端之间的通信质量最好的一个服务器,将通信质量最好的一个服务器,确定为第一服务器。

作为一个示例,确定出第一服务器后,第一服务器可以与终端之间建立长连接,也可以建立短连接,本申请对此不做限定。比如,第一服务器与终端之间建立短连接,至少一个第二服务器与终端之间建立长连接。

需要说明的是,短连接是指通信双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送,数据处理速度快,且不同业务采用不同的连接,便于业务区分。长连接是指一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,则连接不断开,继续保持连接状态,当检测到有数据包需要发送时即可基于保持的连接直接发送数据包。长连接多用于操作频繁,点对点的通信,因为每个连接都需要三步握手,三步握手建立连接的过程需要耗费一定的时间,通常长连接的方式可以减少上述建立连接过程中耗费的时间,使得业务切换自如且不中断。例如:数据库之间的连接用长连接,如果用短连接频繁的通信会造成socket(套接字,一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像文件一样的打开、读写和关闭等操作)错误,而且频繁的socket创建也是对资源的浪费。而网站的http(hypertexttransferprotoccl,超文本传输协议)服务一般都用短链接,因为对于服务端而言,长连接会耗费一定的资源,且并发量大。

长连接可以保持较长时间的连接状态,方便来回切换播放视频的播放地址。短连接可以提高数据传输速度,长连接和短连接的选择可以由终端或者服务器来确定。

在第一服务器与终端建立连接后,终端通过与第一服务器之间的播放连接,向第一服务器发送第一视频播放请求,以请求第一服务器下发目标视频进行播放。

步骤504:终端通过与第一服务器之间的播放连接,向第一服务器发送第一视频播放请求,以及通过长连接的方式保持与至少一个第二服务器之间的播放连接,第一视频播放请求携带目标视频标识。

其中,目标视频标识用于唯一标识目标视频,可以为目标视频的名称或id(identitydocument,身份标识)等。第一视频播放请求用于请求第一服务器获取目标视频的视频资源,并将获取的视频资源返回给终端。

需要说明的是,终端可以在和第一服务器建立连接后,立即向第一服务器发送第一视频播放请求;也可以在和第一服务器建立播放连接之后,在与第二服务器建立长连接的过程中,向第一服务器发送第一视频播放请求;还可以在与第一服务器和至少一个第二服务器建立连接之后,再向第一服务器发送第一视频播放请求,本申请对终端向第一服务器发送第一视频播放请求的触发时间不做限制,可以采用上述列举方式之一即可。

步骤505:第一服务器基于第一视频播放请求,向终端发送目标视频的第一视频资源。

在通过上述步骤504向第一服务器发送第一视频播放请求后,第一服务器在接收到该第一视频播放请求之后,即可根据目标视频标识获取目标视频的视频资源,并将获取的视频资源发送给终端。

若第一服务器存储有目标视频的视频资源,则第一服务器可以直接根据目标视频标识,从存储的视频资源中获取目标视频的视频资源。若第一服务器未存储有标视频的视频资源,则第一服务器可以根据目标视频标识,向目标视频的源服务器发送视频资源获取请求,以从源服务器中获取目标视频的视频资源。其中,该视频资源获取请求携带目标视频标识。

其中,至少一个服务器为多个服务器中除第一服务器之外的其他服务器。在一种可能的实现方式中,在第一服务器与终端建立连接的同时,或者在第一服务器与终端建立连接之后,通过长连接的方式保持与至少一个服务器之间的播放连接,本申请对建立长连接的触发时间不做限定。

需要说明的是,对于至少一个服务器中的第二服务器,第二服务器可以接收终端基于目标视频的播放地址发送的连接请求,基于连接请求,建立与终端之间的播放连接;通过长连接的方式,保持与终端之间的播放连接。其中,第二服务器为至少一个服务器中的任一个。

本申请对长连接保持播放连接的方式不做限定,只要可以实现长连接中连接不中断的效果即可。作为一个示例,可以采用心跳的方式保持长连接,心跳是一种长连接的具体实现方式。也即是,终端每隔预设时长向第二服务器发送一个连接指令,该连接指令可以是自定义的一个指令。第二服务器接收到该连接指令后,向终端发送该连接指令的响应信息,通过上述类似“心跳”的方式保持两者之间的连接不中断。

步骤506:终端接收第一服务器发送的第一视频播放资源,根据第一视频播放资源播放目标视频。

在一种可能的实现方式中,终端在接收到视频播放资源后可以直接根据第一视频资源播放目标视频,也可以先对第一视频资源进行缓存,再根据缓存的第一视频资源播放目标视频,本申请对此不做限制。

步骤507:当检测到目标视频播放异常时,通过与第二服务器之间的播放连接,向第二服务器发送第二视频播放请求,第二视频播放请求携带目标视频标识。

其中,第二视频播放请求用于请求第二服务器获取目标视频的第二视频资源,并将第二视频资源发送给终端。

需要说明的是,播放异常可以包括播放中断和缓存区数据为空等情况,比如,检测到目标视频播放异常可以包括以下两种可能:

1)在终端根据第一视频资源播放目标视频的过程中,当目标视频停止播放,或者连续卡顿时长大于或等于卡顿时长阈值时,则确定目标视频播放异常。

其中,卡顿时长阈值可以由终端或服务器预先设定,示例的,卡顿时长阈值可以为3分钟或5分钟等。

2)在终端先对第一视频播放资源进行缓存,再根据缓存的第一视频资源播放目标视频的过程中,如果检测到缓存区数据为空时,也即是,缓存区域没有视频资源时,则确定目标视频播放异常。

需要说明的是,缓存区数据为空时,将导致后续没有待播放的视频资源,进而可能导致后续视频播放中断,通过在这种情况下,切换至第二服务器获取视频资源,可以提前避免视频播放中断,提高视频播放效果。

还需要说明的是,本申请实施例仅是以终端向一个第二服务器发送第二视频播放请求,从该第二服务器获取视频资源为例进行说明,而在其他实现方式中,终端还可以在检测到目标视频播放异常时,向至少一个第二服务器发送第二视频播放请求,然后接收最先响应第二视频播放请求的第二服务器发送的第二视频资源。而且,在终端与该第二服务器传输第二视频资源的过程中,该终端与其他第二服务器的播放连接中不传输第二视频资源。也即是,终端只接收来自一个第二服务器的第二视频资源。

此外,为了方便用户从播放异常的时间点继续观看目标视频,减少第二服务器和终端之间不必要的数据传输,第二视频播放请求还可以携带异常播放时间点。其中,异常播放时间点是指目标视频播放异常时的播放时间点,以请求第二服务器向终端发送播放时间点之后的视频资源。相应地,第二视频资源为目标视频中异常播放时间点之后的视频资源。

步骤508:第二服务器基于第二视频播放请求,向终端发送目标视频的第二视频资源。

对于与终端通过长连接方式保持播放连接的第二服务器来说,若接收到终端通过播放连接发送的第二视频播放请求,则基于第二视频播放请求,向终端发送目标视频的第二视频资源,以使终端基于第二视频资源继续播放目标视频。

在一种可能的实现方式中,当至少一个第二服务器中的任一第二服务器在接收到第二视频播放请求时,则该第二服务器即可基于第二视频播放请求携带的目标视频标识,确定目标视频的第二视频资源,并向终端发送第二视频资源,以使终端基于第二视频资源播放目标视频。

此外,为了方便用户从播放异常的时间点继续观看目标视频,也减少第二服务器和终端之间不必要的数据传输。作为一个示例,在第二视频播放请求还可以携带异常播放时间点的情况下,基于第二视频播放请求,向终端发送目标视频的第二视频资源的实现过程为:根据目标视频标识,获取目标视频的视频资源,并根据异常播放时间点,从目标视频的视频资源中确定异常播放时间点之后的视频资源,得到第二视频资源,向终端发送第二视频资源。

步骤509:终端接收第二服务器发送的第二视频资源,根据第二视频资源继续播放目标视频。

在一种可能的实现方式中,终端在接收到第二视频资源后,即根据第二视频资源,以异常播放时间点为起始点继续播放目标视频。

需要说明的是,由于终端和至少一个第二服务器之间以长连接的方式保持建立的播放连接不中断,因此,当终端根据根据第二视频资源继续播放目标视频的过程中,如果检测到播放异常,则循环执行步骤507-步骤509,以保证终端的目标视频播放不中断。

本申请实施例中,终端基于第一服务器返回的视频资源来播放目标视频的同时,还可以与目标视频的播放地址所对应的其他服务器通过长连接的方式保持播放连接,如此,当检测到目标视频播放异常时,无需先与其他服务器建立播放连接,即可直接通过保持的播放连接,向其他服务器发送视频播放请求,利用其他服务器返回的视频资源继续播放目标视频。也即是,当终端发生播放异常情况时,无需先向其他服务器发送建立播放连接请求,成功建立播放连接后再继续播放视频,而是可以直接切换连接至其他服务器,利用其他服务器返回的视频资源继续播放目标视频,从而缩短了服务器的切换时间以及视频播放的延迟时间,保证了视频播放的流畅度,提高了用户的视频观看体验。

图6是本申请实施例提供的一种视频播放容灾装置的结构示意图,应用于终端,该装置600可以包括:

第一发送模块601,用于通过与第一服务器之间的播放连接,向第一服务器发送第一视频播放请求,第一视频播放请求携带目标视频标识;

第一接收模块602,用于接收第一服务器基于第一视频播放请求发送的目标视频的第一视频资源,根据第一视频资源播放目标视频;

第二发送模块603,用于当检测到目标视频播放异常时,通过与第二服务器之间的播放连接,向第二服务器发送第二视频播放请求,第二视频播放请求携带目标视频标识,第二服务器是与终端通过长连接的方式保持播放连接的至少一个服务器中的任一个,且至少一个服务器是与目标视频的至少一个播放地址一一对应的服务器;

第二接收模块604,用于接收第二服务器基于第二视频播放请求发送的目标视频的第二视频资源,根据第二视频资源继续播放目标视频。

可选地,装置还包括:

获取模块,用于获取目标视频的多个播放地址,多个播放地址与多个服务器一一对应,第一服务器为多个服务器中的任一个,至少一个服务器为多个服务器中除第一服务器之外的其他服务器;

第三发送模块,用于基于多个播放地址,分别向多个服务器发送发送连接请求,以与多个服务器建立播放连接;

连接保持模块,用于通过长连接的方式保持与至少一个服务器之间的播放连接。

可选地,装置还包括:

第一确定模块,用于从多个服务器中确定最先与终端建立播放连接的服务器;

第二确定模块,用于将多个服务器中最先与终端建立播放连接的服务器,确定为第一服务器。

可选地,第二视频播放请求还携带异常播放时间点,异常播放时间点是指目标视频播放异常时的播放时间点,第二视频资源为异常播放时间点之后的视频资源;

第二接收模块,包括:

播放子模块,用于根据第二视频资源,以异常播放时间点为起始点继续播放目标视频。

本申请实施例中,终端基于第一服务器返回的视频资源来播放目标视频的同时,还可以与目标视频的播放地址所对应的其他服务器通过长连接的方式保持播放连接,如此,当检测到目标视频播放异常时,无需先与其他服务器建立播放连接,即可直接通过保持的播放连接,向其他服务器发送视频播放请求,利用其他服务器返回的视频资源继续播放目标视频。也即是,当终端发生播放异常情况时,无需先向其他服务器发送建立播放连接请求,成功建立播放连接后再继续播放视频,而是可以直接切换连接至其他服务器,利用其他服务器返回的视频资源继续播放目标视频,从而缩短了服务器的切换时间以及视频播放的延迟时间,保证了视频播放的流畅度,提高了用户的视频观看体验。

需要说明的是:上述实施例提供的视频播放容灾装置在进行目标视频继续播放时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频播放容灾装置与视频播放容灾方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图7是本申请实施例提供的一种视频播放容灾装置的结构示意图,应用于服务器,该装置700可以包括:

接收模块701,用于接收终端基于目标视频的播放地址发送的连接请求;

建立连接模块702,用于基于连接请求,建立与终端之间的播放连接;

连接保持模块703,用于通过长连接的方式,保持与终端之间的播放连接;

发送模块704,用于若接收到终端通过播放连接发送的第二视频播放请求,则基于第二视频播放请求,向终端发送目标视频的第二视频资源,以使终端基于第二视频资源继续播放目标视频,第二视频播放请求携带目标视频标识,第二视频播放请求是由终端在检测到目标视频播放异常时发送的。

可选地,第二视频播放请求还携带异常播放时间点,异常播放时间点是指目标视频播放异常时的播放时间点;

发送模块704,包括:

获取子模块,用于根据目标视频标识,获取目标视频的视频资源;

确定子模块,用于根据异常播放时间点,从目标视频的视频资源中确定异常播放时间点之后的视频资源,得到第二视频资源;

发送子模块,用于向终端发送第二视频资源,以使终端基于第二视频资源,以异常播放时间点为起始点继续播放目标视频。

本申请实施例中,终端基于第一服务器返回的视频资源来播放目标视频的同时,还可以与目标视频的播放地址所对应的其他服务器通过长连接的方式保持播放连接,如此,当检测到目标视频播放异常时,无需先与其他服务器建立播放连接,即可直接通过保持的播放连接,向其他服务器发送视频播放请求,利用其他服务器返回的视频资源继续播放目标视频。也即是,当终端发生播放异常情况时,无需先向其他服务器发送建立播放连接请求,成功建立播放连接后再继续播放视频,而是可以直接切换连接至其他服务器,利用其他服务器返回的视频资源继续播放目标视频,从而缩短了服务器的切换时间以及视频播放的延迟时间,保证了视频播放的流畅度,提高了用户的视频观看体验。

需要说明的是:上述实施例提供的视频播放容灾装置在进行目标视频继续播放时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频播放容灾装置与视频播放容灾方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图8是本申请实施例提供的终端800的结构框图。该终端800可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiola11eriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiola11eriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端800还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端800包括有:处理器801和存储器802。

处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearra11,现场可编程门阵列)、pla(programmablelogicarra11,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请中方法实施例提供的视频播放容灾方法方法。

显示屏803用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏803是触摸显示屏时,显示屏803还具有采集在显示屏803的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏803还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏803可以为一个,设置终端800的前面板;在另一些实施例中,显示屏803可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在再一些实施例中,显示屏803可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,显示屏803还可以设置成非矩形的不规则图形,也即异形屏。显示屏803可以采用lcd(liquidcr11staldispla11,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

本领域技术人员可以理解,图8中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行上实施例视频播放容灾方法。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在终端上运行时,使得终端执行上述实施例提供的视频播放容灾方法。

图9是本申请实施例提供的一种服务器900的结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)901和一个或一个以上的存储器902,其中,所述存储器902中存储有至少一条指令,所述至少一条指令由所述处理器901加载并执行以实现上述各个方法实施例提供的视频播放容灾方法。当然,该服务器900还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器900还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性的实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述视频播放容灾方法。

在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述视频播放容灾方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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