一种视频下载进度的确定方法和装置与流程

文档序号:20062171发布日期:2020-03-06 08:05阅读:152来源:国知局
一种视频下载进度的确定方法和装置与流程

本申请涉及流媒体技术领域,尤其涉及一种视频下载进度的确定方法和装置。



背景技术:

m3u8格式的视频(以下简称m3u8视频)是一种流媒体视频,通常是由一个m3u8结尾的文本文件和多个视频片段(ts)组成。其中,m3u8结尾的文本文件中通常包含多个视频片段的下载地址,在下载m3u8视频时,可以根据这些下载地址逐个下载每个视频片段,直至所有的视频片段下载成功,得到m3u8视频。

通常,在视频下载过程中,需要根据已下载的字节数和视频的总字节数确定视频的下载进度,其中,视频的总字节数可以在与服务器建立连接后,由服务器返回。然而,m3u8视频包含多个视频片段,多个视频片段需要逐个下载,且在下载过程中,服务器通常仅返回的一个视频片段的字节数,这样,就会导致无法确定多个视频片段(即m3u8视频)的总字节数,进而无法确定m3u8视频的下载进度。



技术实现要素:

本申请实施例提供一种视频下载进度的确定方法和装置,用于解决在下载m3u8格式的视频的过程中,无法确定视频下载进度的问题。

为了解决上述技术问题,本申请是这样实现的:

本申请实施例提供一种视频下载进度的确定方法,包括:

获取目标视频的文本文件,所述目标视频的格式为m3u8,所述文本文件中包括所述目标视频的多个视频片段的下载地址;

解析所述文本文件,得到所述多个视频片段的下载地址,并根据所述下载地址下载所述多个视频片段;

在下载所述多个视频片段的过程中,确定与所述多个视频片段的下载进度相关的进度参数;

根据所述进度参数,确定所述目标视频的下载进度。

本申请实施例提供一种装置,包括:

获取单元,获取目标视频的文本文件,所述目标视频的格式为m3u8,所述文本文件中包括所述目标视频的多个视频片段的下载地址;

下载单元,解析所述文本文件,得到所述多个视频片段的下载地址,并根据所述下载地址下载所述多个视频片段;

进度参数确定单元,在下载所述多个视频片段的过程中,确定与所述多个视频片段的下载进度相关的进度参数;

下载进度确定单元,根据所述进度参数,确定所述目标视频的下载进度。

本申请实施例提供一种电子设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:

获取目标视频的文本文件,所述目标视频的格式为m3u8,所述文本文件中包括所述目标视频的多个视频片段的下载地址;

解析所述文本文件,得到所述多个视频片段的下载地址,并根据所述下载地址下载所述多个视频片段;

在下载所述多个视频片段的过程中,确定与所述多个视频片段的下载进度相关的进度参数;

根据所述进度参数,确定所述目标视频的下载进度。

本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

获取目标视频的文本文件,所述目标视频的格式为m3u8,所述文本文件中包括所述目标视频的多个视频片段的下载地址;

解析所述文本文件,得到所述多个视频片段的下载地址,并根据所述下载地址下载所述多个视频片段;

在下载所述多个视频片段的过程中,确定与所述多个视频片段的下载进度相关的进度参数;

根据所述进度参数,确定所述目标视频的下载进度。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

本申请实施例提供的技术方案,在下载m3u8格式的目标视频时,由于可以根据目标视频的多个视频片段的下载地址下载目标视频的多个视频片段,并在下载过程中,通过与多个视频片段的下载进度相关的进度参数,确定目标视频的下载进度,无需根据目标视频的总字节数确定目标视频的下载进度,因此,可以有效避免在无法确定目标视频的总字节数的情况下,无法确定视频的下载进度的问题。

附图说明

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

图1是本申请的一个实施例视频下载进度的确定方法的流程示意图;

图2是本申请的一个实施例视频下载方法的流程示意图;

