视频处理方法及装置与流程

文档序号:12810212阅读:353来源:国知局
视频处理方法及装置与流程

本申请涉及多媒体技术领域,尤其涉及视频处理方法及装置。



背景技术:

视频(video)泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。视频技术最早是为了电视系统而发展,但现在已经发展为各种不同的格式以便消费者将视频记录下来。网络技术的发展也促使视频的纪录片段以流媒体的形式存在于因特网之上并可被电脑或智能移动终端接收与播放。



技术实现要素:

本申请实施例提供视频处理方法和装置以提高视频播放的效率,减少资源的消耗。

本申请一实施例提供一种视频处理方法,包括:

从视频客户端接收包括多个视频的标识信息的视频播放请求;

根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件,其中,每一视频的第一播放索引文件包括:所述视频所包括的播放文件的地址;

根据所述多个视频的第一播放索引文件生成至少一个第二播放索引文件,并将生成的所述第二播放索引文件发送给所述视频客户端,以使所述视频客户端根据所述第二播放索引文件包括的播放文件的地址获取所述播放文件并进行播放;所述至少一个第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址。

在本申请一实施例中,所述视频的标识信息包括:所述视频的视频标识符id;

根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件包括:

根据预存的视频id和播放索引文件之间的对应关系,根据所述多个视频的视频id获取其各自对应的所述第一播放索引文件。

在本申请一实施例中,所述视频播放请求进一步包括:指示以拼接方式播放所述多个视频的信息;

当确定所述视频播放请求包括所述指示以拼接方式播放所述多个视频的信息时,执行所述根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件的处理。

在本申请一实施例中,所述播放文件的地址包括:片头文件的地址,片尾文件的地址和剧集文件的地址;

根据所述多个视频的第一播放索引文件生成至少一个第二播放索引文件包括:

从所述多个视频各自的第一播放索引文件中获取每一视频的剧集文件的地址;

生成包含所述多个视频的剧集文件的地址的所述第二播放索引文件。

在本申请一实施例中,所述视频播放请求进一步包括:视频播放顺序指令,

根据所述多个视频的第一播放索引文件生成至少一个第二播放索引文件包括:

按照所述视频播放顺序指令设置所述至少一个第二播放索引文件中所述视频的播放文件的地址的顺序。

在本申请一实施例中,该方法进一步包括:将其中任一个第二播放索引文件分割成多个播放索引子文件,并在最后一个播放索引子文件中设置索引文件结束标识符;所述多个播放索引子文件包括:所述被分割的第二播放索引文件中包括的播放文件的地址;

将生成的所述第二播放索引文件发送给所述视频客户端包括:

发送一个播放索引子文件给所述视频客户端,在接收到所述视频客户端因未读取到所述索引文件结束标识符而发送的后续播放索引子文件获取请求时,将后一个播放索引子文件发送给所述视频客户端,直到将所有的播放索引子文件已发送给所述视频客户端。

在本申请一实施例中,根据所述多个视频的第一播放索引文件生成多个第二播放索引文件,并将生成的所述第二播放索引文件发送给所述视频客户端包括:

反复执行从所述多个视频的第一播放索引文件包括的播放文件的地址中读取其中一部分播放文件的地址,生成包括所述读取的播放文件的地址的第二播放索引文件并发送给所述视频客户端的操作,直到所述多个视频的第一播放索引文件包括的播放文件的地址均已被读取。

本申请实施例提供一种视频处理方法,包括:

响应于用户对播放界面上多个视频的选择,生成包括所述多个视频的标识信息的视频播放请求;

将所述视频播放请求发送给视频处理服务器;其中,所述视频处理服务器根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件,根据所述多个视频的第一播放索引文件生成至少一个第二播放索引文件,每一视频的第一播放索引文件包括:所述视频所包括的播放文件的地址,所述至少一个第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址;

从所述视频处理服务器接收所述至少一个第二播放索引文件;

根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放。

在本申请一实施例中,所述视频播放请求进一步包括:指示以拼接方式播放所述多个视频的信息,以使所述视频处理服务器获取并根据所述多个视频的第一播放索引文件生成所述至少一个第二播放索引文件。

在本申请一实施例中,根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放包括:

顺序读取所述第二播放索引文件中每个视频的播放文件的地址;

根据所述每个视频的播放文件的地址依次缓存并连续播放所述播放文件。

在本申请一实施例中,所述视频处理服务器将所述任一个第二播放索引文件分割成多个播放索引子文件,并在最后一个播放索引子文件中设置索引文件结束标识符;

从所述视频处理服务器接收所述至少一个第二播放索引文件,根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放包括:

从所述视频处理服务器接收一个播放索引子文件,根据所述接收到的播放索引子文件中包括的播放文件的地址依次获取播放文件并进行播放,在没有读取到所述索引文件结束标识符时,向所述视频处理服务器发送后续播放索引子文件获取请求以请求获取后续的播放索引子文件,并在读取到所述索引文件结束标识符并播放完获取到的所有播放文件后结束本流程。

在本申请一实施例中,从所述视频处理服务器接收所述多个第二播放索引文件,根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放包括:其中,所述多个第二播放索引文件中的最后一个包括:索引文件结束标识符;

反复执行从所述视频处理服务器获取第二播放索引文件,所述获取到的第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址中的部分播放文件的地址,并根据所述部分播放文件的地址获取对应的播放文件并进行播放的操作,直到读取到所述索引文件结束标识符,并在播放完获取的所有播放文件后结束本流程。

本申请实施例提供一种视频处理服务器,包括:

接收模块,用于从视频客户端接收包括多个视频的标识信息的视频播放请求;

播放索引文件获取模块,用于根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件,其中,每一视频的第一播放索引文件包括:所述视频所包括的播放文件的地址;

播放索引文件生成模块,用于根据所述多个视频的第一播放索引文件生成至少一个第二播放索引文件,所述至少一个第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址;

发送模块,用于将生成的所述第二播放索引文件发送给所述视频客户端,以使所述视频客户端根据所述第二播放索引文件包括的播放文件的地址获取所述播放文件并进行播放。

