视频文件处理方法、装置、电子设备及存储介质与流程

文档序号:18633607发布日期:2019-09-11 21:56阅读:268来源:国知局
视频文件处理方法、装置、电子设备及存储介质与流程

本公开涉及信息处理技术领域,尤其涉及一种视频文件处理方法、装置、电子设备及存储介质。



背景技术:

通常,编码器在编码视频文件时,是将元数据存储单元放置在媒体数据存储单元之后,在流媒体播放时,则需要将整个视频文件下载下来才能开始播放。

一种相关技术中,为了减少首屏时间,可以将元数据存储单元移至媒体数据存储单元之前,移动元数据存储单元的位置会造成媒体数据存储单元的位置相对于整个视频文件产生偏移,因此,需要根据元数据存储单元的占用空间修改索引信息;但是,由于元数据存储单元中存在索引信息,元数据存储单元较大,使得视频文件也会变得很大,在传输视频文件时,会导致传输时间较长,进而导致视频文件的播放延迟。

另一种相关技术中,为了减少视频文件的传输时间,可以对元数据存储单元进行压缩得到元数据压缩单元,并通过元数据压缩单元替代元数据存储单元;但是,由于元数据压缩单元是对元数据存储单元压缩后得到的,若要将元数据压缩单元移至媒体数据存储单元之前以减少首屏时间,则需要在对元数据存储单元压缩前,根据压缩后的元数据压缩单元的占用空间提前修改索引信息,但是在修改时无法提前得知本次压缩得到的元数据压缩单元的占用空间,因此,也就无法将元数据压缩单元移至媒体数据存储单元之前,进而导致首屏时间较长。



技术实现要素:

本公开提供一种视频文件处理方法、装置、电子设备及存储介质,以至少解决相关技术中无法同时减小视频文件的传输时间和播放视频文件时的首屏时间的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种视频文件方法,所述视频文件包括元数据存储单元和媒体数据存储单元,所述方法包括:

获取预设偏移量;所述预设偏移量是根据上一次对所述元数据存储单元压缩后得到元数据压缩单元的占用空间进行更新的;

根据所述预设偏移量对所述元数据存储单元中的索引信息进行修改;

对所述元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元;

获取所述本次压缩得到的元数据压缩单元的占用空间;

判断所述预设偏移量与所述本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件;

当满足所述预设条件时,将所述本次压缩得到的元数据压缩单元移至所述媒体数据存储单元之前。

可选的,在所述判断所述预设偏移量与所述本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件的步骤之后,还包括:

当不满足所述预设条件,且所述本次压缩得到的元数据压缩单元的占用空间与之前每一次压缩得到的元数据压缩单元的占用空间均不相等时,根据所述本次压缩得到的元数据压缩单元的占用空间继续更新所述预设偏移量,并执行所述获取预设偏移量的步骤之后的步骤。

可选的,在所述判断所述预设偏移量与所述本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件的步骤之后,还包括:

当不满足所述预设条件,且所述本次压缩得到的元数据压缩单元的占用空间与指定次数压缩得到的元数据压缩单元的占用空间相等时,获取所述指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间;所述指定次数为本次之前的任意一次;

从所述指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间中,选取最小占用空间和最大占用空间;

将所述最大占用空间加上第一设定值,得到目标占用空间;

根据所述最小占用空间至所述目标占用空间之间的每一个占用空间,依次更新所述预设偏移量,并执行所述获取预设偏移量的步骤之后的步骤。

可选的,在所述根据所述最小占用空间至所述目标占用空间之间的每一个占用空间,依次更新所述预设偏移量,并执行所述获取预设偏移量的步骤之后的步骤之后,所述方法还包括:

当所述最小占用空间至所述目标占用空间之间的每一个占用空间,与对应的每次压缩得到的元数据压缩单元的占用空间之间的差值均不满足所述预设条件时,将所述元数据存储单元移至所述媒体数据存储单元之前。

可选的,所述预设条件为所述差值等于0。

可选的,所述预设条件为所述差值大于或等于第二设定值,所述第二设定值为正数,在所述将所述本次压缩得到的元数据压缩单元移至所述媒体数据存储单元之前的步骤之后,所述方法还包括:

根据所述差值确定空闲单元的目标数量;

在所述元数据压缩单元与所述媒体数据存储单元之间填充具有所述目标数量的空闲单元。

可选的,所述元数据存储单元中的索引信息包括所述媒体数据存储单元中的每个视频帧在所述视频文件中的字节序号;所述根据所述预设偏移量对所述元数据存储单元中的索引信息进行修改的步骤,包括:

将所述字节序号分别加上所述预设偏移量,以实现对所述元数据存储单元中的索引信息进行修改。

根据本公开实施例的第二方面,提供一种视频文件处理装置,所述视频文件包括元数据存储单元和媒体数据存储单元,所述装置包括:

预设偏移量获取模块,被配置为获取预设偏移量;所述预设偏移量是根据上一次对所述元数据存储单元压缩后得到元数据压缩单元的占用空间进行更新的;

索引信息修改模块,被配置为根据所述预设偏移量对所述元数据存储单元中的索引信息进行修改;

元数据存储单元压缩模块,被配置为对所述元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元;

占用空间第一获取模块,被配置为获取所述本次压缩得到的元数据压缩单元的占用空间;

预设条件判断模块,被配置为判断所述预设偏移量与所述本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件;

元数据压缩单元移动模块,被配置为当满足所述预设条件时,将所述本次压缩得到的元数据压缩单元移至所述媒体数据存储单元之前。

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

预设偏移量第一更新模块,被配置为当不满足所述预设条件,且所述本次压缩得到的元数据压缩单元的占用空间与之前每一次压缩得到的元数据压缩单元的占用空间均不相等时,根据所述本次压缩得到的元数据压缩单元的占用空间继续更新所述预设偏移量,并执行所述预设偏移量获取模块之后的模块。

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

占用空间第二获取模块,被配置为当不满足所述预设条件,且所述本次压缩得到的元数据压缩单元的占用空间与指定次数压缩得到的元数据压缩单元的占用空间相等时,获取所述指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间;所述指定次数为本次之前的任意一次;

占用空间选取模块,被配置为从所述指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间中,选取最小占用空间和最大占用空间;

目标占用空间计算模块,被配置为将所述最大占用空间加上第一设定值,得到目标占用空间;

预设偏移量第二更新模块,被配置为根据所述最小占用空间至所述目标占用空间之间的每一个占用空间,依次更新所述预设偏移量,并执行所述预设偏移量获取模块之后的模块。

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

元数据存储单元移动模块,被配置为当所述最小占用空间至所述目标占用空间之间的每一个占用空间,与对应的每次压缩得到的元数据压缩单元的占用空间之间的差值均不满足所述预设条件时,将所述元数据存储单元移至所述媒体数据存储单元之前。

可选的,所述预设条件为所述差值等于0。

可选的,所述预设条件为所述差值大于或等于第二设定值,所述第二设定值为正数,所述装置还包括:

目标数量确定模块,被配置为根据所述差值确定空闲单元的目标数量;

空闲单元填充模块,被配置为在所述元数据压缩单元与所述媒体数据存储单元之间填充具有所述目标数量的空闲单元。

可选的,所述元数据存储单元中的索引信息包括所述媒体数据存储单元中的每个视频帧在所述视频文件中的字节序号;所述索引信息修改模块,包括:

所述索引信息修改子模块,被配置为将所述字节序号分别加上所述预设偏移量,以实现对所述元数据存储单元中的索引信息进行修改。

根据本公开实施例的第三方面,提供了一种电子设备,包括:

处理器;

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

其中,所述处理器被配置为执行所述指令,以实现上述的视频文件处理方法。

根据本公开实施例的第四方面,提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述的视频文件处理方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述的视频文件处理方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

通过获取预设偏移量,预设偏移量是根据上一次对元数据存储单元压缩后得到元数据压缩单元的占用空间进行更新的,根据预设偏移量对元数据存储单元中的索引信息进行修改,对元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元,获取本次压缩得到的元数据压缩单元的占用空间,判断预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件,当满足预设条件时,将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前。根据上一次压缩得到元数据压缩单元的占用空间更新预设偏移量,从而在对元数据存储单元压缩前,根据预设偏移量提前修改索引信息,并且在预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值满足预设条件时,将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前,以减少首屏时间;且在视频文件中,是通过压缩后的元数据压缩单元替代元数据存储单元,减小了视频文件的大小,从而在传输视频文件时,可减少文件的传输时间,进而减少视频播放的延迟。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种视频文件处理方法的流程图;