图3为本申请实施例提供的一种电子设备的结构示意图;

图4为本申请实施例提供的一种视频下载进度的确定装置的结构示意图。

具体实施方式

通常,在视频的下载过程中,可以根据视频的总字节数和已下载的字节数确定视频的下载进度。具体地,在下载视频时,需要与提供该视频的服务器建立连接,在建立连接的情况下,服务器可以将待下载视频的总字节数等信息返回。这样,在视频下载过程中,可以根据服务器返回的总字节数和已经下载的字节数,确定视频的下载进度。

例如,假设待下载视频的总字节数为a,已下载的字节数为b,则视频的下载进度为(b/a)×100%。

然而,针对m3u8格式的视频而言,m3u8视频通常由多个视频片段组合,在下载m3u8视频时,需要逐个下载多个视频片段。其中,在下载每个视频片段时,基于上述视频下载的具体过程可知,服务器仅返回该一个视频片段的总字节数。这样,就会出现在下载m3u8视频的过程中,仅能确定一个视频片段的总字节数,无法确定m3u8视频的总字节数的问题,进而也就无法确定m3u8视频的下载进度。

为了解决上述技术问题,本申请实施例提供一种视频下载进度的确定方法和装置,该方法包括:获取目标视频的文本文件,所述目标视频的格式为m3u8,所述文本文件中包括所述目标视频的多个视频片段的下载地址;解析所述文本文件,得到所述多个视频片段的下载地址,并根据所述下载地址下载所述多个视频片段;在下载所述多个视频片段的过程中,确定与所述多个视频片段的下载进度相关的进度参数;根据所述进度参数,确定所述目标视频的下载进度。

本申请实施例提供的技术方案,在下载m3u8格式的目标视频时,由于可以根据目标视频的多个视频片段的下载地址下载目标视频的多个视频片段,并在下载过程中,通过与多个视频片段的下载进度相关的进度参数,确定目标视频的下载进度,无需根据目标视频的总字节数确定目标视频的下载进度,因此,可以有效避免在无法确定目标视频的总字节数的情况下,无法确定视频的下载进度的问题。

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

需要说明的是,本申请实施例提供的技术方案,除了可以用于确定m3u8格式的视频的下载进度之外,还可以用于确定其他由多个视频片段组合的视频的下载进度。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本申请实施例提供的一种视频下载进度的确定方法的流程示意图。本实施例的执行主体可以是进行视频下载的终端。所述方法如下所述。

s102:获取目标视频的文本文件,所述目标视频的格式为m3u8,所述文本文件中包括所述目标视频的多个视频片段的下载地址。

m3u8格式的视频通常由一个m3u8结尾的文本文件和多个视频片段组成,其中,该文本文件中包括该多个视频片段的下载地址。本申请实施例在下载格式为m3u8的目标视频时,可以获取目标视频的文本文件。

在获取目标视频的文本文件时,具体可以包括以下步骤:

第一:获取目标视频的下载地址。

例如,针对目标视频a,可以a.m3u8的下载地址http://www.video/a.m3u8。

第二:根据下载地址与服务器建立网络连接。

服务器可以是提供该目标视频的服务器,根据下载地址与服务器建立网络连接可以理解为访问该下载地址。

需要说明的是,这里的与服务器建立网络连接,是为了确定该下载地址是否合法或有效,即服务器是否允许下载该目标视频。其中,若下载地址合法或有效,则可以成功与服务器建立网络设备,且服务器返回成功类型的http状态码(例如200),若下载地址非法或无效,则无法与服务器建立网络连接,且服务器会返回错误类型的http状态码。

第三:若成功建立网络连接,则在本地下载目录中创建目标文件。

若接收到服务器返回的成功类型的http状态码,则可以确定成功与服务器建立网络连接。在成功与服务器建立网络连接的情况下,可以认为下载地址是合法或有效的,服务器允许下载该目标视频,此时,可以启动对目标视频的下载,并在本地的下载目录中创建目标文件,以便后续将目标视频下载到目标文件中。