在本申请一实施例中,所述视频的标识信息包括:所述视频的视频标识符id;

所述播放索引文件获取模块,进一步用于根据预存的视频id和播放索引文件之间的对应关系,根据所述多个视频的视频id获取其各自对应的所述第一播放索引文件。

在本申请一实施例中,所述视频播放请求进一步包括:指示以拼接方式播放所述多个视频的信息;

所述播放索引文件获取模块,进一步用于当确定所述视频播放请求包括所述指示以拼接方式播放所述多个视频的信息时,执行所述根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件的处理。

在本申请一实施例中,所述播放文件的地址包括:片头文件的地址,片尾文件的地址和剧集文件的地址;

所述播放索引文件生成模块,进一步用于从所述多个视频各自的第一播放索引文件中获取每一视频的剧集文件的地址,生成包含所述多个视频的剧集文件的地址的所述第二播放索引文件。

在本申请一实施例中,所述视频播放请求进一步包括:视频播放顺序指令;

所述播放索引文件生成模块,进一步用于按照所述视频播放顺序指令设置所述至少一个第二播放索引文件中所述视频的播放文件的地址的顺序。

在本申请一实施例中,该服务器进一步包括:

分割模块,用于将所述任一个第二播放索引文件分割成多个播放索引子文件,并在最后一个播放索引子文件中设置索引文件结束标识符;所述多个播放索引子文件包括:所述被分割的第二播放索引文件中包括的播放文件的地址;

所述发送模块,进一步用于发送一个播放索引子文件给所述视频客户端,在接收到所述视频客户端因未读取到所述索引文件结束标识符而发送的后续播放索引子文件获取请求时,将后一个播放索引子文件发送给所述视频客户端,直到将所有的播放索引子文件发送给所述视频客户端。

在本申请一实施例中,所述播放索引文件生成模块,进一步用于反复执行从所述多个视频的第一播放索引文件包括的播放文件的地址中读取其中一部分播放文件的地址,生成包括所述读取的播放文件的地址的第二播放索引文件,并通过所述发送模块发送给所述视频客户端的操作;直到所述多个视频的第一播放索引文件包括的播放文件的地址均已被读取。

本申请实施例提供一种视频客户端,包括:

视频播放请求生成模块,用于响应于用户对播放界面上多个视频的选择,生成包括所述多个视频的标识信息的视频播放请求;

发送模块,用于将所述视频播放请求发送给视频处理服务器;其中,所述视频处理服务器根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件,根据所述多个视频的第一播放索引文件生成至少一个第二播放索引文件,每一视频的第一播放索引文件包括:所述视频所包括的播放文件的地址,所述至少一个第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址;

播放索引文件接收模块,用于从所述视频处理服务器接收所述至少一个第二播放索引文件;

视频获取及播放模块,用于根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放。

在本申请一实施例中,所述视频播放请求进一步包括:指示以拼接方式播放所述多个视频的信息,以使所述视频处理服务器获取并根据所述多个视频的第一播放索引文件生成所述至少一个第二播放索引文件。

在本申请一实施例中,所述视频获取及播放模块,进一步用于顺序读取所述第二播放索引文件中每个视频的播放文件的地址,根据所述每个视频的播放文件的地址依次缓存并连续播放所述播放文件。

在本申请一实施例中,所述视频处理服务器将所述任一个第二播放索引文件分割成多个播放索引子文件,并在最后一个播放索引子文件中设置索引文件结束标识符;

所述播放索引文件接收模块,进一步用于从所述视频处理服务器接收一个播放索引子文件,指令所述视频获取及播放模块根据所述接收到的播放索引子文件中包括的播放文件的地址依次获取播放文件并进行播放,在没有读取到所述索引文件结束标识符时,向所述视频处理服务器发送后续播放索引子文件获取请求以请求获取后续的播放索引子文件,并在读取到所述索引文件结束标识符,停止向所述视频处理服务器发送所述后续播放索引子文件获取请求。

在本申请一实施例中,所述多个第二播放索引文件中的最后一个包括:索引文件结束标识符;

所述播放索引文件接收模块,进一步用于反复执行从所述视频处理服务器获取第二播放索引文件,所述获取到的第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址中的部分播放文件的地址,指令所述视频获取及播放模块根据所述部分播放文件的地址获取对应的播放文件并进行播放,直到读取到所述索引文件结束标识符。

在本申请实施例中,在收到的一个视频播放请求中携带多个视频的标识信息,根据多个视频的标识信息获取多个视频各自的第一播放索引文件,每一视频的第一播放索引文件包括该视频所包括的播放文件的地址。生成至少一个包括多个视频中每个视频的所有或部分播放文件的地址的第二播放索引文件,将该生成的第二播放索引文件发送给该视频客户端,以使该视频客户端根据所述第二播放索引文件包括的播放文件的地址获取所述播放文件并进行播放。根据本申请的技术方案,可以通过视频客户端发送的一次视频播放请求获取多个视频的标识信息,生成包含这多个视频的播放文件的地址的第二播放索引文件并发送给视频客户端,以使视频客户端根据该第二播放索引文件中包括的播放文件的地址顺序获取并进行播放,因此可以减少视频客户端为获取多个视频的对应的播放文件的地址而与服务器侧进行的交互次数,提高视频播放的效率,减少因交互而造成的资源的消耗。

附图说明

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

图1为本申请各实施例涉及的一种实施环境的结构示意图;

图2为本申请实施例的一种视频处理方法的流程示意图;

图3为本申请实施例的一种视频处理方法的流程示意图;

图4为本申请实施例提供的一种视频处理方法的流程示意图;

图5为用户对视频客户端的播放界面上的多个视频进行选择的示意图;

图6为本申请实施例提供的一种视频处理服务器的结构示意图;

图7为本申请实施例提供的一种视频客户端的结构示意图;

图8为本申请实施例提供的一种视频处理服务器的结构示意图;

图9为本申请实施例提供的一种视频客户端的结构示意图。