图2是根据一示例性实施例示出的另一种视频文件处理方法的流程图;

图3是根据一示例性实施例示出的一种视频文件处理装置的框图;

图4是根据一示例性实施例示出的另一种视频文件处理装置的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种视频文件处理方法的流程图,如图1所示,所述方法可以包括以下步骤:

在步骤s101中,获取预设偏移量;所述预设偏移量是根据上一次对所述元数据存储单元压缩后得到元数据压缩单元的占用空间进行更新的。

视频文件为mp4文件,其包括元数据存储单元(moviemetadata,moov)和媒体数据存储单元(mediadata,mdat),此外,视频文件还包括文件类型单元(filetype,ftyp),且编码器在编码视频文件时,文件类型单元位于整个视频文件的最开始,接着是媒体数据存储单元,最后才是元数据存储单元,即元数据存储单元放置在媒体数据存储单元之后。

其中,文件类型单元内部记录了视频文件的版本、兼容协议等内容,媒体数据存储单元内部存储有实际的视频数据,元数据存储单元内部记录了视频文件的各种元数据和索引信息,元数据包括视频文件的分辨率、色域、帧率和时长等数据,索引信息用来在媒体数据存储单元中查找对应的视频数据。

需要说明的是,视频文件不仅局限于mp4文件,只要元数据存储单元位于媒体数据存储单元之后,且元数据存储单元能够进行压缩的视频文件均可。

如果将元数据存储单元压缩后得到的元数据压缩单元移至媒体数据存储单元之前,会造成媒体数据存储单元的位置相对于整个视频文件产生偏移,为了能够根据元数据存储单元中的索引信息准确查找到对应的视频数据,需要在对元数据存储单元压缩前修改元数据存储单元中的索引信息,但是,由于无法提前得知本次对元数据存储单元压缩后得到的元数据压缩单元的占用空间,因此,需要根据上一次压缩得到元数据压缩单元的占用空间更新预设偏移量,并获取更新的预设偏移量。

例如,上一次压缩得到元数据压缩单元的占用空间为100字节,即预设偏移量为100字节。

在步骤s102中,根据所述预设偏移量对所述元数据存储单元中的索引信息进行修改。

根据更新的预设偏移量对元数据存储单元中的索引信息进行修改,也就是说假定在媒体数据存储单元之前,给本次压缩得到的元数据压缩单元预留了预设偏移量大小的空间。

在步骤s103中,对所述元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元。

对元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元,一般在对元数据存储单元进行压缩时,能够保持60%左右的压缩率。

例如,元数据存储单元的占用空间为250字节,若压缩率为60%,则压缩后获得本次压缩得到的元数据压缩单元的占用空间为250-250×60%=100字节。

在步骤s104中,获取所述本次压缩得到的元数据压缩单元的占用空间。

在获得本次压缩得到的元数据压缩单元后,获取本次压缩得到的元数据压缩单元的占用空间,其中,占用空间通常以字节来表示。

在步骤s105中,判断所述预设偏移量与所述本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件。

判断预设偏移量与本次压缩得到的元数据压缩单元的占用空间是否满足预设条件;其中,预设条件为:所述差值等于0,或者,所述差值大于或等于第二设定值,第二设定值为正数。

当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值等于0时,或者,当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值大于或等于第二设定值时,确定预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值满足预设条件。

需要说明的是,第二设定值根据视频文件的数据存储格式来确定,例如,视频文件为mp4文件,由于mp4文件中的一个单元至少为8个字节,因此,第二设定值为8。

例如,预设偏移量为100字节,且本次压缩得到的元数据压缩单元的占用空间为100字节,预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值等于0,确定预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值满足预设条件。

在步骤s106中,当满足所述预设条件时,将所述本次压缩得到的元数据压缩单元移至所述媒体数据存储单元之前。

当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值满足预设条件时,也就确定了在媒体数据存储单元之前,给本次压缩得到的元数据压缩单元预留的预设偏移量大小的空间,能够放入本次压缩得到的元数据压缩单元,将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前。