可选地,若接收到服务器返回的错误类型的http状态码,则可以确定未成功与服务器建立网络连接。在没有成功与服务器建立网络连接的情况下,可以认为下载地址是非法或无效的,服务器不允许下载目标视频,此时可以无需执行后续步骤。在本申请实施例中,可以以成功与服务器建立网络连接为例进行说明。

第四:再次与服务器建立网络连接,并根据下载地址,将文本文件下载到目标文件中。

在启动对目标视频的下载时,需要再次与服务器建立网络连接。需要说明的是,这里的与服务器建立网络连接的目的是为了下载目标视频,与上述确认下载地址是否合法或有效不同。

在再次成功与服务器建立网络连接的情况下,可以根据下载地址,将文本文件下载至上述目标文件中。其中,该文本文件中包括组成目标视频的多个视频片段的下载地址。

第五:从目标文件中获取文本文件。

在将目标视频的文本文件下载到目标文件中后,在获取该文本文件时,可以从目标文件中进行获取。

s104:解析所述文本文件,得到所述多个视频片段的下载地址,并根据所述下载地址下载所述多个视频片段。

在获取到目标视频的文本文件后,可以解析该文本文件,得到该文本文件中包括的多个视频片段的下载地址,该多个视频片段即为组成目标视频的多个视频片段。

本申请实施例中,解析目标视频的文本文件,得到多个视频片段的下载地址,具体可以包括:

首先,解析文本文件,得到文本文件中包括的多个关键字段。

文本文件中通常可以包括多个关键字段,一个关键字段中可以包括一个视频片段的相关信息,该相关信息中可以包括视频片段的播放时长和视频片段的下载地址。

在对文本文件进行解析后,可以得到文本文件中包括的多个关键字段。

例如,文本文件中包括的文本内容如下:

#extm3u

#ext-x-version:3

#ext-x-media-sequence:0

#ext-x-allow-cache:yes

#ext-x-targetduration:5

#extinf:4.064,

http://www.video/a/0.ts

#extinf:4.0,

http://www.video/a/1.ts

#extinf:4.0,

http://www.video/a/2.ts

#extinf:4.0,

http://www.video/a/3.ts

#extinf:4.0,

http://www.video/a/4.ts

#extinf:4.0,

http://www.video/a/5.ts

#extinf:4.0,

http://www.video/a/6.ts

#extinf:4.0,

http://www.video/a/7.ts

#extinf:4.0,

http://www.video/a/8.ts

#extinf:4.0,

http://www.video/a/9.ts

#extinf:4.0,

http://www.video/a/10.ts

#ext-x-endlist。

对该文本文件进行解析后,可以得到如下11个关键字段:

#extinf:4.064,http://www.video/a/0.ts

#extinf:4.0,http://www.video/a/1.ts

#extinf:4.0,http://www.video/a/2.ts

#extinf:4.0,http://www.video/a/3.ts

#extinf:4.0,http://www.video/a/4.ts

#extinf:4.0,http://www.video/a/5.ts

#extinf:4.0,http://www.video/a/6.ts

#extinf:4.0,http://www.video/a/7.ts

#extinf:4.0,http://www.video/a/8.ts

#extinf:4.0,http://www.video/a/9.ts

#extinf:4.0,http://www.video/a/10.ts

上述11个关键字段对应11个视频片段,以第一个关键字段“#extinf:4.064,http://www.video/a/0.ts”为例,该关键字段中的4.064即为该关键字段对应的视频片段的播放时长,http://www.video/a/0.ts即为该关键字段对应的视频片段的下载地址。

其次,根据多个关键字段中包括的视频片段的相关信息,得到下载列表,下载列表中包括多个视频片段的下载地址。

仍以上述11个关键字段为例,根据这11个关键字段中包括的视频片段的相关信息,可以得到如下下载列表,该下载列表中包括11个视频片段的下载地址。