具体实施方式

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

在本申请一实施例中,在终端设备,例如电视、手机、pc、pad等响应用户请求播放视频的过程中,终端设备接收用户对第一视频的点击请求,生成携带该第一视频标识符(id)的第一视频请求,将该第一视频请求发送给视频处理服务器。该视频处理服务器从该第一视频请求中获取该第一视频id,根据第一视频id查找到对应的第一视频播放索引文件,并将该第一视频播放索引文件发送给该终端设备。在接收到该第一视频播放索引文件后,该终端设备根据该第一视频播放索引文件中的第一视频播放文件的地址获取第一视频播放文件,运行播放器,执行播放进程,并播放该第一视频播放文件,在播放完该第一视频播放文件后,该视频播放器结束对第一视频文件的播放,并结束该播放进程。当用户在观看完该终端播放的该第一视频播放文件后,在终端设备展示的播放界面点击第二视频,该终端设备响应于用户对该第二视频的点击请求生成携带该第二视频id的第二视频请求,将该第二视频请求发送给该视频处理服务器。该视频处理服务器从该第二视频请求中获取该第二视频id,根据该第二视频id查找到对应的第二视频播放索引文件,并将该第二视频播放索引文件发送给该终端设备。在接收到该第二视频播放索引文件后,运行该播放器,启动播放进程,根据该第二视频播放索引文件中的第二视频播放文件的地址获取并播放该第二视频播放文件,在播放完该第二视频播放文件后,关闭该播放进程,并关闭该视频播放器。

由上述视频播放过程可见,如果用户需要观看多个视频,终端设备需要多次响应用户的点击请求,并多次与视频处理服务器进行交互以从视频处理服务器获取对应的视频播放索引文件,以便根据获取到的视频播放索引文件获取对应的视频播放文件。因此,在上述播放过程中,终端设备与视频处理服务器之间的多次交互会占用大量的系统资源与系统时间,造成资源的消耗,降低视频的播放效率。

图1为本申请各实施例涉及的一种实施环境的结构示意图。如图1所示,该实施环境包括:终端设备101、视频处理服务器102和视频提供服务器103。

该终端设备101可以为pc、笔记本电脑、手机、平板电脑或智能电视等。

该视频处理服务器102可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。

该视频提供服务器103可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。在本申请一实施例中,该视频处理服务器102和视频提供服务器103可以为独立的服务器,也可以是同一服务器。

该终端设备101可以运行视频客户端,通过运行的视频客户端与视频处理服务器102进行交互,获取包含多个视频中每个视频的所有或部分播放文件的地址的播放索引文件,根据播放文件的地址从该视频提供服务器103获取播放文件并在该视频客户端中进行播放。

为了提高视频播放的效率,减少资源的消耗,本申请实施例提供一种视频处理方法。如图2所示,图2为本申请实施例的一种视频处理方法的流程示意图。如图2所示,该方法包括如下步骤。

步骤201,从视频客户端接收包括多个视频的标识信息的视频播放请求。

步骤202,根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件。其中,每一视频的第一播放索引文件包括:所述视频所包括的播放文件的地址。

步骤203,根据所述多个视频的第一播放索引文件生成一个或多个第二播放索引文件,并将生成的第二播放索引文件发送给所述视频客户端。

在本步骤中,所述一个或多个第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址。所述视频客户端根据所述一个或多个第二播放索引文件包括的播放文件的地址获取所述播放文件并进行播放。

在本申请实施例中,在收到的一个视频播放请求中携带多个视频的标识信息,根据多个视频的标识信息获取多个视频各自的第一播放索引文件,每一视频的第一播放索引文件包括该视频所包括的播放文件的地址。生成一个或多个包括多个视频中每个视频的所有或部分播放文件的地址的第二播放索引文件,将该生成的第二播放索引文件发送给该视频客户端,以使该视频客户端根据所述第二播放索引文件包括的播放文件的地址获取所述播放文件并进行播放。根据本申请的技术方案,可以通过视频客户端发送的一次视频播放请求获取多个视频的标识信息,生成包含这多个视频的播放文件的地址的第二播放索引文件并发送给视频客户端,以使视频客户端根据该第二播放索引文件中包括的播放文件的地址顺序获取并进行播放,因此可以减少视频客户端为获取多个视频的对应的播放文件的地址而与服务器侧进行的交互次数,提高视频播放的效率,减少因交互而造成的资源的消耗。

在图2所示的实施例中,该视频的标识信息可以为所述视频的视频标识符(id)。在收到该多个视频的视频id后,根据预存的视频id和播放索引文件之间的对应关系,根据所述多个视频的视频id获取其各自对应的所述第一播放索引文件。

在本申请一实施例中,可以是在判定一个视频播放请求中包括多个视频的标识信息时确定视频客户端以拼接方式播放所述多个视频,也可以是在从该视频播放请求获取到指示以拼接方式播放所述多个视频的信息时,确定该视频客户端以拼接方式播放所述多个视频。在确定以拼接方式播放所述多个视频的信息时,根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件。

在本申请一实施例中,一个播放文件的地址可以包括:片头文件的地址,片尾文件的地址和剧集文件的地址。在生成第二播放索引文件时,可以在生成的播放索引文件中包含每个播放文件的片头文件的地址,片尾文件的地址以及剧集文件的地址。也可以只包含剧集文件的地址。视频处理服务器可以根据预先配置选择生成包含每个播放文件的片头文件的地址,片尾文件的地址以及剧集文件的地址的第二播放索引文件,也可以选择生成仅包含每个播放文件的剧集文件的地址的第二播放索引文件。也可以在视频播放请求中携带指示获取每个播放文件的片头文件的地址,片尾文件的地址以及剧集文件的地址的信息也可以携带指示获取每个播放文件的剧集文件的地址的信息,视频处理服务器根据从视频播放请求中获取的指示信息生成第二播放索引文件。在本申请一实施例中,可以在视频播放请求中携带:指示获取部分播放文件的片头文件的地址,片尾文件的地址以及剧集文件的地址的信息,以及指示获取另外一部分播放文件的部分地址,例如片头文件的地址,和/或片尾文件的地址,和/或剧集文件的地址的信息。根据本实施例中的定制包含的播放文件的地址的方式,可以实现不发送部分播放文件的地址,因此视频客户端无需播放根据这部分地址获取的视频,可以减少需要获取的视频的量,以及避免为获取这部分视频而消耗的系统资源以及网络资源。

