视频资源预处理方法及装置、视频资源下载方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及一种视频资源预处理方法。本申请同时涉及一种视频资源预处理装置,一种视频资源下载方法及装置,以及一种视频资源预处理及下载系统,两种计算设备,以及两种计算机可读存储介质。
背景技术
现有视频播放应用程序越来越受到用户的追捧,视频播放应用程序在播放视频时,客户端需要先加载视频资源文件再播放视频。为了实现良好的视频呈现效果,现存在一种播放方法,即在视频开始播放前的视频窗口动态展示视频中特定的图像帧,使得用户可以通过优先展示出的图像帧简要获取视频信息;但是,由于视频播放需要引用的图片资源过多,导致待播放视频的视频资源文件过大,客户端在下载视频资源文件时会消耗较多时间,若在下载完全部的视频资源文件后再展示关键帧,则关键帧展示的等待时间过长,用户体验差。
发明内容
有鉴于此,本申请实施例提供了一种视频资源预处理方法,以解决现有技术中存在的技术缺陷。本申请实施例同时提供了一种视频资源预处理装置,一种视频资源下载方法及装置,以及一种视频资源预处理及下载系统,两种计算设备,以及两种计算机可读存储介质。
本申请实施例公开了一种视频资源预处理方法,包括:
将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表;
将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器;
接收所述资源服务器返回的所述资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
根据所述资源链接地址生成对应的资源地址元数据并向客户端下发。
可选的,所述将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表,包括:
解析所述视频资源文件,获得所述资源配置文件和图像帧;
解析所述资源配置文件,获得所述图像帧的配置数据;
根据所述图像帧的配置数据将所述图像帧划分为关键帧和非关键帧,并生成所述关键帧的所述关键帧列表和所述非关键帧的所述非关键帧列表。
可选的,所述解析所述视频资源文件,获得所述资源配置文件和图像帧子步骤执行之后,且解析所述资源配置文件,获得图像帧的配置数据子步骤执行之前,包括:
通过对所述图像帧进行外链的方式获取所述图像帧对应的统一资源定位符。
可选的,所述三者的资源链接地址,包括:
所述资源配置文件的资源链接地址,所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表。
可选的,所述根据所述资源链接地址生成对应的资源地址元数据并向客户端下发,包括:
生成包含所述资源配置文件的资源链接地址、所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表在内的资源地址元数据;
将所述资源地址元数据向所述客户端下发。
可选的,所述根据所述资源链接地址生成对应的资源地址元数据并向客户端下发,包括:
根据所述资源配置文件的资源链接地址生成所述资源配置文件的资源地址元数据,根据所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表生成所述关键帧列表的资源地址元数据,根据所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表生成所述非关键帧列表的资源地址元数据;
将所述资源配置文件的资源地址元数据、所述关键帧列表的资源地址元数据和所述非关键帧列表的资源地址元数据下发给客户端。
可选的,所述将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器,包括:
对所述资源配置文件、关键帧列表和非关键帧列表进行压缩,获得压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表;
将所述压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表上传至所述资源服务器。
本申请提供一种视频资源预处理装置,包括:
解析模块,被配置为将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表;
上传模块,被配置为将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器;
地址接收模块,被配置为接收所述资源服务器返回的所述资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
元数据生成模块,被配置为根据所述资源链接地址生成对应的资源地址元数据并向客户端下发。
本申请实施例公开了一种视频资源下载方法,包括:
接收服务端下发的视频的资源地址元数据信息;
解析所述资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
可选的,所述下载顺序,包括:
所述资源配置文件和所述关键帧在所述非关键帧下载之前进行下载。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
下载所述资源配置文件,并按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;
按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧。
可选的,下载所述资源配置文件,以及按照所述关键帧在所述关键帧列表中的排序下载所述关键帧子步骤执行之后,包括:
在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程;
根据分配的下载线程下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程,包括:
获取用于进行资源下载的下载线程数目;
根据所述下载线程数目为所述资源配置文件和所述关键帧分配下载线程;其中,优先为资源配置文件分配1个下载线程,将优先分配之后空闲的下载线程按照所述关键帧在所述关键帧列表中的排序为每个关键帧分别分配1个下载线程;
若每个关键帧都被分配完下载线程之后存在空闲的下载线程,则将空闲的下载线程按照所述非关键帧在所述非关键帧列表中的排序为每个非关键帧分别分配1个下载线程。
可选的,所述根据分配的下载线程下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
基于分配的下载线程下载所述资源配置文件,以及基于每个关键帧被分配的下载线程顺序下载所述关键帧;
基于每个非关键帧被分配的下载线程顺序下载所述非关键帧。
可选的,基于每个非关键帧被分配的下载线程顺序下载所述非关键帧步骤执行之后,包括:
在所述非关键帧下载完成的情况下,检测是否接受到视频播放指令;
若是,基于所述资源配置文件、所述关键帧和所述非关键帧播放所述视频。
可选的,所述下载顺序,包括:
所述资源配置文件在所述关键帧下载之前进行下载,且所述关键帧在所述非关键帧下载之前进行下载。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
下载所述资源配置文件;
按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;
在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧;
按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧;
在所述非关键帧下载完成的情况下,播放所述视频。
本申请提供一种视频资源下载装置,包括:
元数据接收模块,被配置为接收服务端下发的视频的资源地址元数据信息;
地址解析模块,被配置为解析所述资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
下载模块,被配置为根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
本申请提供一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表;
将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器;
接收所述资源服务器返回的所述资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
根据所述资源链接地址生成对应的资源地址元数据并向客户端下发。
本申请提供第二种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收服务端下发的视频的资源地址元数据信息;
解析所述资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
本申请提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述视频资源预处理方法的步骤。
本申请提供第二种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述视频资源下载方法的步骤。
与现有技术相比,本申请具有如下优点:
本申请提供一种视频资源预处理方法,包括:将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表;将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器;接收所述资源服务器返回的所述资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;根据所述资源链接地址生成对应的资源地址元数据并向客户端下发。
本申请提供的视频资源预处理方法,是由服务端将待播放视频的视频资源文件解析为资源配置文件、关键帧和非关键帧,将这三者上传至资源服务器并接收资源服务器返回的这三者的资源链接地址对应的资源地址元数据并将资源地址元数据向客户端下发,以供客户端下载资源配置文件、关键帧和非关键帧,通过将视频资源文件划分为资源配置文件、关键帧和非关键帧,使得客户端在下载时可以先下载资源配置文件和关键帧,再下载非关键帧,以达到资源配置文件和关键帧下载完成时即可展示关键帧,减少关键帧展示的等待时间的目的。
本申请提供一种视频资源下载方法,包括:接收服务端下发的视频的资源地址元数据信息;解析所述资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
本申请提供的视频资源下载方法,是由客户端根据接收到的资源地址元数据信息从资源服务器下载资源配置文件、关键帧和非关键帧,通过先下载资源配置文件和关键帧,再下载非关键帧,使得在资源配置文件和关键帧下载完成时即可展示关键帧,减少关键帧展示的等待时间。
附图说明
图1是本申请实施例提供的一种视频资源预处理方法执行流程图;
图2是本申请实施例提供的一种视频资源预处理过程的执行流程图;
图3是本申请实施例提供的一种视频资源预处理装置的示意图;
图4是本申请实施例提供的一种视频资源下载方法执行流程图;
图5是本申请实施例提供的一种客户端分配下载线程以及下载的时序图;
图6是本申请实施例提供的一种视频资源下载过程的执行流程图;
图7是本申请实施例提供的一种视频资源下载装置的示意图;
图8是本申请实施例提供的一种视频资源预处理及下载系统的结构框图;
图9是本申请实施例提供的一种计算设备的结构框图;
图10是本申请实施例提供的第二种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请提供一种视频资源预处理方法,本申请还提供一种视频资源预处理装置,以及一种视频资源下载方法及装置,一种视频资源预处理及下载系统,两种计算设备,以及两种计算机可读存储介质。以下分别结合本申请提供的实施例的附图逐一进行详细说明,并且对方法的各个步骤进行说明。
本申请提供的一种视频资源预处理方法实施例如下:
所述视频资源预处理方法由服务端执行,与之相配合的,下述提供了一种视频资源下载方法,该视频资源下载方法由客户端执行。
参照附图1,其示出了本实施例提供的一种视频资源预处理方法执行流程图;参照附图2,其示出了本实施例提供的一种视频资源预处理过程的执行流程图。
本申请提供的视频资源预处理方法,包括步骤S102至步骤S108。
步骤S102,将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表。
本申请实施例所述视频资源文件即包含视频播放所需资源的文件,由专门的视频播放程序接口去读取,并在视频播放程序中根据需要向用户展示,比如Lottie资源文件,Lottie资源文件是Lottie动画播放所需资源的文件,Lottie是一个面向iOS、Android、Web和React Native(一款移动应用开发框架)的动画代码库,Lottie通过解析AE(Adobe AfterEffect,一款视频后期特效和动画制作软件)导出的文件,实现在不同移动设备上基于HTML5(Hyper Text Markup Language 5,超文本标记语言5)页面呈现AE动画的效果;除Lottie资源文件外,还存在其他的视频资源文件,本实施例在此不做赘述。
视频资源文件中包含了资源配置文件和视频中的图像帧,资源配置文件包括图像帧在视频播放过程中的配置信息;在视频未开始播放时,存在一种优先在视频窗口动态展示特定图像帧的方式,通过选取合适的图像帧并动态展示,可以使用户迅速知晓视频的主要内容,加快了视频信息获取效率;根据视频展示出的图像帧和未展示出的图像帧,可将图像帧分为关键帧和非关键帧,所述关键帧即为待播放的视频在视频窗口展示出的图像帧,所述非关键帧即为待播放视频在视频窗口未展示出的图像帧。
比如,Lottie资源文件中包含资源配置文件和图像帧,资源配置文件就是Lottie动画的各图像帧在动画播放过程中的配置信息,比如动画的初始帧、动画结束帧、动画特效等等。在Lottie动画中,将初始帧选定为关键帧,将非初始帧选定为非关键帧,从而在动画展示界面,动态展示出初始帧,使用户根据初始帧知晓待播放动画的主要内容;除了可以根据图像帧的播放顺序来划分关键帧和非关键帧外,还可根据图像帧的配置数据的其他参数来划分关键帧和非关键帧,例如可以将整个动画中所有关键事件对应的图像帧作为关键帧,非关键事件对应的图像帧作为非关键帧,通过在动画展示界面动态展示出关键事件对应的关键帧,将动画中包含的关键事件展示出来,用户在未播放该动画的情况下即可知晓动画的关键事件。
具体的,本申请实施例提供的一种优选实施方式中,所述将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表,包括:解析所述视频资源文件,获得所述资源配置文件和图像帧;解析所述资源配置文件,获得所述图像帧的配置数据;根据所述图像帧的配置数据将所述图像帧划分为关键帧和非关键帧,并生成所述关键帧的所述关键帧列表和所述非关键帧的所述非关键帧列表。
由视频资源文件包含资源配置文件和视频中的图像帧可知,通过解析视频资源文件,可以将视频资源文件划分为资源配置文件和图像帧;由资源配置文件包括图像帧在视频播放过程中的配置信息可知,通过解析资源配置文件,可以获得图像帧在视频播放过程中的配置信息;从而可以根据图像帧的配置信息将图像帧分为关键帧和非关键帧,由上述对于关键帧和非关键帧的举例可知,关键帧和非关键帧都可以包括不止一个图像帧,再根据图像帧的播放顺序,将被划分为关键帧的不同图像帧根据关键帧的播放顺序生成按播放顺序从前到后排列的关键帧列表,将被划分为非关键帧的不同图像帧根据非关键帧的播放顺序生成按播放顺序从前到后排列的非关键帧列表。
例如,若有五个图像帧被划分为关键帧,这五个关键帧按照从前到后的播放顺序排列,分别是关键帧1、关键帧2、关键帧3、关键帧4和关键帧5,则关键帧列表如表1所示。
表1
序号 |
关键帧 |
1 |
关键帧1 |
2 |
关键帧2 |
3 |
关键帧3 |
4 |
关键帧4 |
5 |
关键帧5 |
同理可根据非关键帧的播放顺序生成具有固定排序的非关键帧列表。
以Lottie动画为例,将Lottie资源文件划分为资源配置文件和图像帧之后,通过解析资源配置文件,获得图像帧在视频播放过程中的配置信息,根据配置信息中的图像帧的播放时序,将用于动画第一帧展示的图片资源即首屏图片资源对应的图像帧作为关键帧并生成关键帧列表,将除关键帧外的其他图像帧作为非关键帧并生成非关键帧列表。
优选的,在所述解析所述视频资源文件,获得所述资源配置文件和图像帧子步骤执行之后,且解析所述资源配置文件,获得图像帧的配置数据子步骤执行之前,通过添加对所述图像帧进行外链的方式获取所述图像帧对应的统一资源定位符这一子步骤,实现将图像帧改为外链引用,因为后续步骤中服务端会将资源配置文件和图像帧上传至资源服务器供客户端下载,因而此举可减小客户端下载的视频资源文件的大小。
步骤S104,将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器。
服务端执行步骤S102将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表后,即可将被拆解为三部分的视频资源文件上传至资源服务器以供客户端下载,在上传之前,优选的,对所述资源配置文件、关键帧列表和非关键帧列表进行压缩,获得压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表;在此基础上,再将所述压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表上传至所述资源服务器,减小客户端下载的资源配置文件、关键帧列表和非关键帧列表三者的文件大小,减少客户端下载时间。
步骤S106,接收所述资源服务器返回的所述资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址。
服务端将资源配置文件、关键帧列表和非关键帧列表上传至资源服务器后,资源服务器会根据资源配置文件、关键帧列表和非关键帧列表这三者的存储位置生成这三者的资源链接地址,再将这三者的资源链接地址返回给服务端,于是服务端接收资源配置文件、关键帧列表和非关键帧列表这三者的资源链接地址。
优选的,所述三者的资源链接地址,包括:所述资源配置文件的资源链接地址,所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表。
资源配置文件、关键帧列表和非关键帧列表这三者的资源链接地址除了包括资源配置文件对应的链接地址外,还包括关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表以及非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表;资源配置文件的资源链接地址用Addr_C表示;假设关键帧列表中有m(1≤m)个关键帧,且这m个关键帧分别为K1,K2,K3,……,Km,则这m个关键帧K1,K2,K3,……,Km对应的资源链接地址分别用Addr_K1,Addr_K2,Addr_K3,……,Addr_Km表示,这m个资源链接地址按照其对应的关键帧在关键帧列表的排序组成m个关键帧的资源链接地址列表,即[Addr_K1,Addr_K2,Addr_K3,……,Addr_Km];假设非关键帧列表中有n(1≤n)个关键帧,且这n个非关键帧分别为NK1,NK2,NK3,……,NKn,则这n个非关键帧NK1,NK2,NK3,……,NKn对应的资源链接地址分别用Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn表示,这n个资源链接地址按照其对应的非关键帧在非关键帧列表的排序组成n个非关键帧的资源链接地址列表,即[Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn]。
步骤S108,根据所述资源链接地址生成对应的资源地址元数据并向客户端下发。
元数据充当电子式目录的作用,可协助对数据的检索过程,促进数据集的高效利用,采用元数据可便于数据共享。服务端获取到资源配置文件、关键帧列表和非关键帧列表这三者的资源链接地址后,根据这三者的资源链接地址生成对应的资源地址元数据,再向客户端下发。根据这三者的资源链接地址可生成这三者分别对应的三个资源地址元数据,也可生成包含这三者的资源地址在内的一个资源地址元数据。
基于此,本申请实施例提供的一种优选实施方式中,所述根据所述资源链接地址生成对应的资源地址元数据并向客户端下发,包括:
生成包含所述资源配置文件的资源链接地址、所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表在内的资源地址元数据;将所述资源地址元数据向所述客户端下发。
根据上述优选实施方式生成的资源地址元数据的格式可以表示为:
{
"configuration":Addr_C,
"keyframeList":[Addr_K1,Addr_K2,Addr_K3,……,Addr_Km],
"non-keyframeList":[Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn]
}
本申请实施例提供的另一种优选实施方式中,所述根据所述资源链接地址生成对应的资源地址元数据并向客户端下发,包括:
根据所述资源配置文件的资源链接地址生成所述资源配置文件的资源地址元数据,根据所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表生成所述关键帧列表的资源地址元数据,根据所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表生成所述非关键帧列表的资源地址元数据;将所述资源配置文件的资源地址元数据、所述关键帧列表的资源地址元数据和所述非关键帧列表的资源地址元数据下发给客户端。
根据上述优选实施方式生成的资源地址元数据的格式可以表示为:
{"configuration":Addr_C},
{"keyframeList":[Addr_K1,Addr_K2,Addr_K3,……,Addr_Km]},
{"non-keyframeList":[Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn]}。
下述结合附图2,以视频资源文件为Lottie资源文件为例,对本申请提供的视频资源预处理方法进行进一步说明,具体实现如下:
步骤S202,解析Lottie资源文件,获得资源配置文件和图像帧。
步骤S204,通过对图像帧进行外链的方式获取图像帧对应的统一资源定位符。
步骤S206,解析资源配置文件,获得图像帧的配置数据。
步骤S208,根据图像帧的配置数据将图像帧划分为关键帧和非关键帧,并生成关键帧的关键帧列表和非关键帧的非关键帧列表。
根据配置信息中图像帧的播放时序,将用于动画第一帧展示的图片资源即首屏图片资源对应的图像帧作为关键帧并生成关键帧列表,将除关键帧外的其他图像帧作为非关键帧并生成非关键帧列表。
其中,关键帧列表示如表1所示,非关键帧列表与关键帧列表格式相同。
步骤S210,对资源配置文件、关键帧列表和非关键帧列表进行压缩,获得压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表。
步骤S212,将压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表上传至资源服务器。
步骤S214,接收资源服务器返回的资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址。
所述三者的资源链接地址,包括:
资源配置文件的资源链接地址,关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表。
步骤S216,根据资源链接地址生成对应的资源地址元数据并向客户端下发。
生成包含资源配置文件的资源链接地址、关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表以及非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表在内的资源地址元数据;将资源地址元数据向所述客户端下发。
本申请提供的一种视频资源预处理装置实施例如下:
在上述的实施例中,提供了一种视频资源预处理方法,与之相对应的,本申请还提供了一种视频资源预处理装置,下面结合附图进行说明。
参照附图3,其示出了本申请提供的一种视频资源预处理装置的示意图。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种视频资源预处理装置,包括:
解析模块302,被配置为将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表;
上传模块304,被配置为将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器;
地址接收模块306,被配置为接收所述资源服务器返回的所述资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
元数据生成模块308,被配置为根据所述资源链接地址生成对应的资源地址元数据并向客户端下发。
可选的,所述解析模块302,包括:
解析子模块,被配置为解析所述视频资源文件,获得所述资源配置文件和图像帧;
配置数据获得子模块,被配置为解析所述资源配置文件,获得所述图像帧的配置数据;
划分子模块,被配置为根据所述图像帧的配置数据将所述图像帧划分为关键帧和非关键帧,并生成所述关键帧的所述关键帧列表和所述非关键帧的所述非关键帧列表。
可选的,所述解析模块302,还包括:
外链子模块,被配置为通过对所述图像帧进行外链的方式获取所述图像帧对应的统一资源定位符。
可选的,所述三者的资源链接地址,包括:
所述资源配置文件的资源链接地址,所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表。
可选的,所述元数据生成模块308,具体被配置为:
生成包含所述资源配置文件的资源链接地址、所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表在内的资源地址元数据;
将所述资源地址元数据向所述客户端下发。
可选的,所述元数据生成模块308,具体被配置为:
根据所述资源配置文件的资源链接地址生成所述资源配置文件的资源地址元数据,根据所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表生成所述关键帧列表的资源地址元数据,根据所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表生成所述非关键帧列表的资源地址元数据;
将所述资源配置文件的资源地址元数据、所述关键帧列表的资源地址元数据和所述非关键帧列表的资源地址元数据下发给客户端。
可选的,所述上传模块304,包括:
压缩子模块,被配置为对所述资源配置文件、关键帧列表和非关键帧列表进行压缩,获得压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表;
上传子模块,被配置为将所述压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表上传至所述资源服务器。
本申请提供的一种视频资源下载方法实施例如下:
在上述的实施例中,提供了一种视频资源预处理方法,该视频资源预处理方法由服务端执行,与之相配合的,本申请还提供了一种视频资源下载方法,该视频资源下载方法由客户端执行,阅读所述视频资源下载方法实施例请参照上述视频资源预处理方法实施例的对应说明。
参照附图4,其示出了本实施例提供的一种视频资源下载方法执行流程图;参照附图5,其示出了本实施例提供的一种客户端分配下载线程以及下载的时序图;参照附图6,其示出了本实施例提供的一种视频资源下载过程的执行流程图。
步骤S402,接收服务端下发的视频的资源地址元数据信息。
上述视频资源预处理方法中服务端将资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址生成对应的资源地址元数据并向客户端下发后,客户端接收服务端下发的视频的资源地址元数据信息用于下载视频的资源文件。
资源地址元数据的格式为:
{
"configuration":Addr_C,
"keyframeList":[Addr_K1,Addr_K2,Addr_K3,……,Addr_Km],
"non-keyframeList":[Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn]
}
步骤S404,解析所述资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址。
由上述视频资源预处理方法的实施例可知,服务端生成了包含资源配置文件的资源链接地址、关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表以及非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表在内的资源地址元数据,故客户端执行本步骤可以通过解析资源地址元数据信息,获得资源配置文件的资源链接地址、关键帧列表对应的资源链接地址列表和非关键帧列表对应的资源链接地址列表。
例如,通过解析上述资源地址元数据信息,获得资源配置文件的资源链接地址为Addr_C;m个关键帧的资源链接地址列表为[Addr_K1,Addr_K2,Addr_K3,……,Addr_Km],则m个关键帧K1,K2,K3,……,Km对应的资源链接地址分别为Addr_K1,Addr_K2,Addr_K3,……,Addr_Km,;n个非关键帧的资源链接地址列表为[Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn],n个非关键帧NK1,NK2,NK3,……,NKn对应的资源链接地址分别为Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn。
步骤S406,根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
客户端获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址后,即可从此三者的资源链接地址下载资源配置文件、关键帧列表中的关键帧和非关键帧列表中的非关键帧。
为了解决视频播放时客户端需要下载的视频资源文件过大,以致增加了视频资源下载时间和视频首屏展示的等待时间这一问题,所述视频资源下载方法经过服务端将视频资源文件划分为资源配置文件、关键帧列表和非关键帧列表后,客户端按照预先配置的下载顺序分别下载资源配置文件、关键帧列表中的关键帧和非关键帧列表中的非关键帧,由于视频首屏展示的是关键帧,因此,关键帧在非关键帧之前下载,在资源配置文件下载完成且关键帧下载完成的情况下,可以优先在视频首屏将关键帧展示出来,而不必等到非关键帧下载完成后才能展示视频首屏,减少了视屏首屏展示的等待时间。
关键帧在非关键帧之前下载,有两种下载顺序,其中第一种优选的下载顺序,包括:所述资源配置文件和所述关键帧在所述非关键帧下载之前进行下载。即先下载资源配置文件和关键帧,再下载非关键帧。具体的,所述第一种优选的下载顺序为:下载所述资源配置文件,并按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧。各关键帧的下载顺序是按照各关键帧在关键帧列表中的排序进行下载,同理,各非关键帧的下载顺序是按照各非关键帧在非关键帧列表中的排序进行下载。
优选的,下载所述资源配置文件,以及按照所述关键帧在所述关键帧列表中的排序下载所述关键帧步骤执行之后,即可在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧,减少了视频展示的等待时间。
例如,在Lottie动画的资源配置文件和关键帧下载完成的情况下,即可基于HTML5页面展示Lottie动画。
在第一种优选的下载顺序下,本申请实施例提供的一种优选实施方式中,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,具体如下:
根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程;
根据分配的下载线程下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
客户端下载资源配置文件、关键帧列表中的关键帧和非关键帧列表中的非关键帧的过程分为两步实现:先为每个待下载的资源分配下载线程,再根据分配的下载线程进行下载。
本申请实施例提供的一种优选实施方式中,所述根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程,包括:
获取用于进行资源下载的下载线程数目;根据所述下载线程数目为所述资源配置文件和所述关键帧分配下载线程;其中,优先为资源配置文件分配1个下载线程,将优先分配之后空闲的下载线程按照所述关键帧在所述关键帧列表中的排序为每个关键帧分别分配1个下载线程;若每个关键帧都被分配完下载线程之后存在空闲的下载线程,则将空闲的下载线程按照所述非关键帧在所述非关键帧列表中的排序为每个非关键帧分别分配1个下载线程。
参照附图5,其示出了本实施例提供的一种客户端分配下载线程以及下载的时序图,以附图5为例,对上述分配下载线程的过程进行说明:
时序图中位于下方的四个时间节点t1、t2、t3和t4的具体含义为:t1代表下载并解析资源地址元数据信息的时间节点,t2代表并行下载资源配置文件和关键帧的时间节点,t3代表开始下载非关键帧的时间节点,t4代表此刻之后即可展示视频首屏。时序图中位于中央的每个条形框代表一个待下载资源(所述待下载资源包括资源地址元数据信息、资源配置文件、关键帧列表中的关键帧和非关键帧列表中的非关键帧):501指代资源地址元数据信息,502指代资源配置信息,关键帧列表中有7个关键帧,这7个关键帧依次为:关键帧1、关键帧2、关键帧3、关键帧4、关键帧5、关键帧6和关键帧7,其对应的条形框依次为:503、504、505、506、507、508和509,非关键帧列表中有4个非关键帧,这4个非关键帧依次为:非关键帧1、非关键帧2、非关键帧3和非关键帧4,其对应的条形框依次为:510、511、512和513。同理,假设非关键帧列表中有4个非关键帧,则这4个非关键帧按照排序从前到后的顺序依次为:非关键帧1、非关键帧2、非关键帧3和非关键帧4。
假设获取到客户端用于进行资源下载的下载线程数目为6,可知客户端在同一时刻可以进行6个任务的下载,接下来便可将这6个下载线程分配给待下载资源;具体的,优先为资源配置文件分配1个下载线程,如图5所示,资源配置文件502起始端的时间节点紧跟在资源地址元数据下载完成之后,资源配置文件占用了1个下载线程,还有5个空闲的下载线程,再将这5个空闲的下载线程依次分配给关键帧1、关键帧2、关键帧3、关键帧4和关键帧5,至此不再存在空闲的下载线程;只要已经被分配下载线程的待下载资源中存在至少一个待下载资源下载完成,则又多出空闲的下载线程,将空闲的下载线程优先安排给未被分配下载线程的剩余的关键帧,若每个关键帧都被分配完下载线程之后存在空闲的下载线程,则将空闲的下载线程按照非关键帧在非关键帧列表中的排序为每个非关键帧分别分配1个下载线程,即依次为非关键帧1、非关键帧2、非关键帧3和非关键帧4分配1个下载线程。
在上述根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程的基础上,本申请实施例提供的一种优选实施方式中,所述根据分配的下载线程下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
基于分配的下载线程下载所述资源配置文件,以及基于每个关键帧被分配的下载线程顺序下载所述关键帧;基于每个非关键帧被分配的下载线程顺序下载所述非关键帧。
具体可见图5,在t1时刻,开始下载并解析资源地址元数据;在资源地址元数据下载完成的t2时刻,根据6个下载线程数目开始下载1个视频资源文件502和5个关键帧:关键帧1(503)、关键帧2(504)、关键帧3(505)、关键帧4(506)和关键帧5(507);当关键帧1(503)最先下载完成时,将空闲的一个下载线程用于下载关键帧6(508),紧接着,当关键帧2(504)下载完成时,开始下载关键帧7(509),此时所有的关键帧都已加入下载队列;在资源配置文件502下载完成的t2时刻,有空闲的下载线程用于下载非关键帧,开始下载非关键帧1(510),当关键帧5(507)下载完成时,将空闲的一个下载线程用于下载非关键帧2(511),当关键帧3(505)下载完成时,将空闲的一个下载线程用于下载非关键帧3(512),当关键帧4(506)下载完成时,将空闲的一个下载线程用于下载非关键帧4(513),至此所有的非关键帧都已加入下载队列。
如图5所示,t4是资源配置文件和所有关键帧下载完成的时刻,在t4时刻后,即可展示待播放视频的关键帧;在非关键帧4(513)下载完成后,即可播放视频。
按照非关键帧在非关键帧列表中的排序下载非关键帧步骤执行之后,即可在非关键帧下载完成的情况下,流畅播放所述视频,优选的,基于每个非关键帧被分配的下载线程顺序下载所述非关键帧步骤执行之后,包括:
在所述非关键帧下载完成的情况下,检测是否接受到视频播放指令;
若是,基于所述资源配置文件、所述关键帧和所述非关键帧播放所述视频。
例如,在Lottie动画的非关键帧下载完成的情况下,若检测到接收到动画播放指令,则根据已经下载完成的资源配置文件、关键帧和非关键帧基于HTML5页面播放Lottie动画。
除了上述列举的第一种优选的下载顺序外,第二种优选的下载顺序为所述资源配置文件在所述关键帧下载之前进行下载,且所述关键帧在所述非关键帧下载之前进行下载。
在第一种优选的下载顺序下,本申请实施例提供的一种优选实施方式中,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,具体如下:
下载所述资源配置文件;按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧;按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧;在所述非关键帧下载完成的情况下,播放所述视频。
下述结合附图6,以视频资源文件为Lottie资源文件为例,对本申请提供的视频资源下载方法进行进一步说明,具体实现如下:
步骤S602,接收服务端下发的Lottie动画的资源地址元数据信息。
资源地址元数据的格式为:
{
"configuration":Addr_C,
"keyframeList":[Addr_K1,Addr_K2,Addr_K3,……,Addr_Km],
"non-keyframeList":[Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn]
}
步骤S604,解析资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址。
三者的资源链接地址包括资源配置文件的资源链接地址、关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表和非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表。
解析资源地址元数据信息,获得资源配置文件的资源链接地址为Addr_C;m个关键帧的资源链接地址列表为[Addr_K1,Addr_K2,Addr_K3,……,Addr_Km],则m个关键帧K1,K2,K3,……,Km对应的资源链接地址分别为Addr_K1,Addr_K2,Addr_K3,……,Addr_Km,;n个非关键帧的资源链接地址列表为[Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn],n个非关键帧NK1,NK2,NK3,……,NKn对应的资源链接地址分别为Addr_NK1,Addr_NK2,Addr_NK3,……,Addr_NKn。
步骤S606,根据资源链接地址,按照预先配置的下载顺序下载资源配置文件、关键帧和非关键帧。
首先,根据资源链接地址,按照预先配置的下载顺序为资源配置文件、关键帧列表中的关键帧和非关键帧列表中的非关键帧分配下载线程。
预先配置的下载顺序为:首先下载资源配置文件,并按照关键帧在关键帧列表中的排序下载关键帧;然后按照非关键帧在非关键帧列表中的排序下载非关键帧。
按照预先配置的下载顺序,为待下载资源分配下载线程的过程为:获取用于进行资源下载的下载线程数目;根据下载线程数目为资源配置文件和关键帧分配下载线程;其中,优先为资源配置文件分配1个下载线程,将优先分配之后空闲的下载线程按照关键帧在关键帧列表中的排序为每个关键帧分别分配1个下载线程;若每个关键帧都被分配完下载线程之后存在空闲的下载线程,则将空闲的下载线程按照非关键帧在非关键帧列表中的排序为每个非关键帧分别分配1个下载线程。
下载线程分配好后,根据分配的下载线程下载资源配置文件、关键帧列表中的关键帧和非关键帧列表中的非关键帧。
步骤S608,判断资源配置文件和关键帧是否全部下载完成;
若是,执行步骤S610;
若否,不执行操作。
步骤S610,基于HTML5页面展示Lottie动画的关键帧。
步骤S612,判断非关键帧是否全部下载完成;
若是,执行步骤S614;
若否,不执行操作。
步骤S614,判断是否接受到视频播放指令;
若是,执行步骤S616;
若否,不执行操作。
步骤S616,根据资源配置文件、关键帧和非关键帧基于HTML5页面播放所述视频。
本申请提供的一种视频资源下载装置实施例如下:
在上述的实施例中,提供了一种视频资源下载方法,与之相对应的,本申请还提供了一种视频资源下载装置,下面结合附图进行说明。
参照附图7,其示出了本申请提供的一种视频资源下载装置实施例的示意图。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种视频资源下载装置,包括:
元数据接收模块702,被配置为接收服务端下发的视频的资源地址元数据信息;
地址解析模块704,被配置为解析所述资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
下载模块706,被配置为根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
可选的,所述下载顺序,包括:
所述资源配置文件和所述关键帧在所述非关键帧下载之前进行下载。
可选的,所述下载模块706,包括:
二元下载子模块,被配置为下载所述资源配置文件,并按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;
后继下载子模块,被配置为按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧。
可选的,所述下载模块706,还包括:
展示子模块,被配置为在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧。
可选的,所述下载模块706,包括:
线程分配子模块,被配置为根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程;
下载子模块,被配置为根据分配的下载线程下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
可选的,所述线程分配子模块,包括:
数目获取单元,被配置为获取用于进行资源下载的下载线程数目;
二元分配单元,被配置为根据所述下载线程数目为所述资源配置文件和所述关键帧分配下载线程;其中,优先为资源配置文件分配1个下载线程,将优先分配之后空闲的下载线程按照所述关键帧在所述关键帧列表中的排序为每个关键帧分别分配1个下载线程;
后继分配若每个关键帧都被分配完下载线程之后存在空闲的下载线程,则将空闲的下载线程按照所述非关键帧在所述非关键帧列表中的排序为每个非关键帧分别分配1个下载线程。
可选的,所述下载子模块,包括:
二元线程下载单元,被配置为基于分配的下载线程下载所述资源配置文件,以及基于每个关键帧被分配的下载线程顺序下载所述关键帧;
后继线程下载单元,被配置为基于每个非关键帧被分配的下载线程顺序下载所述非关键帧。
可选的,所述下载子模块,还包括:
检测单元,被配置为在所述非关键帧下载完成的情况下,检测是否接受到视频播放指令;
若是,运行播放单元,所述播放单元,被配置为基于所述资源配置文件、所述关键帧和所述非关键帧播放所述视频。
可选的,所述下载顺序,包括:
所述资源配置文件在所述关键帧下载之前进行下载,且所述关键帧在所述非关键帧下载之前进行下载。
可选的,所述下载模块706,具体被配置为:
下载所述资源配置文件;
按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;
在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧;
按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧;
在所述非关键帧下载完成的情况下,播放所述视频。
本申请提供一种资源预处理及下载系统实施例如下:
上述视频资源预处理方法由服务端执行,视频资源下载方法由客户端执行,另外,所述资源预处理及下载系统中的资源服务器配合服务端和客户端执行所述视频资源预处理方法和所述视频资源下载方法。
参照附图8,其示出了本实施例提供的一种视频资源预处理及下载系统的结构框图。
本申请提供的资源预处理及下载系统,包括:
服务端801、客户端802和资源服务器803;
所述资源服务器803,被配置为接收所述服务端上传的所述资源配置文件、关键帧列表和非关键帧列表,以及,根据所述资源配置文件、关键帧列表和非关键帧列表的资源地址生成资源链接地址,并将所述资源链接地址返回给服务端;
所述服务端801,被配置为将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表;将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器;接收所述资源服务器返回的所述资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;根据所述资源链接地址生成对应的资源地址元数据并向客户端下发;
所述客户端802,接收服务端下发的视频的资源地址元数据信息;解析所述资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
本申请提供的一种计算设备实施例如下:
图9是示出了根据本说明书一实施例的计算设备900的结构框图。该计算设备900的部件包括但不限于存储器910和处理器920。处理器920与存储器910通过总线930相连接,数据库950用于保存数据。
计算设备900还包括接入设备940,接入设备940使得计算设备900能够经由一个或多个网络960通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备940可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备900的上述部件以及图9中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图9所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备900可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备900还可以是移动式或静止式的服务器。
本申请提供一种计算设备,包括存储器910、处理器920及存储在存储器上并可在处理器上运行的计算机指令,所述处理器920用于执行如下计算机可执行指令:
将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表;
将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器;
接收所述资源服务器返回的所述资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
根据所述资源链接地址生成对应的资源地址元数据并向客户端下发。
可选的,所述将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表,包括:
解析所述视频资源文件,获得所述资源配置文件和图像帧;
解析所述资源配置文件,获得所述图像帧的配置数据;
根据所述图像帧的配置数据将所述图像帧划分为关键帧和非关键帧,并生成所述关键帧的所述关键帧列表和所述非关键帧的所述非关键帧列表。
可选的,所述解析所述视频资源文件,获得所述资源配置文件和图像帧子步骤执行之后,且解析所述资源配置文件,获得图像帧的配置数据子步骤执行之前,包括:
通过对所述图像帧进行外链的方式获取所述图像帧对应的统一资源定位符。
可选的,所述三者的资源链接地址,包括:
所述资源配置文件的资源链接地址,所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表。
可选的,所述根据所述资源链接地址生成对应的资源地址元数据并向客户端下发,包括:
生成包含所述资源配置文件的资源链接地址、所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表在内的资源地址元数据;
将所述资源地址元数据向所述客户端下发。
可选的,所述根据所述资源链接地址生成对应的资源地址元数据并向客户端下发,包括:
根据所述资源配置文件的资源链接地址生成所述资源配置文件的资源地址元数据,根据所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表生成所述关键帧列表的资源地址元数据,根据所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表生成所述非关键帧列表的资源地址元数据;
将所述资源配置文件的资源地址元数据、所述关键帧列表的资源地址元数据和所述非关键帧列表的资源地址元数据下发给客户端。
可选的,所述将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器,包括:
对所述资源配置文件、关键帧列表和非关键帧列表进行压缩,获得压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表;
将所述压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表上传至所述资源服务器。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如下:
将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表;
将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器;
接收所述资源服务器返回的所述资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
根据所述资源链接地址生成对应的资源地址元数据并向客户端下发。
可选的,所述将视频资源文件解析为资源配置文件、关键帧列表和非关键帧列表,包括:
解析所述视频资源文件,获得所述资源配置文件和图像帧;
解析所述资源配置文件,获得所述图像帧的配置数据;
根据所述图像帧的配置数据将所述图像帧划分为关键帧和非关键帧,并生成所述关键帧的所述关键帧列表和所述非关键帧的所述非关键帧列表。
可选的,所述解析所述视频资源文件,获得所述资源配置文件和图像帧子步骤执行之后,且解析所述资源配置文件,获得图像帧的配置数据子步骤执行之前,包括:
通过对所述图像帧进行外链的方式获取所述图像帧对应的统一资源定位符。
可选的,所述三者的资源链接地址,包括:
所述资源配置文件的资源链接地址,所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表。
可选的,所述根据所述资源链接地址生成对应的资源地址元数据并向客户端下发,包括:
生成包含所述资源配置文件的资源链接地址、所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表,所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表在内的资源地址元数据;
将所述资源地址元数据向所述客户端下发。
可选的,所述根据所述资源链接地址生成对应的资源地址元数据并向客户端下发,包括:
根据所述资源配置文件的资源链接地址生成所述资源配置文件的资源地址元数据,根据所述关键帧列表中各关键帧的资源链接地址组成的资源链接地址列表生成所述关键帧列表的资源地址元数据,根据所述非关键帧列表中各非关键帧的资源链接地址组成的资源链接地址列表生成所述非关键帧列表的资源地址元数据;
将所述资源配置文件的资源地址元数据、所述关键帧列表的资源地址元数据和所述非关键帧列表的资源地址元数据下发给客户端。
可选的,所述将所述资源配置文件、关键帧列表和非关键帧列表上传至资源服务器,包括:
对所述资源配置文件、关键帧列表和非关键帧列表进行压缩,获得压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表;
将所述压缩后的资源配置文件、压缩后的关键帧列表和压缩后的非关键帧列表上传至所述资源服务器。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的视频资源预处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述视频资源预处理方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请提供的第二种计算设备实施例如下:
图10是示出了根据本说明书一实施例的计算设备1000的结构框图。该计算设备1000的部件包括但不限于存储器1010和处理器1020。处理器1020与存储器1010通过总线1030相连接,数据库1050用于保存数据。
计算设备1000还包括接入设备1040,接入设备1040使得计算设备1000能够经由一个或多个网络1060通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1040可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备1000的上述部件以及图10中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图10所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1000可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1000还可以是移动式或静止式的服务器。
本申请提供第二种计算设备,包括存储器1010、处理器1020及存储在存储器上并可在处理器上运行的计算机指令,所述处理器1020用于执行如下计算机可执行指令:
接收服务端下发的视频的资源地址元数据信息;
解析所述资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
可选的,所述下载顺序,包括:
所述资源配置文件和所述关键帧在所述非关键帧下载之前进行下载。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
下载所述资源配置文件,并按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;
按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧。
可选的,下载所述资源配置文件,以及按照所述关键帧在所述关键帧列表中的排序下载所述关键帧子步骤执行之后,包括:
在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程;
根据分配的下载线程下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程,包括:
获取用于进行资源下载的下载线程数目;
根据所述下载线程数目为所述资源配置文件和所述关键帧分配下载线程;其中,优先为资源配置文件分配1个下载线程,将优先分配之后空闲的下载线程按照所述关键帧在所述关键帧列表中的排序为每个关键帧分别分配1个下载线程;
若每个关键帧都被分配完下载线程之后存在空闲的下载线程,则将空闲的下载线程按照所述非关键帧在所述非关键帧列表中的排序为每个非关键帧分别分配1个下载线程。
可选的,所述根据分配的下载线程下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
基于分配的下载线程下载所述资源配置文件,以及基于每个关键帧被分配的下载线程顺序下载所述关键帧;
基于每个非关键帧被分配的下载线程顺序下载所述非关键帧。
可选的,基于每个非关键帧被分配的下载线程顺序下载所述非关键帧步骤执行之后,包括:
在所述非关键帧下载完成的情况下,检测是否接受到视频播放指令;
若是,基于所述资源配置文件、所述关键帧和所述非关键帧播放所述视频。
可选的,所述下载顺序,包括:
所述资源配置文件在所述关键帧下载之前进行下载,且所述关键帧在所述非关键帧下载之前进行下载。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
下载所述资源配置文件;
按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;
在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧;
按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧;
在所述非关键帧下载完成的情况下,播放所述视频。
本申请一实施例还提供第二种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如下:
接收服务端下发的视频的资源地址元数据信息;
解析所述资源地址元数据信息,获得资源配置文件、关键帧列表和非关键帧列表三者的资源链接地址;
根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
可选的,所述下载顺序,包括:
所述资源配置文件和所述关键帧在所述非关键帧下载之前进行下载。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
下载所述资源配置文件,并按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;
按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧。
可选的,下载所述资源配置文件,以及按照所述关键帧在所述关键帧列表中的排序下载所述关键帧子步骤执行之后,包括:
在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程;
根据分配的下载线程下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序为所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧分配下载线程,包括:
获取用于进行资源下载的下载线程数目;
根据所述下载线程数目为所述资源配置文件和所述关键帧分配下载线程;其中,优先为资源配置文件分配1个下载线程,将优先分配之后空闲的下载线程按照所述关键帧在所述关键帧列表中的排序为每个关键帧分别分配1个下载线程;
若每个关键帧都被分配完下载线程之后存在空闲的下载线程,则将空闲的下载线程按照所述非关键帧在所述非关键帧列表中的排序为每个非关键帧分别分配1个下载线程。
可选的,所述根据分配的下载线程下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
基于分配的下载线程下载所述资源配置文件,以及基于每个关键帧被分配的下载线程顺序下载所述关键帧;
基于每个非关键帧被分配的下载线程顺序下载所述非关键帧。
可选的,基于每个非关键帧被分配的下载线程顺序下载所述非关键帧步骤执行之后,包括:
在所述非关键帧下载完成的情况下,检测是否接受到视频播放指令;
若是,基于所述资源配置文件、所述关键帧和所述非关键帧播放所述视频。
可选的,所述下载顺序,包括:所述资源配置文件在所述关键帧下载之前进行下载,且所述关键帧在所述非关键帧下载之前进行下载。
可选的,所述根据所述资源链接地址,按照预先配置的下载顺序下载所述资源配置文件、所述关键帧列表中的关键帧和所述非关键帧列表中的非关键帧,包括:
下载所述资源配置文件;
按照所述关键帧在所述关键帧列表中的排序下载所述关键帧;
在所述资源配置文件和所述关键帧下载完成的情况下,展示所述视频的关键帧;
按照所述非关键帧在所述非关键帧列表中的排序下载所述非关键帧;
在所述非关键帧下载完成的情况下,播放所述视频。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的视频资源预处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述视频资源预处理方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。