http://www.video/a/0.ts

http://www.video/a/1.ts

http://www.video/a/2.ts

http://www.video/a/3.ts

http://www.video/a/4.ts

http://www.video/a/5.ts

http://www.video/a/6.ts

http://www.video/a/7.ts

http://www.video/a/8.ts

http://www.video/a/9.ts

http://www.video/a/10.ts

在得到组成目标视频的多个视频片段的下载地址后,可以根据这些下载地址下载多个视频片段。

本申请实施例中,在下载多个视频片段时,可以使用一个线程下载,也可以使用多个线程下载,在使用多个线程下载时,假设多个线程的个数为t,视频片段的数量为n,则每个线程需要处理(n/t)个视频下载任务,其中,若(n/t)不是整数,则可以选择其中一个线程(如最后一个线程)处理剩余的下载任务。其中,本申请实施例提供的技术方案可以确定每个线程上下载的多个视频片段的下载进度。为了便于理解,以下可以以使用一个线程下载多个视频片段为例进行说明。

s106:在下载所述多个视频片段的过程中,确定与所述多个视频片段的下载进度相关的进度参数。

本申请实施例中,与多个视频片段的下载进度相关的进度参数至少可以包括:多个视频片段的个数、已下载的视频片段的个数、正在下载的视频片段的总字节数和已下载字节数。

其中,多个视频片段的个数等于解析得到的下载地址的个数,已下载的视频片段个数可以由下载终端统计得到,正在下载的视频片段的总字节数可以由提供目标视频的服务器返回,正在下载的视频片段的已下载字节数可以由下载终端确定得到。

s108:根据所述进度参数,确定所述目标视频的下载进度。

本申请实施例中,考虑到在一般情况下,组成目标视频的多个视频片段的播放时长大致相同,在播放时长大致相同的情况下,多个视频片段的大小也大致相同,因此,在进度参数至少包括上述多个视频片段的个数、已下载的视频片段的个数、正在下载的视频片段的总字节数和已下载字节数的情况下,可以通过以下公式确定目标视频的下载进度:

其中,l为正在下载的视频片段的已下载字节数,k为正在下载的视频片段的总字节数,m为已下载的视频片段的个数,n为所述视频片段的个数。

例如,假设组成目标视频的视频片段的个数为10,这10个视频由1个线程下载,当前已下载的视频片段的个数为4,正在下载的1个视频片段的总字节数为200kb,已下载字节数为100kb,那么,当前的下载进度为:(100/200+4)/10*100%=45%。

需要说明的是,在组成目标视频的多个视频片段的播放时长的差异小于或等于预设阈值(对应多个视频片段的播放时长的差异小于或等于预设阈值)的情况下,都可以通过上述公式确定目标视频的下载进度。其中,预设阈值可以根据下载进度的准确率人为设定。

还需要说明的是,在个别情况下,多个视频片段的播放时长的差异可能大于预设阈值,相应地,多个视频片段的总字节数的大小差异也大于预设阈值,那么,上述确定下载进度的方法可能不再适用。在这种情况下,为了确定目标视频的下载进度,可以根据多个视频片段的播放时长的大小关系,确定多个视频片段的总字节数之间的大小关系,进而在已知多个视频片段的个数、已下载的视频片段的个数、正在下载的视频片段的总字节数和已下载字节数的情况下,确定下载进度。

其中,视频片段的播放时长可以根据上述s104中解析得到的关键字段确定得到,一个关键字段中包括一个视频片段的相关信息,该相关信息中包括视频片段的播放时长。

仍以上述由1个线程下载的10个视频片段为例,假设已下载的4个视频片段为a、b、c和d,正在下载的视频片段为e,未下载的视频片段为f、g、h、i和j,a、b和c的播放时长为e的2倍,d和f的播放时长与e相同,g、h、i和j的播放时长为e的1.5倍,那么,可以认为a、b和c的总字节数为e的2倍,d和f的总字节数与e相同,g、h、i和j的总字节数为e的1.5倍,已知e的总字节数为200kb,已下载的字节数为100kb,那么,当前的下载进度为:[(200×2×3+200+100)/(200×2×3+200×3+200×1.5×3)]×100%=55.6%。