在本申请一实施例中,可以在视频播放请求中携带视频播放顺序指令,这样可以根据该视频播放顺序指令设置第二播放索引文件中视频的播放文件的地址的顺序。在本申请一实施例中,默认是根据获取的各视频的视频id依次获取其对应的第一播放索引文件,按照获取到各视频的第一播放索引文件的顺序依次排列所述各第一播放索引文件包括的播放文件的地址在所述第二播放索引文件中的顺序。在本实施中,该视频客户端可以指定视频播放顺序,这样视频处理服务器就可以不按照上述默认方式而是按照该视频播放顺序指令指定的顺序设置各播放文件的地址在第二播放索引文件中的顺序。

在本申请一实施例中,视频处理服务器可以生成一个第二播放索引文件并在一次传输中发送给视频客户端;也可以生成一个第二播放索引文件,并把该第二播放索引文件分割成多个播放索引子文件,并在一次或多次传输中将分割成的播放索引子文件发送给视频客户端,每个播放索引子文件包含第二播放索引文件中的一部分播放文件的地址,且分割得到的所有播放索引子文件所包括的播放文件的地址与第二播放索引文件中包括的播放文件的地址相同;也可以是生成多个第二播放索引文件,并在一次或多次传输中发送给该视频客户端,且每个第二播放索引文件包含所有视频的第一播放索引文件中包括的播放文件的地址的一部分地址,生成的所有第二播放索引文件所包括的播放文件的地址与所有视频的第一播放索引文件中包括的播放文件的地址相同。

当视频处理服务器将生成的任一个第二播放索引文件分割成多个播放索引子文件,且在最后一个播放索引子文件中设置索引文件结束标识符时,将生成的所述第二播放索引文件发送给所述视频客户端包括:发送一个播放索引子文件给所述视频客户端,在接收到所述视频客户端因未读取到所述索引文件结束标识符而发送的后续播放索引子文件获取请求时,将后一个播放索引子文件发送给所述视频客户端,直到将所有的播放索引子文件发送给所述视频客户端。根据该文件分割及发送方式,可以将先将一部分播放文件的地址通过播放索引子文件发送给视频客户端,这样视频客户端可以在请求后续播放索引子文件的过程中根据已收到的播放索引子文件中的播放文件的地址并行缓存和播放视频内容,根据此并行的方式进行处理,可以优化视频的播放效率。此外,通过这种文件分割及发送方式,可以避免因一次传输失败而导致重传所有的播放文件的地址,避免造成浪费。

当视频处理服务器生成多个第二播放索引文件,且在最后一个第二播放索引文件中设置索引文件结束标识符时,根据所述多个视频的第一播放索引文件生成多个第二播放索引文件,并将生成的所述第二播放索引文件发送给所述视频客户端包括:反复执行从所述多个视频的第一播放索引文件包括的播放文件的地址中读取其中一部分播放文件的地址,生成包括所述读取的播放文件的地址的第二播放索引文件并发送给所述视频客户端的操作,直到所述多个视频的第一播放索引文件包括的播放文件的地址均已被读取。同样,因每个第二播放索引文件包含所有播放文件的地址中的一部分地址,因此此种播放文件生成及传输方式的优点与上述将播放索引文件进行分割及分次传输的方式相同。

如图3所示,图3为本申请实施例的一种视频处理方法的流程示意图。如图3所示,该方法包括如下步骤。

步骤301,响应于用户对播放界面上多个视频的选择,生成包括所述多个视频的标识信息的视频播放请求。

步骤302,将所述视频播放请求发送给视频处理服务器。

其中,所述视频处理服务器根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件,根据所述多个视频的第一播放索引文件生成一个或多个第二播放索引文件,每一视频的第一播放索引文件包括:所述视频所包括的播放文件的地址,所述一个或多个第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址。

步骤303,从所述视频处理服务器接收所述一个或多个第二播放索引文件。

步骤304,根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放。

在本实施例中,响应于用户对多个视频的选择,可以生成包含这多个视频的标识信息的视频播放请求并发送给视频处理服务器,从该视频处理服务器接收生成的包含这多个视频中每个视频的所有或部分播放文件的地址的第二播放索引文件,根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放。根据实施例的技术方案,可以在一个视频播放请求中请求获取多个视频所包含的播放文件的地址。因此可以减少视频客户端为获取多个视频的对应的播放文件的地址而与服务器侧进行的交互次数,提高视频播放的效率,减少因交互而造成的资源的消耗。

在本申请一实施例中,所述视频播放请求进一步包括:指示以拼接方式播放所述多个视频的信息,以使所述视频处理服务器获取并根据所述多个视频的第一播放索引文件生成所述一个或多个第二播放索引文件。

在本申请一实施例中,根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放包括:顺序读取所述第二播放索引文件中每个视频的播放文件的地址;根据所述每个视频的播放文件的地址依次缓存并连续播放所述播放文件。在本实施例中,通过根据视频的播放文件的地址顺序缓存播放文件并连续播放缓存到的播放文件可以避免不连续播放造成的资源浪费。例如,在不连续播放过程中,在播完一个视频后需要关闭该播放进程,在播放一个新的视频时需要再重新创建一个新的播放进程,关闭及重新创建播放进程需要耗费系统的资源和时间。

在本申请一实施例中,所述视频处理服务器将生成的任一个第二播放索引文件分割成多个播放索引子文件,并在最后一个播放索引子文件中设置索引文件结束标识符。从所述视频处理服务器接收所述第二播放索引文件,根据所述第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放的方法包括:从所述视频处理服务器接收一个播放索引子文件,根据所述接收到的播放索引子文件中包括的播放文件的地址依次获取播放文件并进行播放,在没有读取到所述索引文件结束标识符时,向所述视频处理服务器发送后续播放索引子文件获取请求以请求获取后续的播放索引子文件,并在读取到所述索引文件结束标识符并已播放完获取到的所有播放文件后结束本流程。