需要说明的是,当预设条件为差值等于0,即当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值等于0时,直接将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前,当预设条件为差值大于或等于第二设定值时,第二设定值为正数,在将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前,还需要在元数据压缩单元与媒体数据存储单元之间填充相应数量的空闲单元。

具体的,可采用faststart参数将次压缩得到的元数据压缩单元移至媒体数据存储单元之前。

在实际执行过程中,是先对元数据存储单元进行压缩,获得第一次压缩得到的元数据压缩单元,获取第一次压缩得到的元数据压缩单元的占用空间,根据第一次压缩得到的元数据压缩单元的占用空间更新预设偏移量,后续是根据该预设偏移量对元数据存储单元中的索引信息进行修改,对元数据存储单元进行第二次压缩,获得第二次压缩得到的元数据压缩单元,获取第二次压缩得到的元数据压缩单元的占用空间,判断该预设偏移量与第二次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件,当满足预设条件时,将第二次压缩得到的元数据压缩单元移至所述媒体数据存储单元之前。

因此,可以理解为,对元数据存储单元进行第n次压缩,获得第n次压缩得到的元数据压缩单元,与第n次压缩得到的元数据压缩单元的占用空间进行比较的预设偏移量是第n-1次压缩得到的元数据压缩单元的占用空间,n为大于0的正整数。

此时,处理后的视频文件依次包括的是文件类型单元、元数据压缩单元和媒体数据存储单元。处理后的视频文件可应用于流媒体中,后续可将处理后的视频文件上传至网络中,客户端与网络进行连接,从网络上下载处理后的视频文件,然后,对视频文件进行解析,将解析后的视频文件提交给客户端中的播放器进行播放,实现边下边播的效果;具体的,在对视频文件进行解析时,可对视频文件中的元数据压缩单元进行解压缩,得到元数据存储单元,在播放器播放视频文件时,可基于元数据存储单元中的索引信息,查找已经下载完成的媒体数据存储单元中的视频数据,即可在播放器中播放下载完成的视频数据。

由于元数据压缩单元小于元数据存储单元,使得处理后的视频文件小于处理前的视频文件,后续在传输视频文件的过程中,可减少文件的传输时间,进而减少视频播放的延迟;且由于元数据压缩单元位于媒体数据存储单元之前,则在将对视频文件进行播放时,无需将整个视频文件全部下载下来,下载完成元数据压缩单元后,对元数据压缩单元进行解压缩得到元数据存储单元,只要媒体数据存储单元中的第一帧视频下载成功,即可基于元数据存储单元中的索引信息,在播放器中播放第一帧视频,从而减少了播放前的等待时间,即减少了首屏时间。

本公开的实施例提供的技术方案至少带来以下有益效果:

通过获取预设偏移量,预设偏移量是根据上一次对元数据存储单元压缩后得到元数据压缩单元的占用空间进行更新的,根据预设偏移量对元数据存储单元中的索引信息进行修改,对元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元,获取本次压缩得到的元数据压缩单元的占用空间,判断预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件,当满足预设条件时,将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前。根据上一次压缩得到元数据压缩单元的占用空间更新预设偏移量,从而在对元数据存储单元压缩前,根据预设偏移量提前修改索引信息,并且在预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值满足预设条件时,将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前,以减少首屏时间;且在视频文件中,是通过压缩后的元数据压缩单元替代元数据存储单元,减小了视频文件的大小,从而在传输视频文件时,可减少文件的传输时间,进而减少视频播放的延迟。

图2是根据一示例性实施例示出的另一种视频文件处理方法的流程图,如图2所示,所述方法还可以包括以下步骤:

在步骤s201中,获取预设偏移量;所述预设偏移量是根据上一次对所述元数据存储单元压缩后得到元数据压缩单元的占用空间进行更新的。

此步骤与上述的步骤s101原理类似,在此不在赘述。

在步骤s202中,根据所述预设偏移量对所述元数据存储单元中的索引信息进行修改。

具体的,上述步骤s202可以包括如下步骤a1:

在步骤a1中,将所述字节序号分别加上所述预设偏移量,以实现对所述元数据存储单元中的索引信息进行修改。