在确定目标视频的下载进度后,可选地,可以在下载界面中展示该下载进度,以便用户可以清楚地了解当前目标视频的下载进度。

可选地,针对每个视频片段,在下载完成该视频片段后,还可以对视频片段命名。在命名时,优选地,可以根据该视频片段在上述s104记载的下载列表中的索引,对视频片段命名。

以上述包括11个视频片段的下载地址下载列表为例,列表中第一个视频片段的下载地址http://www.video/a/0.ts在列表中的位置为0,那么,该第一个视频片段可以命名为0.ts;第二个视频片段的下载地址http://www.video/a/1.ts在列表中的位置为1,那么,该第二个视频片段可以命名为1.ts;……;以此类推,最后一个视频片段可以命名为10.ts。

在对视频片段命名后,可以存储该视频片段。优选地,可以将视频片段存储在上述s102记载的目标文件中。

在基于上述方法命名并存储目标视频的多个视频片段后,还可以对目标视频的文本文件进行更新。

具体地,在存储目标视频的多个视频片段后,可以确定多个视频片段的存储路径,然后将文本文件中包括的多个视频片段的下载地址,替换为多个视频片段的存储路径,从而更新目标视频的文本文件。

以上述包括11个视频片段的下载地址的文本文件为例,假设将命名后的11个视频片段存储在本地sd卡的download文件下的目标文件a中,那么,这11个视频片段的存储路径可以是:

sdcard/download/a/0.ts

sdcard/download/a/1.ts

sdcard/download/a/2.ts

sdcard/download/a/3.ts

sdcard/download/a/4.ts

sdcard/download/a/5.ts

sdcard/download/a/6.ts

sdcard/download/a/7.ts

sdcard/download/a/8.ts

sdcard/download/a/9.ts

sdcard/download/a/10.ts

将文本文件中11个视频片段的下载地址替换为上述11个视频片段的存储路径,可以得到如下更新后的文本文件:

#extm3u

#ext-x-version:3

#ext-x-media-sequence:0

#ext-x-allow-cache:yes

#ext-x-targetduration:5

#extinf:4.064,

sdcard/download/a/0.ts

#extinf:4.0,

sdcard/download/a/1.ts

#extinf:4.0,

sdcard/download/a/2.ts

#extinf:4.0,

sdcard/download/a/3.ts

#extinf:4.0,

sdcard/download/a/4.ts

#extinf:4.0,

sdcard/download/a/5.ts

#extinf:4.0,

sdcard/download/a/6.ts

#extinf:4.0,

sdcard/download/a/7.ts

#extinf:4.0,

sdcard/download/a/8.ts

#extinf:4.0,

sdcard/download/a/9.ts

#extinf:4.0,

sdcard/download/a/10.ts

#ext-x-endlist

在得到更新后的文本文件后,在播放目标视频时,可以从文本文件中包括的多个视频片段的存储路径中读取多个视频片段,从而实现对目标视频的播放。

本申请实施例提供的技术方案,在下载m3u8格式的目标视频时,由于可以根据目标视频的多个视频片段的下载地址下载目标视频的多个视频片段,并在下载过程中,通过与多个视频片段的下载进度相关的进度参数,确定目标视频的下载进度,无需根据目标视频的总字节数确定目标视频的下载进度,因此,可以有效避免在无法确定目标视频的总字节数的情况下,无法确定视频的下载进度的问题。

为了便于理解下载m3u8格式的目标视频时如何确定下载进度,以及整个下载过程,可以参见图2。图2为本申请的一个实施例视频下载方法的流程示意图,具体可以包括以下步骤:

s201:获取目标视频的下载地址。