在本申请一实施例中,从所述视频处理服务器接收所述多个第二播放索引文件,根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放包括:其中,所述多个第二播放索引文件中的最后一个包括:索引文件结束标识符;当从所述视频处理服务器获取到一个第二播放索引文件时,所述获取到的第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址中的部分播放文件的地址,根据所述部分播放文件的地址获取对应的播放文件并进行播放,直到读取到所述索引文件结束标识符,并在已播放完获取的所有播放文件后结束本流程。

图4为本申请实施例提供的一种视频处理方法的流程示意图。如图4所示,该方法包括如下步骤。

步骤401,视频客户端响应于用户对播放界面上两个视频的选择,生成包括这两个视频的标识信息的视频播放请求。

在本实施例中,该视频客户端可以为运行在pc,笔记本电脑、手机、平板电脑或智能电视等终端设备上的视频播放器。如图5所示,图5为用户对视频客户端的播放界面上的多个视频进行选择的示意图。如图5所示,在该播放界面上,显示7个视频,分别是第一集至第七集的选择按钮。第当一和第二视频,即第一和第二集被选中时,在该播放界面上第一集和第二集的显示框均以加黑加粗的虚线形式显示出来。

在本申请一实施例中,该视频的标识信息可以为该视频的视频标识符(id)。在本步骤中,该多个视频的视频id分别包括:第一集的id,即“u0375”和第二集的id,即“u0678”。

步骤402,该视频客户端将该视频播放请求发送给该视频处理服务器。

步骤403,该视频处理服务器根据该两个视频的视频id获取这两个视频各自的播放索引文件。

在本步骤中,该视频处理服务器可以根据预存的视频id和播放索引文件之间的对应关系,根据该多个视频的视频id获取各自对应的第一播放索引文件。在本申请一实施例中,也可以在视频播放请求中携带专辑id和视频id,那么视频处理服务器则根据专辑id、视频id和播放索引文件之间的对应关系查找到对应的播放索引文件。

在本实施例中,该视频处理服务器根据“u0375”和“u0678”分别查找到第一集播放索引文件和第二集播放索引文件。

其中,第一集播放索引文件,即播放索引文件1如下:

#ext-x-version:3//表示该第一集播放索引文件所采用的版本号;

#ext-x-media-sequence:0//表示该第一集播放索引文件中第一个播放文件的序号;

#ext-x-targetduration:15//表示每个播放文件,即传输流(transportstream,ts)的最大播放时长(duration);

#ext-x-playlist-type:vod//表示该视频的播放类型,此例中的播放类型为视频点播(videoondemand,vod);

#extinf:12.000//表示当前播放文件的播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.0.ts?ugc=1&ga=0&gv=0&start=0&end=12000#extinf:12.000//表示第一个播放文件ts10的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第二个播放文件ts11的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第三个播放文件ts12的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.3.ts?ugc=1&ga=0&gv=0&start=36000&end=48000//表示第四个播放文件ts13的地址;

#ext-x-endlist//表示第一集播放索引文件结束标识符。

其中,在上述四个播放文件中,播放文件ts10为片头文件的地址,播放文件ts11和ts12为剧集文件的地址,播放文件ts13为片尾文件的地址。

第二集播放索引文件,即播放索引文件2如下:

#ext-x-version:3//表示该第二集播放索引文件所采用的版本号;

#ext-x-media-sequence:0//表示该第二集播放索引文件中第一个播放文件的序号;

#ext-x-targetduration:15//表示每个播放文件,即传输流(transportstream,ts)的最大播放时长(duration);

#ext-x-playlist-type:vod//表示该视频的播放类型,此例中的播放类型为视频点播(videoondemand,vod);

#extinf:12.000//表示当前播放文件的播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.0.ts?ugc=1&ga=0&gv=0&start=0&end=12000#extinf:12.000//表示第一个播放文件ts20的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第二个播放文件ts21的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第三个播放文件ts22的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.3.ts?ugc=1&ga=0&gv=0&start=36000&end=48000//表示第四个播放文件ts23的地址;

#ext-x-endlist//表示第二集播放索引文件结束标识符。

其中,在上述四个播放文件中,播放文件ts20为片头文件的地址,播放文件ts21和ts22为剧集文件的地址,播放文件ts23为片尾文件的地址。

在上述第一集播放索引文件和第二集播放索引文件中,均包括各个播放文件的地址,第一个播放文件的序号和播放索引文件结束标识符,除此之外还可以进一步包括上述播放索引文件所采用的版本号,每个播放文件的最大播放时长,视频的播放类型,当前播放文件的播放时长等。

步骤404,该视频处理服务器确定这两个视频的播放类型为拼接播放模式。

拼接播放模式是指在一次请求中请求获取多个视频的播放文件的地址,并以连续的方式依次获取这多个视频的播放文件,并进行连续播放。在本步骤中,在拼接播放模式下,以本实施例中的两个视频的播放为例,在视频处理服务器侧,接收这两个视频的id,即“u0375”和“u0678”,根据u0375”和“u0678”分别查找到第一集播放索引文件和第二集播放索引文件,根据第一集播放索引文件和第二集播放索引文件生成包含第一集和第二集的播放文件的地址的一二集播放索引文件,发送给该视频客户端。在该视频客户端,首先在发起的视频播放请求中携带这两个视频的id,即“u0375”和“u0678”,从该视频处理服务器接收该一二集播放索引文件,根据该一二集播放索引文件中包含的第一集和第二集的播放文件的地址逐个缓存和播放第一和第二集的内容。

在本实施例中,确定这两个视频的播放类型为拼接播放模式方法可以为:当该视频处理服务器在一个视频播放请求中接收到两个视频的id,根据预先的配置判定为这两个视频采用拼接播放模式;也可以是当该视频处理服务器确定该视频播放请求中包括指示以拼接方式播放所述两个视频的信息时,确定为这两个视频采用拼接播放模式。