在本公开的实施例中,元数据存储单元中的索引信息包括媒体数据存储单元中的每个视频帧在视频文件中的字节序号,因此,当需要将元数据存储单元压缩后得到的元数据压缩单元移至媒体数据存储单元之前,会造成媒体数据存储单元的位置相对于整个视频文件产生偏移,为了能够根据元数据存储单元中的索引信息准确查找到对应的视频数据,需要将媒体数据存储单元中的每个视频帧在视频文件中的字节序号分别加上预设偏移量。

例如,媒体数据存储单元中的其中一个视频帧在视频文件中的字节序号为第100字节至第1000字节,且预设偏移量为100字节,则修改后的索引信息,即修改后的该视频帧在视频文件中的字节序号为第200字节至第1100字节,对于媒体数据存储单元中的其他视频帧,也可相应加上该预设偏移量。

在步骤s203中,对所述元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元。

在步骤s204中,获取所述本次压缩得到的元数据压缩单元的占用空间。

在步骤s205中,判断所述预设偏移量与所述本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件。

对元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元,获取本次压缩得到的元数据压缩单元的占用空间,然后,判断预设偏移量与本次压缩得到的元数据压缩单元的占用空间是否满足预设条件;其中,预设条件为:所述差值等于0,或者,所述差值大于或等于第二设定值。

当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值满足预设条件时,此时,预设条件为差值大于或等于第二设定值,第二设定值为正数,执行步骤s206至步骤s208;当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值满足预设条件时,此时,预设条件为差值等于0,只执行步骤s206;当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值不满足预设条件,且本次压缩得到的元数据压缩单元的占用空间与之前每一次压缩得到的元数据压缩单元的占用空间均不相等时,执行步骤s209;当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值不满足预设条件,且本次压缩得到的元数据压缩单元的占用空间与指定次数压缩得到的元数据压缩单元的占用空间相等时,执行步骤s210至步骤s213。

在步骤s206中,当所满足预设条件时,将所述本次压缩得到的元数据压缩单元移至所述媒体数据存储单元之前。

在一种示例性的实施例中,当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值等于0时,表示给本次压缩得到的元数据压缩单元预留的预设偏移量大小的空间,与本次压缩得到的元数据压缩单元的占用空间刚好相等,则直接将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前。

在另一种示例性的实施例中,当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值大于或等于第二设定值时,表示给本次压缩得到的元数据压缩单元预留的预设偏移量大小的空间,大于本次压缩得到的元数据压缩单元的占用空间,且空余出来至少一个单元的空间,则在将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前的步骤之后,还需执行步骤s207和步骤s208。

在步骤s207中,根据所述差值确定空闲单元的目标数量。

在步骤s208中,在所述元数据压缩单元与所述媒体数据存储单元之间填充具有所述目标数量的空闲单元。

当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值大于或等于第二设定值时,在将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前的步骤后,还需要根据该差值确定空闲单元的目标数量,然后在元数据压缩单元与媒体数据存储单元之间填充具有所述目标数量的空闲单元。

也就是说,空闲单元的目标数量等于预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值。

例如,当预设偏移量为100字节,本次压缩得到的元数据压缩单元的占用空间为92字节,则在将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前的步骤后,确定空闲单元的目标数量为8个字节,则在元数据压缩单元与媒体数据存储单元之间填充具有8个字节的空闲单元。

在步骤s209中,当不满足所述预设条件,且所述本次压缩得到的元数据压缩单元的占用空间与之前每一次压缩得到的元数据压缩单元的占用空间均不相等时,根据所述本次压缩得到的元数据压缩单元的占用空间继续更新所述预设偏移量,并执行所述获取预设偏移量的步骤之后的步骤。

当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值不满足预设条件,且本次压缩得到的元数据压缩单元的占用空间与之前每一次压缩得到的元数据压缩单元的占用空间均不相等时,表示此次更新的预设偏移量不符合要求,根据本次压缩得到的元数据压缩单元的占用空间继续更新预设偏移量,并执行步骤s202至步骤s205。

若根据本次压缩得到的元数据压缩单元的占用空间更新的预设偏移量依旧不符合要求时,继续重复上述步骤s202至步骤s205。