s202:根据下载地址与服务器建立网络连接。

服务器可以是提供目标视频的服务器,与服务器建立网络连接可以理解为访问目标视频的下载地址。

s203:是否成功与服务器建立网络连接。

若接收到服务器返回的成功类型的http状态码,则可以确认成功与服务器建立网络连接,此时可以说明目标视频的下载地址是合法有效的,可以执行s204;若接收到服务器返回的错误类型的http状态码,则可以确认没有成功与服务器建立网络连接,此时可以说明目标视频的下载地址是非法无效的,可以执行s215。

s204:在本地下载目录中创建目标文件。

该目标文件可以用于存储目标视频的文本文件和多个视频片段。

s205:再次与服务器建立网络连接,并根据下载地址,将目标视频的文本文件下载到目标文件中。

s206:从目标文件中获取目标视频的文本文件。

s207:解析目标视频的文本文件,得到文本文件中包括的多个关键字段。

一个关键字段中包括一个视频片段的相关信息,该相关信息中可以包括视频片段的播放时长和下载地址。

s208:根据多个关键字段,得到包括多个视频片段的下载地址的下载列表。

s209:根据多个视频片段的下载地址下载多个视频片段。

在下载多个视频片段时,可以使用一个线程下载,也可以使用多个线程下载,后续确定的下载进度可以是每个线程上下载的多个视频片段的下载进度。

s210:在下载多个视频片段的过程中,确定与多个视频片段的下载进度相关的进度参数。

进度参数至少可以包括:多个视频片段的个数、已下载的视频片段的个数、正在下载的视频片段的总字节数和已下载字节数。

s211:根据进度参数,确定目标视频的下载进度。

在确定下载进度时,优选地,考虑到在一般情况下,组成目标视频的多个视频片段的播放时长大致相同,在播放时长大致相同的情况下,多个视频片段的大小也大致相同,因此,在多个视频片段的播放时长的差异小于或等于预设阈值(对应多个视频片段的总字节数的差异小于或等于预设阈值)的情况下,可以通过以下公式确定目标视频的下载进度:

其中,l为正在下载的视频片段的已下载字节数,k为正在下载的视频片段的总字节数,m为已下载的视频片段的个数,n为所述视频片段的个数。

可选地,考虑到个别情况下,组成目标视频的多个视频片段的播放时长的差异可能大于预设阈值(对应多个视频片段的总字节数的差异大于预设阈值),此时,可以根据多个视频中正在下载的视频的播放时长与其他视频片段的播放时长的大小关系,确定正在下载的视频的总字节数与其他视频片段的总字节数之间的大小关系,进而确定目标视频的播放时长。具体可以参见上述s108中相应步骤的具体实现,这里不再详细说明。

s212:在下载完成每个视频片段后,根据视频片段的下载地址在下载列表中的索引,对每个视频片段命名。

例如,视频片段在的下载地址在下载列表中的位置为i,那么,该视频片段可以命名为i.ts。

s213:将命名后的多个视频片段存储在目标文件中。

s214:将文本文件中多个视频的下载地址替换为多个视频的存储路径,得到更新后的文本文件。

在得到更新后的文本文件后,在播放目标视频时,可以根据跟新后的文本文件中的存储路径,读取多个视频片段,实现对目标视频的播放。

s215:结束。

图2所示的实施例提供一种视频下载方法,在视频下载过程中,可以通过与多个视频片段的下载进度相关的进度参数确定目标视频的下载进度,无需根据目标视频的总字节数确定视频的下载进度,可以有效避免在无法确定目标视频的总字节数的情况下,无法确定下载进度的问题。此外,在下载得到多个视频片段后,通过对多个视频片段进行命名和存储,并由多个视频片段的存储路径替换目标视频的文本文件中的下载地址,可以在播放目标视频时,方便地基于视频片段的存储路径实现目标视频的播放。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