步骤405,该视频处理服务器根据这两个视频的播放索引文件,即第一集播放索引文件和第二集播放索文件生成一二集播放索引文件,并将该一二集播放索引文件发送给该视频客户端。

在本实施例中,该一二集播放索引文件可以包括第一集播放索引文件中的部分或所有播放文件的地址以及第二集播放索引文件中部分或所有播放文件的地址。

在本申请一实施例中,该视频处理服务器可以根据预先的配置确定要生成包含第一集播放索引文件以及第二集播放索引文件中所有播放文件的地址的一二集播放索引文件,该一二集播放索引文件,即播放索引文件3如下:

#ext-x-version:3//表示该一二集播放索引文件所采用的版本号;

#ext-x-media-sequence:0//表示该一二集播放索引文件中第一个播放文件的序号;

#ext-x-targetduration:15//表示每个播放文件,即传输流(transportstream,ts)的最大播放时长(duration);

#ext-x-playlist-type:vod//表示该视频的播放类型,此例中的播放类型为视频点播(videoondemand,vod);

#extinf:12.000//表示当前播放文件的播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.0.ts?ugc=1&ga=0&gv=0&start=0&end=12000#extinf:12.000//表示第一集第一个播放文件ts10的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第一集第二个播放文件ts11的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第一集第三个播放文件ts12的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.3.ts?ugc=1&ga=0&gv=0&start=36000&end=48000//表示第一集第四个播放文件ts13的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.0.ts?ugc=1&ga=0&gv=0&start=0&end=12000#extinf:12.000//表示第二集第一个播放文件ts20的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第二集第二个播放文件ts21的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第二集第三个播放文件ts22的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.3.ts?ugc=1&ga=0&gv=0&start=36000&end=48000//表示第二集第四个播放文件ts23的地址;

#ext-x-endlist//表示该一二集播放索引文件结束标识符。

在本申请一实施例中,该视频处理服务器可以根据预先的配置确定要生成包含第一集播放索引文件以及第二集播放索引文件中部分播放文件的地址的一二集播放索引文件,例如该一二集播放索引文件仅包含剧集文件的地址,即剧集文件ts11,ts12,ts21和ts22的地址,不包含片头文件的地址ts10和ts20以及片尾文件的地址ts13和ts23。该生成的一二集播放索引文件,即播放索引文件4如下:

#ext-x-version:3//表示该一二集播放索引文件所采用的版本号;

#ext-x-media-sequence:1//表示该一二集播放索引文件中第一个播放文件的序号;

#ext-x-targetduration:15//表示每个播放文件,即传输流(transportstream,ts)的最大播放时长(duration);

#ext-x-playlist-type:vod//表示该视频的播放类型,此例中的播放类型为视频点播(videoondemand,vod);

#extinf:12.000//表示当前播放文件的播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第一集第二个播放文件ts11的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第一集第三个播放文件ts12的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第二集第二个播放文件ts21的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第二集第三个播放文件ts22的地址及当前播放时长;

#ext-x-endlist//表示该一二集播放索引文件结束标识符。

在本申请一实施例中,步骤401生成的视频播放请求还可以进一步包括:视频播放顺序指令,例如指令先播放第二集再播放第一集,那么在生成上述一二集播放索引文件的过程中,该视频处理服务器会根据该视频播放顺序指令放置索引文件中播放文件的地址的顺序。例如,如果该视频播放顺序指令指示先播放第二集再播放第一集,则该视频处理服务器将第二集的播放文件的地址放在第一集的播放文件的地址的前面。例如,

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第二集第二个播放文件ts21的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第二集第三个播放文件ts22的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第一集第二个播放文件ts11的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第一集第三个播放文件ts12的地址及当前播放时长。

在本申请实施例中,可以通过如下三种方式生成一个或多个一二集播放索引文件以及将该一个或多个一二集播放索引文件通过一次或多次传输发送给该视频客户端。

第一种方式:该视频处理服务器获取这两个视频的id,即“u0375”和“u0678”,分别获取上述播放索引文件1和播放索引文件2,根据该播放索引文件1和播放索引文件2生成上述播放索引文件3或4并将该播放索引文件3或4在一次传输中发送给该视频客户端。

第二种方式:例如,该视频处理服务器按照上述第一种方式生成播放索引文件4,并将该播放索引文件4分割成如下播放索引子文件41和播放索引子文件42。

该播放索引子文件41如下:

#ext-x-version:3//表示该一二集播放索引文件所采用的版本号;

#ext-x-media-sequence:1//表示该一二集播放索引文件中第一个播放文件的序号,即ts11;

#ext-x-targetduration:15//表示每个播放文件,即传输流(transportstream,ts)的最大播放时长(duration);

#ext-x-playlist-type:vod//表示该视频的播放类型,此例中的播放类型为视频点播(videoondemand,vod);

#extinf:12.000//表示当前播放文件的播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第一集第二个播放文件ts11的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0375enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第一集第三个播放文件ts12的地址及当前播放时长;

在该播放索引子文件41的结尾处不包含该一二集播放索引文件结束标识符。

该播放索引子文件42如下:

#ext-x-version:3//表示该一二集播放索引文件所采用的版本号;

#ext-x-media-sequence:1//表示该一二集播放索引文件中第一个播放文件的序号,即ts21;

#ext-x-targetduration:15//表示每个播放文件,即传输流(transportstream,ts)的最大播放时长(duration);

#ext-x-playlist-type:vod//表示该视频的播放类型,此例中的播放类型为视频点播(videoondemand,vod);

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000#extinf:12.000//表示第二集第二个播放文件ts21的地址及当前播放时长;

http://xxxx:xxxx/vodhls/xxx/u0678enarfl_mp4_av.0.2.ts?ugc=1&ga=0&gv=0&start=24000&end=36000#extinf:12.000//表示第二集第三个播放文件ts22的地址及当前播放时长;