例如,第一次对元数据存储单元压缩后得到元数据压缩单元的占用空间为100字节,则根据第一次压缩得到元数据压缩单元的占用空间对预设偏移量进行第一次更新,即第一次更新的预设偏移量为100字节;然后,根据第一次更新的预设偏移量对元数据存储单元中的索引信息进行修改,并对元数据存储单元进行第二次压缩,获取到第二次对元数据存储单元压缩后得到元数据压缩单元的占用空间为110字节,第一次更新的预设偏移量与第二次压缩得到元数据压缩单元的占用空间之间的差值不满足预设条件,则根据第二次压缩得到元数据压缩单元的占用空间对预设偏移量进行第二次更新,即第二次更新的预设偏移量为110字节;然后,根据第二次更新的预设偏移量对元数据存储单元中的索引信息进行修改,并对元数据存储单元进行第三次压缩,获取第三次对元数据存储单元压缩后得到元数据压缩单元的占用空间为105字节,第二次更新的预设偏移量与第三次压缩得到元数据压缩单元的占用空间之间的差值还不满足预设条件,则根据第三次压缩得到元数据压缩单元的占用空间对预设偏移量进行第三次更新,即第三次更新的预设偏移量为105;然后,依次类推。

基于上一次对元数据存储单元压缩后得到元数据压缩单元的占用空间对预设偏移量进行不断的更新,通过多次的迭代,当迭代过程中出现预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值符合预设条件时,迭代过程结束,将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前,以得到处理后的视频文件。

在步骤s210中,当不满足所述预设条件,且所述本次压缩得到的元数据压缩单元的占用空间与指定次数压缩得到的元数据压缩单元的占用空间相等时,获取所述指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间;所述指定次数为本次之前的任意一次。

当预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值不满足预设条件,且本次压缩得到的元数据压缩单元的占用空间与指定次数压缩得到的元数据压缩单元的占用空间相等时,表示迭代过程中出现不收敛的情况,则退出迭代过程,进入枚举过程,枚举过程指的是步骤s210至步骤s213。

首先,获取指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间,指定次数为本次之前的任意一次。

假设指定次数为第k次,本次为第n次,k大于或等于1且小于n,当第n-1次更新的预设偏移量xn-1与第n次压缩得到的元数据压缩单元的占用空间yn之间的差值不满足预设条件,且第n次压缩得到的元数据压缩单元的占用空间yn与第k次压缩得到的元数据压缩单元的占用空间yk相等时,获取第k次至第n次之间的每一次压缩得到的元数据压缩单元的占用空间,即yk,yk+1,…yn。

例如,k等于10,n等于13,第10次压缩得到的元数据压缩单元的占用空间y10为102字节,第11次压缩得到的元数据压缩单元的占用空间为106字节,第12次压缩得到的元数据压缩单元的占用空间为108字节,第13次压缩得到的元数据压缩单元的占用空间为102字节,第12次更新的预设偏移量(即第12次压缩得到的元数据压缩单元的占用空间108字节)与第13次压缩得到的元数据压缩单元的占用空间102字节之间的差值不满足预设条件,且第13次压缩得到的元数据压缩单元的占用空间102字节与第10次压缩得到的元数据压缩单元的占用空间102字节相等,则获取第10次至第13次之间的每一次压缩得到的元数据压缩单元的占用空间,即分别获取第10次压缩得到的元数据压缩单元的占用空间102字节,第11次压缩得到的元数据压缩单元的占用空间106字节,第12次压缩得到的元数据压缩单元的占用空间108字节以及第13次压缩得到的元数据压缩单元的占用空间102字节。

在步骤s211中,从所述指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间中,选取最小占用空间和最大占用空间。

然后,从指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间中,选取最小占用空间和最大占用空间,其中,最大占用空间指的是:指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间中的最大值,最小占用空间指的是:指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间中的最小值。

假设指定次数为第k次,本次为第n次,从第k次至第n次之间的每一次压缩得到的元数据压缩单元的占用空间中,即yk,yk+1,…yn中选取最小占用空间和最大占用空间。