图3是本申请的一个实施例电子设备的结构示意图。请参考图3,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industrystandardarchitecture,工业标准体系结构)总线、pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成视频下载进度的确定装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

获取目标视频的文本文件,所述目标视频的格式为m3u8,所述文本文件中包括所述目标视频的多个视频片段的下载地址;

解析所述文本文件,得到所述多个视频片段的下载地址,并根据所述下载地址下载所述多个视频片段;

在下载所述多个视频片段的过程中,确定与所述多个视频片段的下载进度相关的进度参数;

根据所述进度参数,确定所述目标视频的下载进度。

上述如本申请图3所示实施例揭示的视频下载进度的确定装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图1和图2的方法,并实现视频下载进度的确定装置在图1和图2所示实施例的功能,本申请实施例在此不再赘述。

当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1和图2所示实施例的方法,并具体用于执行以下操作:

获取目标视频的文本文件,所述目标视频的格式为m3u8,所述文本文件中包括所述目标视频的多个视频片段的下载地址;

解析所述文本文件,得到所述多个视频片段的下载地址,并根据所述下载地址下载所述多个视频片段;

在下载所述多个视频片段的过程中,确定与所述多个视频片段的下载进度相关的进度参数;

根据所述进度参数,确定所述目标视频的下载进度。

图4为本申请实施例提供的一种视频下载进度的确定装置的结构示意图。具体可以包括:获取单元41、下载单元42、进度参数确定单元43以及下载进度确定单元44,其中:

获取单元41,获取目标视频的文本文件,所述目标视频的格式为m3u8,所述文本文件中包括所述目标视频的多个视频片段的下载地址;

下载单元42,解析所述文本文件,得到所述多个视频片段的下载地址,并根据所述下载地址下载所述多个视频片段;

进度参数确定单元43,在下载所述多个视频片段的过程中,确定与所述多个视频片段的下载进度相关的进度参数;

下载进度确定单元44,根据所述进度参数,确定所述目标视频的下载进度。

可选地,所述进度参数包括所述多个视频片段的个数、已下载的视频片段的个数、正在下载的视频片段的总字节数和已下载字节数。

可选地,所述下载进度确定单元44,根据所述进度参数,确定所述目标视频的下载进度,包括:

通过以下公式确定所述目标视频的下载进度:

其中,l为所述正在下载的视频片段的已下载字节数,k为所述正在下载的视频片段的总字节数,m为所述已下载的视频片段的个数,n为所述多个视频片段的个数。

可选地,所述获取单元41,获取目标视频的文本文件,包括:

获取所述目标视频的下载地址;

根据所述目标视频的下载地址与服务器建立网络连接;

若成功建立所述网络连接,则在本地下载目录中创建目标文件;

再次与所述服务器建立网络连接,并根据所述目标视频的下载地址,将所述文本文件下载到所述目标文件中;

从所述目标文件中获取所述文本文件。

可选地,所述下载单元42,解析所述文本文件,得到所述多个视频片段的下载地址,包括:

解析所述文本文件,得到所述文本文件中包括的多个关键字段,一个关键字段中包括一个视频片段的相关信息;

根据所述多个关键字段中包括的视频片段的相关信息,得到下载列表,所述下载列表中包括所述多个视频片段的下载地址。

可选地,所述视频下载进度的确定装置40还包括存储单元45,其中:

针对每个视频片段,所述存储单元45在所述下载单元42下载完成所述视频片段后,根据所述视频片段的下载地址在所述下载列表中的索引,对所述视频片段命名;

存储所述视频片段。

可选地,所述存储单元45,在存储所述多个视频片段后,确定所述多个视频片段的存储路径;

将所述文本文件中包括的所述多个视频片段的下载地址,替换为所述多个视频片段的存储路径,以更新所述文本文件。

本申请实施例提供的视频下载进度的确定装置40还可执行图1和图2的方法,并实现视频下载进度的确定装置在图1和图2所示实施例的功能,本申请实施例在此不再赘述。

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

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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