#ext-x-endlist//表示该一二集播放索引文件结束标识符。

在该播放索引子文件42的最后包括该一二集播放索引文件结束标识符,表示该一二集播放索引文件不再包括其他内容。

在该方式下,该视频处理服务器先将该播放索引子文件41发送给该视频客户端。当该视频客户端在读取该播放索引子文件41后没有读到该一二集播放索引文件结束标识符,则向该视频处理服务器请求后续播放索引文件。该视频处理服务器在接收到该请求后将该播放索引子文件42发送给视频客户端。

第三种方式,该视频处理服务器会生成多个一二集播放索引文件,边生成边发送。例如,该视频处理服务器读取到该视频播放请求中包含两个视频id,即“u0375”和“u0678”,则获取该第一集的id,即“u0375”,根据该第一集的id查找该该第一集包括的各播放文件的地址,即ts10,ts11,ts12和ts13,生成包含该第一集的部分或所有播放文件的地址的一二集播放索引文件1,其中,该一二集播放索引文件1不包含一二集播放索引文件结束标识符,并将该一二集播放索引文件1发送给该视频客户端。该视频处理服务器根据同样的方法生成包含该第二集的部分或所有播放文件的地址的一二集播放索引文件2,其中,该一二集播放索引文件2包含该一二集播放索引文件结束标识符,并将该一二集播放索引文件2发送给该视频客户端。

在上述任一播放索引文件或播放索引子文件中包括的播放文件的地址的格式可以不包括前面的服务器路径,例如http://xxxx:xxxx/vodhls/xxx,即仅包含后面从视频id开始的部分,例如,u0375enarfl_mp4_av.0.1.ts?ugc=1&ga=0&gv=0&start=12000&end=24000。该视频客户端在接收到不包含服务器路径的播放文件地址后,在向视频提供服务器请求播放文件之前,获取预存的服务器路径,将获取到的服务器路径和接收到的播放文件的地址拼接在一起,组成上述播放索引文件及播放索引子文件中示出的播放文件的地址,再根据该播放文件的地址从视频提供服务器获取播放文件。

步骤406,该视频客户端读取该一二集播放索引文件中的播放文件的地址,并根据各播放文件的地址向视频提供服务器发送播放文件获取请求。

在本申请实施例中,如果播放文件由视频处理服务器提供,则该视频客户端向该视频处理服务器发送播放文件获取请求。

步骤407,该视频客户端接收并播放视频提供服务器发送的播放文件。

在步骤405中,如果视频处理服务器根据第一种方式向该视频客户端发送该播放索引文件3或4,则该视频客户端按照该播放索引文件3或4中播放文件的地址的顺序,依次从该视频提供服务器获取播放文件。

在上述步骤405中,如果视频处理服务器根据第二种方式向该视频客户端发送播放索引子文件41和42。该视频客户端在接收到该播放索引子文件41后,依次读取其中的播放文件的地址,并依次向该视频提供服务器获取对应的播放文件,并缓存和播放对应的播放文件。该视频客户端判断是否在该播放索引子文件41中读取到该一二集播放索引文件结束标识符。如果未读取到该一二集播放索引文件结束标识符,则向该视频处理服务器发送后续索引文件获取请求,并接收该视频处理服务器发送的播放索引子文件42,依次读取其中的播放文件的地址,并从该视频提供服务器获取对应的播放文件,缓存并连续播放获取到的播放文件,并在该播放索引子文件42读取到该一二集播放索引文件结束标识符,在播放完所有的播放文件后结束本流程。

在上述步骤405中,当该视频处理服务器以上述第三种方式边生成边发送多个一二集播放索引文件时,则该视频客户端在接收到一二集播放索引文件1后,按照该索引文件包含的播放文件的地址依次从视频提供服务器获取,缓存并连续播放播放文件。在请求或未请求的情况下从该视频处理服务器获取后续的一二集播放索引文件,直到读取到一二集播放索引文件结束标识符,在播放完所有的播放文件后结束本流程。

图6为本申请实施例提供的一种视频处理服务器的结构示意图。如图6所示,该视频处理服务器包括:

接收模块601,用于从视频客户端接收包括多个视频的标识信息的视频播放请求;

播放索引文件获取模块602,用于根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件,其中,每一视频的第一播放索引文件包括:所述视频所包括的播放文件的地址;

播放索引文件生成模块603,用于根据所述多个视频的第一播放索引文件生成一个或多个第二播放索引文件,所述一个或多个第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址;

发送模块604,用于将生成的所述第二播放索引文件发送给所述视频客户端,以使所述视频客户端根据所述第二播放索引文件包括的播放文件的地址获取所述播放文件并进行播放。

在本申请一实施例中,所述视频的标识信息包括:所述视频的视频标识符id;所述播放索引文件获取模块602,进一步用于根据预存的视频id和播放索引文件之间的对应关系,根据所述多个视频的视频id获取其各自对应的所述第一播放索引文件。

在本申请一实施例中,所述视频播放请求进一步包括:指示以拼接方式播放所述多个视频的信息;所述播放索引文件获取模块602,进一步用于当确定所述视频播放请求包括所述指示以拼接方式播放所述多个视频的信息时,执行所述根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件的处理。

在本申请一实施例中,所述播放文件的地址包括:片头文件的地址,片尾文件的地址和剧集文件的地址;所述播放索引文件生成模块603,进一步用于从所述多个视频各自的第一播放索引文件中获取每一视频的剧集文件的地址,生成包含所述多个视频的剧集文件的地址的所述第二播放索引文件。

在本申请一实施例中,所述视频播放请求进一步包括:视频播放顺序指令;所述播放索引文件生成模块603,进一步用于按照所述视频播放顺序指令设置所述一个或多个第二播放索引文件中所述视频的播放文件的地址的顺序。

在本申请一实施例中,该视频处理服务器进一步包括:

分割模块605,用于将所述任一个第二播放索引文件分割成多个播放索引子文件,并在最后一个播放索引子文件中设置索引文件结束标识符;所述多个播放索引子文件包括:所述被分割的第二播放索引文件中包括的播放文件的地址;