例如,k等于10,n等于13,第10次压缩得到的元数据压缩单元的占用空间102字节,第11次压缩得到的元数据压缩单元的占用空间106字节,第12次压缩得到的元数据压缩单元的占用空间108字节,第13次压缩得到的元数据压缩单元的占用空间102字节,则从第10次至第13次之间的每一次压缩得到的元数据压缩单元的占用空间中,选取到最小占用空间为102字节,最大占用空间为108字节。

在步骤s212中,将所述最大占用空间加上第一设定值,得到目标占用空间。

接着,将最大占用空间加上第一设定值,得到目标占用空间,其中,第一设定值是经验值,可以为20字节。

例如,最大占用空间为108字节,第一设置值为20字节,则目标占用空间为128字节。

在步骤s213中,根据所述最小占用空间至所述目标占用空间之间的每一个占用空间,依次更新所述预设偏移量,并执行所述获取预设偏移量的步骤之后的步骤。

最后,根据最小占用空间至目标占用空间之间的每一个占用空间,依次更新预设偏移量,并在更次一次预设偏移量后,执行一次步骤s202至步骤s205,每次从最小占用空间至目标占用空间之间选取一个占用空间,依据选取的占用空间更新预设偏移量,根据预设偏移量对元数据存储单元中的索引信息进行修改,并对元数据存储单元进行压缩,当选取的占用空间与压缩后的元数据压缩单元的占用空间满足预设条件时,将压缩的元数据压缩单元移至媒体数据存储单元之前,得到处理后的视频文件,当选取的占用空间与压缩后的元数据压缩单元的占用空间不满足预设条件时,从最小占用空间至目标占用空间之间再选取一个另一个占用空间,并重复步骤s202至步骤s205。

例如,最小占用空间为102字节,目标占用空间为128字节,则最小占用空间至所述目标占用空间之间的每一个占用空间分别为102字节、103字节、104字节…127字节和128字节,第一次先选取102字节更新预设偏移量,并执行步骤s202至步骤s205,当102字节与这次压缩的元数据压缩单元的占用空间不满足预设条件时,第二次选取103字节更新预设偏移量,并执行步骤s202至步骤s205,当103字节与这次压缩的元数据压缩单元的占用空间不满足预设条件时,第三次选取104字节更新预设偏移量,依次类推,直至更新的预设偏移量与更新预设偏移量后压缩得到的元数据压缩单元的占用空间满足预设条件。

在步骤s214中,当所述最小占用空间至所述目标占用空间之间的每一个占用空间,与对应的每次压缩得到的元数据压缩单元的占用空间之间的差值均不满足所述预设条件时,将所述元数据存储单元移至所述媒体数据存储单元之前。

当最小占用空间至目标占用空间之间的每一个占用空间,与对应的每次压缩得到的元数据压缩单元的占用空间之间的差值均不满足预设条件时,则无需再对元数据存储单元进行压缩,直接将元数据存储单元移至所述媒体数据存储单元之前,保证视频文件的正常使用。

例如,最小占用空间至所述目标占用空间之间的每一个占用空间分别为102字节、103字节、104字节…127字节和128字节,且从102字节开始至128字节为止,每次选取的占用空间与对应的每次压缩得到的元数据压缩单元的占用空间之间的差值都不满足预设条件,则直接将元数据存储单元移至所述媒体数据存储单元之前。

本公开的实施例提供的技术方案至少带来以下有益效果:

通过先迭代后枚举的方式对预设偏移量进行更新,确定合适的预设偏移量,从而在对元数据存储单元压缩前,根据预设偏移量提前修改索引信息,并且在预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值满足预设条件时,将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前,以减少首屏时间;且在视频文件中,是通过压缩后的元数据压缩单元替代元数据存储单元,减小了视频文件的大小,从而在传输视频文件时,可减少文件的传输时间,进而减少视频播放的延迟。

图3是根据一示例性实施例示出的一种视频文件处理装置框图。参照图3,该视频文件处理装置300包括:预设偏移量获取模块301,索引信息修改模块302,元数据存储单元压缩模块303,占用空间第一获取模块304,预设条件判断模块305和元数据压缩单元移动模块306。

预设偏移量获取模块301,被配置为获取预设偏移量;所述预设偏移量是根据上一次对所述元数据存储单元压缩后得到元数据压缩单元的占用空间进行更新的;

索引信息修改模块302,被配置为根据所述预设偏移量对所述元数据存储单元中的索引信息进行修改;

元数据存储单元压缩模块303,被配置为对所述元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元;

占用空间第一获取模块304,被配置为获取所述本次压缩得到的元数据压缩单元的占用空间;

预设条件判断模块305,被配置为判断所述预设偏移量与所述本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件;

元数据压缩单元移动模块306,被配置为当满足所述预设条件时,将所述本次压缩得到的元数据压缩单元移至所述媒体数据存储单元之前。

图4是根据一示例性实施例示出的另一种视频文件处理装置的框图。在图3的基础上,该视频文件处理装置300还包括:

预设偏移量第一更新模块307,被配置为当不满足所述预设条件,且所述本次压缩得到的元数据压缩单元的占用空间与之前每一次压缩得到的元数据压缩单元的占用空间均不相等时,根据所述本次压缩得到的元数据压缩单元的占用空间继续更新所述预设偏移量,并执行所述预设偏移量获取模块之后的模块。

一种可选的实施方式中,该视频文件处理装置300还包括:

占用空间第二获取模块308,被配置为当不满足所述预设条件,且所述本次压缩得到的元数据压缩单元的占用空间与指定次数压缩得到的元数据压缩单元的占用空间相等时,获取所述指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间;所述指定次数为本次之前的任意一次;

占用空间选取模块309,被配置为从所述指定次数至本次之间的每一次压缩得到的元数据压缩单元的占用空间中,选取最小占用空间和最大占用空间;

目标占用空间计算模块310,被配置为将所述最大占用空间加上第一设定值,得到目标占用空间;

预设偏移量第二更新模块311,被配置为根据所述最小占用空间至所述目标占用空间之间的每一个占用空间,依次更新所述预设偏移量,并执行所述预设偏移量获取模块之后的模块。

一种可选的实施方式中,该视频文件处理装置300还包括:

元数据存储单元移动模块312,被配置为当所述最小占用空间至所述目标占用空间之间的每一个占用空间,与对应的每次压缩得到的元数据压缩单元的占用空间之间的差值均不满足所述预设条件时,将所述元数据存储单元移至所述媒体数据存储单元之前。

一种可选的实施方式中,所述预设条件为所述差值等于0。

一种可选的实施方式中,所述预设条件为所述差值大于或等于第二设定值,所述第二设定值为正数,所述装置还包括:

目标数量确定模块313,被配置为根据所述差值确定空闲单元的目标数量;

空闲单元填充模块314,被配置为在所述元数据压缩单元与所述媒体数据存储单元之间填充具有所述目标数量的空闲单元。

一种可选的实施方式中,所述元数据存储单元中的索引信息包括所述媒体数据存储单元中的每个视频帧在所述视频文件中的字节序号;所述索引信息修改模块302,包括:

所述索引信息修改子模块,被配置为将所述字节序号分别加上所述预设偏移量,以实现对所述元数据存储单元中的索引信息进行修改。

本公开的实施例提供的技术方案至少带来以下有益效果:

通过获取预设偏移量,预设偏移量是根据上一次对元数据存储单元压缩后得到元数据压缩单元的占用空间进行更新的,根据预设偏移量对元数据存储单元中的索引信息进行修改,对元数据存储单元进行压缩,获得本次压缩得到的元数据压缩单元,获取本次压缩得到的元数据压缩单元的占用空间,判断预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值是否满足预设条件,当满足预设条件时,将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前。根据上一次压缩得到元数据压缩单元的占用空间更新预设偏移量,从而在对元数据存储单元压缩前,根据预设偏移量提前修改索引信息,并且在预设偏移量与本次压缩得到的元数据压缩单元的占用空间之间的差值满足预设条件时,将本次压缩得到的元数据压缩单元移至媒体数据存储单元之前,以减少首屏时间;且在视频文件中,是通过压缩后的元数据压缩单元替代元数据存储单元,减小了视频文件的大小,从而在传输视频文件时,可减少文件的传输时间,进而减少视频播放的延迟。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,还提供了一种电子设备,处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行上述指令,以实现上述的视频文件处理方法。

在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述的视频文件处理方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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