所述发送模块604,进一步用于发送一个播放索引子文件给所述视频客户端,在接收到所述视频客户端因未读取到所述索引文件结束标识符而发送的后续播放索引子文件获取请求时,将后一个播放索引子文件发送给所述视频客户端,直到将所有的播放索引子文件发送给所述视频客户端。

在本申请一实施例中,所述播放索引文件生成模块603,进一步用于反复执行从所述多个视频的第一播放索引文件包括的播放文件的地址中读取其中一部分播放文件的地址,生成包括所述读取的播放文件的地址的第二播放索引文件,并通过所述发送模块604发送给所述视频客户端的操作;直到所述多个视频的第一播放索引文件包括的播放文件的地址均已被读取。

图7为本申请实施例提供的一种视频客户端的结构示意图。如图7所示,该视频客户端包括:

视频播放请求生成模块701,用于响应于用户对播放界面上多个视频的选择,生成包括所述多个视频的标识信息的视频播放请求;

发送模块702,用于将所述视频播放请求发送给视频处理服务器;其中,所述视频处理服务器根据所述多个视频的标识信息获取所述多个视频各自的第一播放索引文件,根据所述多个视频的第一播放索引文件生成一个或多个第二播放索引文件,每一视频的第一播放索引文件包括:所述视频所包括的播放文件的地址,所述一个或多个第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址;

播放索引文件接收模块703,用于从所述视频处理服务器接收所述一个或多个第二播放索引文件;

视频获取及播放模块704,用于根据所述接收到的第二播放索引文件中每个视频的播放文件的地址依次获取所述播放文件并进行播放。

在本申请一实施例中,所述视频播放请求进一步包括:指示以拼接方式播放所述多个视频的信息,以使所述视频处理服务器获取并根据所述多个视频的第一播放索引文件生成所述一个或多个第二播放索引文件。

在本申请一实施例中,所述视频获取及播放模块704,进一步用于顺序读取所述第二播放索引文件中每个视频的播放文件的地址,根据所述每个视频的播放文件的地址依次缓存并连续播放所述播放文件。

在本申请一实施例中,所述视频处理服务器将所述任一个第二播放索引文件分割成多个播放索引子文件,并在最后一个播放索引子文件中设置索引文件结束标识符;所述播放索引文件接收模块703,进一步用于从所述视频处理服务器接收一个播放索引子文件,指令所述视频获取及播放模块704根据所述接收到的播放索引子文件中包括的播放文件的地址依次获取播放文件并进行播放,在没有读取到所述索引文件结束标识符时,向所述视频处理服务器发送后续播放索引子文件获取请求以请求获取后续的播放索引子文件,并在读取到所述索引文件结束标识符,停止向所述视频处理服务器发送所述后续播放索引子文件获取请求。

在本申请一实施例中,所述多个第二播放索引文件的最后一个中包括:索引文件结束标识符;所述播放索引文件接收模块703,进一步用于反复执行从所述视频处理服务器获取一个第二播放索引文件,所述获取到的第二播放索引文件包括:所述多个视频中每个视频的所有或部分播放文件的地址中的部分播放文件的地址,指令所述视频获取及播放模块704根据所述部分播放文件的地址获取对应的播放文件并进行播放,直到读取到所述索引文件结束标识符。

图8为本申请实施例提供的一种视频处理服务器的结构示意图。如图8所示,该视频处理服务器包括:

处理器801、非易失性计算机可读存储器802、显示单元803、网络通信接口804。这些组件通过总线805进行通信。

本实施例中,存储器802中存储有多个程序模块,包括操作系统806、网络通信模块807和应用程序808。

处理器801可以读取存储器802中的应用程序所包括的各种模块(图中未示出)来执行该视频处理服务器各种功能应用以及数据处理。本实施例中的处理器801可以为一个,也可以为多个,其可以为cpu,处理单元/模块,asic,逻辑模块或可编程门阵列等。

应用程序808可包括:视频处理模块809。该视频处理模块809可包括图6所示服务器中的各个功能模块形成的计算机可执行指令集809-1及对应的元数据和启发式算法809-2。这些计算机可执行指令集可以由所述处理器801执行并完成图2和图4所示方法或图6所示装服务器的功能。

在本实施例中,网络通信接口804与网络通信模块807相配合完成输入信息处理设备的各种网络信号的收发。

显示单元803具有一显示面板,例如液晶显示屏,用于完成相关信息的输入及显示。

图9为本申请实施例提供的一种视频客户端的结构示意图。该视频客户端包括:处理器901、非易失性计算机可读存储器902、显示单元903、网络通信接口904。这些组件通过总线905进行通信。

本实施例中,存储器902中存储有多个程序模块,包括操作系统906、网络通信模块907和应用程序908。

处理器901可以读取存储器902中的应用程序所包括的各种模块(图中未示出)来执行视频客户端的各种功能应用以及数据处理。本实施例中的处理器901可以为一个,也可以为多个,其可以为cpu,处理单元/模块,asic,逻辑模块或可编程门阵列等。

其中,操作系统906可以为:windows操作系统、android操作系统或苹果iphoneos操作系统。

应用程序908可包括:视频客户端模块909。该视频客户端模块909可包括图7所示视频客户端中的各个功能模块形成的计算机可执行指令集909-1及对应的元数据和启发式算法909-2。这些计算机可执行指令集可以由所述处理器901执行并完成图3和图4所示方法或图7所示装置的功能。

在本实施例中,网络通信接口904与网络通信模块907相配合完成数据重放判断服务器的各种网络信号的收发。

显示单元903具有一显示面板,用于完成相关信息的输入及显示。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述各实施例的功能模块可以位于一个终端或网络节点,或者也可以分布到多个终端或网络节点上。

另外,本申请的每一个实施例可以通过如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如cd-rom等)、磁光存储介质(如mo等)等。

因此本申请还提供了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本申请上述方法的任何一种实施例。

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

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

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