视频数据存储方法、读取方法、电子设备和可读存储介质与流程

文档序号:29915495发布日期:2022-05-06 04:15阅读:157来源:国知局
视频数据存储方法、读取方法、电子设备和可读存储介质与流程

1.本技术涉及视频数据处理技术领域,特别是涉及一种视频数据存储方法、读取方法、电子设备和可读存储介质。


背景技术:

2.随着视频监控装置的发展,单位时间内视频数据的容量越来越大,以致有限的存储空间内难以存储较长时长的视频数据,现有技术中采用了通过对视频数据进行抽帧存储,从而降低原始的视频数据的存储空间的方法,但是,在对原始的视频数据抽帧时如果因网络拥挤发生丢帧,部分抽帧算法会导致存储和读取视频帧的时序发生错乱,以致读取时解码出的图像数据出现混乱。有鉴于此,如何提高存储空间内存储的视频数据的时长,并且在读取视频数据时能有效避免视频帧读取顺序错乱成为亟待解决的问题。


技术实现要素:

3.本技术主要解决的技术问题是提供一种视频数据存储方法、读取方法、电子设备和可读存储介质,能够提高存储空间内存储的视频数据的时长,并且在读取视频数据时能有效避免视频帧读取顺序错乱。
4.为解决上述技术问题,本技术第一方面提供一种视频数据存储方法,该方法包括:获得待存储的视频数据和视频数据对应的存储层级结构;其中,存储层级结构包括第一层级和至少一个其他层级;响应于视频数据的当前帧为第一层级帧,将第一层级帧存储在第一层级中;响应于视频数据的当前帧为其他层级帧,将其他层级帧存储在对应的其他层级中,生成其他层级帧对应的位置信息,并将位置信息存储在第一层级中的对应位置;其中,所述第一层级帧包括关键帧和部分非关键帧,所述其他层级帧包括所述第一层级之外的非关键帧。
5.为解决上述技术问题,本技术第二方面提供一种视频数据读取方法,该方法包括:获得已存储的视频数据;其中,所述视频数据基于上述第一方面所述的方法存储;响应于获得从当前时间点读取视频数据的查看指令,基于所述当前时间点在第一层级中确定与所述当前时间点临近的关键帧,从所述关键帧开始依次读取视频数据中的视频帧;响应于读取到所述第一层级中的非关键帧,基于所述非关键帧对应的关键帧确定所述非关键帧对应的图像数据;响应于与读取到所述第一层级中的关键帧,返回所述从所述关键帧开始依次读取视频数据中的视频帧的步骤。
6.为解决上述技术问题,本技术第三方面提供一种视频数据读取方法,该方法包括:获得已存储的视频数据;其中,所述视频数据基于上述第一方面所述的方法存储;响应于获得从回看时间点读取视频数据的查看指令,基于所述回看时间点在第一层级中确定与所述回看时间点临近的关键帧,从所述关键帧开始依次读取视频数据中的视频帧;响应于读取到所述第一层级中的非关键帧,基于所述非关键帧对应的关键帧确定所述非关键帧对应的图像数据;响应于读取到所述第一层级中的非关键帧对应的位置信息,基于所述位置信息
从其他层级中提取所述非关键帧,并基于所述非关键帧对应的关键帧确定所述非关键帧对应的图像数据;响应于与读取到所述第一层级中的关键帧,返回所述从所述关键帧开始依次读取视频数据中的视频帧的步骤。
7.为解决上述技术问题,本技术第四方面提供一种电子设备,该电子设备包括:相互耦接的存储器和处理器,其中,所述存储器存储有程序数据,所述处理器调用所述程序数据以执行上述第一方面或第二方面或第三方面所述的方法。
8.为解决上述技术问题,本技术第五方面提供一种计算机存储介质,其上存储有程序数据,所述程序数据被处理器执行时实现上述第一方面或第二方面或第三方面所述的方法。
9.上述方案,获得待存储的视频数据后,确定视频数据对应的存储层级结构,其中,存储层级结构包括一个第一层级和至少一个其他层级,其中,第一层级对应存储第一层级帧,其他层级对应存储其他层级帧,第一层级帧包括关键帧和部分非关键帧,其他层级帧包括第一层级之外的非关键帧,当视频数据的当前帧为第一层级帧时,将第一层级帧存储在第一层级中,以使第一层级中必然包括关键帧,当第一层级帧除关键帧还包括非关键帧时,第一层级中相对于原始的视频数据而言完成了对原始的视频数据的抽帧,以提高第一层级对应的存储空间内存储的视频数据的时长,当视频数据的当前帧为其他层级帧时,将其他层级帧存储至其他层级中,并且,当其他层级帧存储在其他层级时,也就是非关键帧存储在其他层级时,生成非关键帧对应的位置信息,将位置信息也存储在第一层级中,进而在读取视频数据时,无论视频数据是否发生丢帧,第一层级中存储有关键帧、部分非关键帧和其他非关键帧对应的位置信息,从而有效避免视频帧读取顺序错乱。
附图说明
10.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:图1是本技术视频数据存储方法一实施方式的流程示意图;图2是本技术视频数据存储方法另一实施方式的流程示意图;图3是本技术图2中步骤s201对应的一实施方式的应用场景示意图;图4是本技术图2中步骤s209对应的一实施方式的应用场景示意图;图5是本技术视频数据读取方法一实施方式的流程示意图;图6是本技术视频数据读取方法另一实施方式的流程示意图;图7是本技术电子设备一实施方式的结构示意图;图8是本技术计算机存储介质一实施方式的结构示意图。
具体实施方式
11.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他
实施例,都属于本技术保护的范围。
12.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
13.请参阅图1,图1是本技术视频数据存储方法一实施方式的流程示意图,该方法包括:s101:获得待存储的视频数据和视频数据对应的存储层级结构,其中,存储层级结构包括第一层级和至少一个其他层级。
14.具体地,待存储的视频数据可以是摄像装置实时的视频流也可以是从内存向存储介质进行存储的视频数据。
15.进一步地,视频数据对应的存储层级结构预先设置,其中,存储层级结构包括一个第一层级和至少一个其他层级,第一层级与关键帧对应且关键帧存储在第一层级中。
16.在一应用方式中,确定存储层级结构的层级数量,其中,存储层级结构包括一个第一层级以及至少一个其他层级,视频数据中的视频帧基于视频帧的时序对应有递增的帧序号,其中,每个图像组(group of pictures,gop)中的初始视频帧为关键帧,且关键帧对应的帧序号在对应的图像组中最小,基于视频帧的帧序号将视频帧划分至对应的层级中。
17.在一应用场景中,存储层级结构包括一个第一层级和一个第二层级作为其他层级,视频数据中的视频帧基于视频帧的时序对应有递增的帧序号,且视频数据中的视频帧的帧序号以每个图像组分别设置,其中,每个图像组中的初始视频帧为关键帧,且关键帧对应的帧序号为偶数,将帧序号为偶数的视频帧作为第一层级帧归为第一层级,将帧序号为奇数的视频帧作为其他层级帧归为第二层级。
18.s102:响应于视频数据的当前帧为第一层级帧,将第一层级帧存储在第一层级中,其中,第一层级帧包括关键帧和部分非关键帧。
19.具体地,当视频数据中待存储的当前帧为第一层级帧时,将第一层级帧存储在第一层级中可存储的空间的最前端。其中,第一层级帧至少包括关键帧,也就是说第一层级帧可以只包括关键帧,也可以包括关键帧和部分非关键帧,第一层级帧必然包括视频数据中的关键帧。
20.进一步地,当第一层级帧为关键帧时,将关键帧存储在第一层级中可存储空间的最前端,也就是说,当第一层级中已存储有其他视频帧时,将关键帧存储在已存储的视频帧之后,当第一层级中没有视频帧时,将当前的关键帧存储在第一层级的最前端,以使第一层级与关键帧绑定,视频数据中的关键帧必然存储在第一层级中。
21.在一应用方式中,第一层级帧包括关键帧和每个关键帧对应的部分非关键帧,其中,第一层级帧对应的非关键帧基于预设的选取规则,从每个图像组中选取,将第一层级帧存储至第一层级中,从而第一层级中的视频帧相较于原始的视频数据,实现了对原始的视频数据进行抽帧,对第一层级中的视频帧进行解码后即可获得对帧率要求较低的视频流。
22.在一应用场景中,第一层级对应的存储空间为内存中的存储空间,当视频数据中待存储的当前帧为第一层级帧时,若第一层级对应的存储空间未满,则将第一层级帧存储在第一层级对应的存储空间中,若第一层级对应的存储空间已满,则将第一层级中的数据
转存至内存之外的其他存储介质,并清空第一层级在内存中对应的存储空间,将第一层级帧存储在存储空间的最前端。
23.s103:响应于视频数据的当前帧为其他层级帧,将其他层级帧存储在对应的其他层级中,生成其他层级帧对应的位置信息,并将位置信息存储在第一层级中的对应位置,其中,其他层级帧包括第一层级之外的非关键帧。
24.具体地,当视频数据的当前帧为其他层级帧时,将其他层级帧存储至其他层级中的对应位置。其中,其他层级帧为存储在第一层级之外的非关键帧。
25.进一步地,当非关键帧存储在其他层级中时,基于当前的非关键帧存储在其他层级中的存储位置,生成非关键帧对应的位置信息,其中,位置信息为非关键帧在其他层级中的位置偏移,该位置偏移与其他层级中已存储的视频帧占用的存储空间正相关,将非关键帧对应的位置信息存储在第一层级中。
26.需要说明的是,第一层级中存储顺序与视频帧的时序正相关,从而基于存储顺序将关键帧、非关键帧和非关键帧对应的位置信息存储在第一层级中,从而即使视频数据发生了丢帧时,第一层级中始终按照实际存储的视频数据中视频帧的存储顺序进行存储,当需要读取视频数据时,基于第一层级中的关键帧、非关键帧和非关键帧对应的位置信息,即可完成每个图像组从关键帧和非关键帧的读取,当读取到关键帧时,则直接读取对应的图像数据即可,当读取到非关键帧对应的位置信息时,则基于位置信息从对应的其他层级中提取对应的非关键帧,从而基于非关键帧对应的关键帧解码出非关键帧对应的图像数据,当读取到第一层级中的非关键帧时,则基于非关键帧对应的在第一层级中的关键帧解码出非关键帧对应的图像数据。
27.在一应用场景中,存储层级结构包括一个第一层级和一个其他层级,其中,第一层级对应的存储空间在内存中,可用于用户浏览摄像装置当前的画面,其他层级对应的存储空间在云平台中,其中,云平台对应第一层级设置有第一文件夹用于存储从内存中的第一层级转存过来的视频帧,云平台对应其他层级设置有第二文件夹用于存储其他层级中的视频帧。
28.进一步地,当获得摄像装置采集的视频数据时,当一个图像组中的关键帧到来时,将关键帧存储在第一层级中,当图像组中的非关键帧到来时,将非关键帧按照预设间隔依次存储在第一层级和其他层级中,其中,预设间隔可以是一个视频帧或两个视频帧,当非关键帧存储在其他层级中时,生成对应的位置信息,按视频帧的时序将非关键帧对应的位置信息存储在第一层级中,从而第一层级中包括每个图像组中的关键帧以及按时序排布的非关键帧的图像数据或位置信息,第二层级中包括每个图像组中的部分非关键帧的图像数据,因此,内存中的第一层级可以有效完成抽帧,从而降低内存中的存储压力,以使内存中有限的存储空间内可以存储时长更长的视频数据,当内存中存储容量超过存储阈值时,则第一层级中的至少部分视频帧从第一层级中转存至云平台的第一文件夹中。
29.可以理解的是,当需要实时浏览视频数据时,通过内存中的第一层级中的关键帧及其对应的非关键帧进行解码即可获得实时的视频流,当需要进行回放时,则基于第一层级或第一文件夹中存储的关键帧、以及按时序排布的非关键帧的图像数据或位置信息进行解码获得实际存储的视频帧,从而降低丢帧的影响。其中,当读取到非关键帧对应的位置信息时,则基于位置信息从第二文件夹中提取对应的非关键进行解码,以获得对应的非关键
帧的图像数据。
30.上述方案,获得待存储的视频数据后,确定视频数据对应的存储层级结构,其中,存储层级结构包括一个第一层级和至少一个其他层级,其中,第一层级对应存储第一层级帧,其他层级对应存储其他层级帧,第一层级帧包括关键帧和部分非关键帧,其他层级帧包括第一层级之外的非关键帧,当视频数据的当前帧为第一层级帧时,将第一层级帧存储在第一层级中,以使第一层级中必然包括关键帧,当第一层级帧除关键帧还包括非关键帧时,第一层级中相对于原始的视频数据而言完成了对原始的视频数据的抽帧,以提高第一层级对应的存储空间内存储的视频数据的时长,当视频数据的当前帧为其他层级帧时,将其他层级帧存储至其他层级中,并且,当其他层级帧存储在其他层级时,也就是非关键帧存储在其他层级时,生成非关键帧对应的位置信息,将位置信息也存储在第一层级中,进而在读取视频数据时,无论视频数据是否发生丢帧,第一层级中存储有关键帧、部分非关键帧和其他非关键帧对应的位置信息,从而有效避免视频帧读取顺序错乱。
31.请参阅图2,图2是本技术视频数据存储方法另一实施方式的流程示意图,该方法包括:s201:获得待存储的视频数据和视频数据对应的存储层级结构,其中,存储层级结构包括第一层级和至少一个其他层级。
32.具体地,确定视频数据对应的存储层级结构,其中,存储层级结构包括第一层级以及至少一个其他层级,第一层级中用于存储关键帧以及非关键帧对应的图像数据或位置信息,其他层级用于存储非关键帧对应的图像数据。
33.在一应用场景中,请参阅图3,图3是本技术图2中步骤s201对应的一实施方式的应用场景示意图,获得待存储的视频数据,其中,视频数据包括关键帧(i帧)和非关键帧,且非关键帧为差异帧(p帧),将关键帧存储在第一层级中,在图3中关键帧为帧0且关键帧存储在第一层级中,当差异帧存储在其他层级时,则将差异帧对应的位置信息按顺序存储在第一层级中,当差异帧存储在第一层级时,将差异帧对应的图像数据存储在第一层级中,从而第一层级中包括每个图像组中的关键帧以及按时序排布的非关键帧的图像数据或位置信息。其中,第一层级中非关键帧的图像数据为非关键帧相对关键帧的差异图像信息。
34.s202:判断当前帧是否为第一层级帧。
35.具体地,判断视频数据中需要存储的当前帧是否为关键帧,若是关键帧则进入步骤s203,否则,进入步骤s209。
36.s203:判断第一层级帧是否为关键帧。
37.具体地,第一层级帧包括关键帧和指定帧,指定帧是基于帧序号从视频数据的图像组中选取的非关键帧。判断视频数据中需要存储的当前帧是否为关键帧,若是关键帧则进入步骤s204,否则,进入步骤s208。
38.s204:响应于第一层级帧为关键帧,将关键帧存储在第一层级中,其中,关键帧在第一层级中按关键帧的实际大小配置有对应的实际存储空间。
39.具体地,当第一层级帧为关键帧时,则将关键帧存储在第一层级中,并且,按照关键帧的实际大小,在第一层级中为关键帧配置对应的实际存储空间,以使关键帧按照关键帧的实际大小进行存储。
40.s205:基于第一层级的第一存储参数、关键帧的实际大小和关键帧的时间信息,生
成关键帧对应的索引信息,将索引信息存储在内存中并对索引信息对应的索引计数值进行递加。
41.具体地,第一存储参数基于第一层级中已存储的视频帧的实际存储空间确定。也就是说,第一存储参数为第一层级中已经存储的视频帧所占的存储空间的大小,根据第一层级的第一存储参数、关键帧的实际大小和关键帧的时间信息,生成关键帧对应的索引信息,将索引信息存储在内存中,并将索引信息对应的索引计数值进行递加。
42.在一应用方式中,关键帧对应的时间信息为时间戳,基于第一层级中已存储的视频帧对应的第一存储参数以及关键帧的实际大小,确定关键帧在第一层级中的存储位置,从而生成索引信息,索引信息包括关键帧在第一层级中的存储位置以及关键帧的时间戳,以便后续回放视频数据时可以根据索引信息精准回放视频数据。
43.s206:响应于索引计数值超过计数阈值,将第一层级中所有关键帧对应的索引信息存储在第一层级的末端。
44.具体地,当索引计数值超过计数阈值时,则表示第一层级中已存储有计数阈值个图像组中的关键帧,由于关键帧所要占用的存储空间较大,因此,当索引计数值超过计数阈值时,将第一层级中当前的各个关键帧对应的索引信息均存储在第一层级的末端,以便每间隔计数阈值个图像组都能一次性获取关键帧对应的索引信息,提高回放视频数据的效率。
45.s207:将第一层级和其他层级中的数据存储至指定存储介质中,并清空内存中的索引信息以及将索引计数值重置为0。
46.具体地,将第一层级和其他层级中的数据存储到指定的存储介质中,指定的存储介质包括但不限于机械存储硬盘和云平台,将内存中与视频帧相关的数据以及关键帧对应的索引信息清空,从而释放内存中的存储空间,并将索引计数值重置为0以便进入下一个循环。
47.在一应用场景中,第一层级和其他层级对应的存储空间在内存中,当索引计数值超过计数阈值时,将内存中当前的第一层级和其他层级中的数据存储至机械存储硬盘中,其中,机械存储硬盘中对应第一层级和每个其他层级各自设有对应的文件夹,从而将各层级中的数据存储至对应的文件夹中,以释放内存中的存储空间,并将索引计数值重置为0。
48.在另一应用场景中,第一层级对应的存储空间在内存中,其他层级对应的存储空间在机械存储硬盘中,当索引计数值超过计数阈值时,将内存中当前的第一层级和其他层级中的数据存储至云平台中,其中,云平台中对应第一层级和每个其他层级各自设有对应的文件夹,从而将各层级中的数据存储至对应的文件夹中便于用户联网查看,以释放内存中的存储空间,并将索引计数值重置为0。
49.s208:响应于第一层级帧为指定帧,按照帧序号将指定帧存储在第一层级中。
50.具体地,请再次参阅图3,当非关键帧为指定存储在第一层级中的指定帧时,将指定帧按照帧序号的顺序存储在第一层级中,例如图2中的帧4、帧8等。其中,存储在第一层级中的部分指定帧与对应的关键帧可以解码出一个图像组中部分视频帧,从而在第一层级中可以按照抽帧后的视频帧解码出占用存储空间更少的视频流,并且对于第一层级中有限的存储空间内可以存储时长更长的视频数据。其中,帧序号基于视频数据中的每个图像组从图像组中的关键帧开始递增设置,指定帧基于帧序号从图像组中选取。
51.进一步地,帧序号可以在摄像装置端对每个图像组进行设置,若任一帧序号对应的视频帧在编解码时丢失,则对应的视频帧不存在,帧序号也可以在编码完成后,按照编码后的视频帧对应的时序对每个图像组进行设置,每个图像组中的关键帧的帧序号最小,非关键帧的帧序号依次递增且为整数。指定帧基于自定义的选取规则,从帧序号中选择至少部分帧序号作为指定帧,本技术对选取规则不做具体限定。
52.在一应用方式中,基于帧序号的大小关系将指定帧存储在第一层级中,其中,指定帧在第一层级中按指定帧的实际大小配置有对应的实际存储空间。
53.具体地,请再次参阅图3,按照指定帧对应的帧序号与已存储的视频帧的帧序号的大小关系,将指定帧存储在第一层级中,且为指定帧按照指定帧的实际大小配置对应的实际存储空间,以使第一层级中的视频帧的存储空间与实际大小匹配,减少对第一层级中存储空间的占用,以提高第一层级中存储的视频数据的时长。
54.s209:响应于视频数据的当前帧为其他层级帧,将其他层级帧存储在对应的其他层级中,生成其他层级帧对应的位置信息,并将位置信息存储在第一层级中的对应位置。
55.具体地,其他层级帧包括非指定帧,非指定帧为指定帧之外其他的非关键帧,当视频数据的当前帧为其他层级帧时,将非指定帧按照帧序号存储在对应的其他层级中,并生成非指定帧在其他层级中的位置信息,将位置信息按照帧序号存储在第一层级中的对应位置,以使第一层级中包括每个图像组中的关键帧以及按帧序号排布的非关键帧的图像数据或位置信息。
56.在一应用方式中,确定非指定帧对应的其他层级,基于帧序号的大小关系将非指定帧存储在对应的其他层级中;其中,非指定帧在对应的其他层级中按非指定帧的实际大小配置有对应的实际存储空间。
57.具体地,请参阅图4,图4是本技术图2中步骤s209对应的一实施方式的应用场景示意图,确定非指定帧对应的其他层级的层级号,按照帧序号的大小关系将非指定帧存储在非指定帧对应的其他层级中,且为非指定帧按照非指定帧的实际大小配置对应的实际存储空间,以使其他层级中的视频帧的存储空间与实际大小匹配,减少对其他层级中存储空间的占用,以提高其他层级中存储的视频数据的时长,合理利用存储资源。
58.在一应用场景中,其他层级包括第二层级和第三层级,指定帧为部分帧序号为偶数的非关键帧,第二层级用于存储指定帧之外其他的帧序号为偶数的非关键帧,第三层级用于存储帧序号为奇数的非关键帧;确定非指定帧对应的其他层级,基于帧序号的大小关系将非指定帧存储在对应的其他层级中的步骤,包括:响应于非指定帧的帧序号为偶数,基于帧序号的大小关系将非指定帧存储在第二层级中;响应于非指定帧的帧序号为奇数,基于帧序号的大小关系将非指定帧存储在第三层级中。
59.具体地,存储层级结构包括第一层级、第二层级和第三层级,如图4所示,第一层级为层级0,其他层级为层级1和层级2,层级0中的帧序号为4*n,层级1中的帧序号为4*n+2,层级2中的帧序号为2*n+1,从而帧序号为奇数的视频帧存储在第三层级中,部分帧序号为偶数的视频帧存储在第二层级中,第一层级中包括关键帧和部分帧序号为偶数的非关键帧。当待存储的当前帧为非指定帧时,确定非指定帧对应的层级号,当非指定帧对应的帧序号为奇数时,将非指定帧按照帧序号的大小关系存储在第三层级中,当非指定帧对应的帧序号为偶数时,将非指定帧按照帧序号的大小关系存储在第二层级中,且在其他层级中为非
指定帧配置与非指定帧实际大小相匹配的存储空间,提高第二层级和第三层级的利用率。
60.进一步地,生成其他层级帧对应的位置信息,并将位置信息存储在第一层级中的对应位置的步骤,包括:基于非指定帧的实际大小、非指定帧对应的其他层级,以及非指定帧对应的其他层级的第二存储参数,生成非指定帧对应的位置信息;其中,第二存储参数基于非指定帧对应的其他层级中已存储的视频帧的实际存储空间确定;基于帧序号的大小关系将位置信息存储在第一层级中。
61.具体地,请再次参阅图4,当非指定帧存储在其他层级中时,基于非指定帧的实际大小、非指定帧对应的其他层级对应的层级号,以及非指定帧对应的其他层级中已存储的视频帧占用的第二存储参数,生成非指定帧对应的位置信息,将位置信息按照帧序号的大小关系存储在第一层级中,当视频数据中发生丢帧时,则丢失的视频帧在第一层级中不会产生记录,从而在读取视频帧时基于第一层级中记录的信息可有效避免视频帧读取顺序错乱。其中,对于存储在其他层级中的非指定帧通过位置信息即可准确定位,从而读取出非指定帧对应的图像数据。
62.在本实施例中,为每个视频帧按照视频帧的实际大小配置有实际存储空间,从而节约存储空间提高存储空间内存储的视频数据的时长,并且,存储层级结构的第一层级中包括每个图像组中已经存储的关键帧以及按帧序号排布的非关键帧的图像数据或位置信息,从而在读取视频帧时可有效避免在发生丢帧时视频帧读取顺序错乱。
63.请参阅图5,图5是本技术视频数据读取方法一实施方式的流程示意图,该方法包括:s501:获得已存储的视频数据。
64.具体地,视频数据上述任一实施例中的方法存储。其中,第一层级中包括关键帧和部分非关键帧。
65.s502:响应于获得从当前时间点读取视频数据的查看指令,基于当前时间点在第一层级中确定与当前时间点临近的关键帧,从关键帧开始依次读取视频数据中的视频帧。
66.具体地,当获得从当前时间点读取视频数据的查看指令时,基于当前时间点在第一层级中确定与当前时间点邻近的关键帧,从查找到的邻近的关键帧开始依次读取视频数据中的视频帧。
67.在一应用场景中,当获取到查看指令时,基于当前时间点的时间戳向前查找与当前时间点的时间戳最邻近的关键帧,确定查看时初始的关键帧。
68.s503:响应于读取到第一层级中的非关键帧,基于非关键帧对应的关键帧确定非关键帧对应的图像数据。
69.具体地,当读取到第一层级中的非关键帧时,则基于非关键帧对应的关键帧进行解码,从而确定非关键帧对应的完整的图像数据,以使连续的图像数据形成视频流。其中,第一层级中仅包括每个图像组中的部分非关键帧,因此,基于第一层级中的非关键帧解码出的视频流所占用的内存更小,解码效率更高且能满足用户实时浏览的需求。
70.s504:响应于与读取到第一层级中的关键帧,返回从关键帧开始依次读取视频数据中的视频帧的步骤。
71.具体地,当读取到第一层级中下一个图像组中的关键帧时,则返回至从关键帧开始依次读取视频数据中的视频帧的步骤。
72.上述方案,当需要获取的视频流的画质质量需求不高时,第一层级中存储有关键帧和部分非关键帧对应的图像数据,第一层级中存储的每个图像组均完成了抽帧,进而基于第一层级中存储的关键帧和部分非关键帧即可获取所需的视频流,从而提高解码效率。
73.请参阅图6,图6是本技术视频数据读取方法另一实施方式的流程示意图,该方法包括:s601:获得已存储的视频数据。
74.具体地,视频数据上述任一实施例中的方法存储。其中,第一层级中包括关键帧和部分非关键帧或非关键帧对应的位置信息。
75.s602:响应于获得从回看时间点读取视频数据的查看指令,基于回看时间点在第一层级中确定与回看时间点临近的关键帧,从关键帧开始依次读取视频数据中的视频帧。
76.具体地,当获得从回看时间点读取视频数据的查看指令时,基于回看时间点在第一层级中确定与回看时间点邻近的关键帧,从查找到的邻近的关键帧开始依次读取视频数据中的视频帧。
77.在一应用场景中,当获取到查看指令时,基于关键帧的索引信息以及回看时间点的时间戳,向前查找与回看时间点的时间戳最邻近的关键帧,确定查看时初始的关键帧。其中,索引信息包括关键帧在第一层级中的存储位置以及关键帧的时间戳。
78.在另一应用场景中,当获取到查看指令时,基于关键帧的索引信息以及回看时间点的时间戳,向后查找与回看时间点的时间戳最邻近的关键帧,确定查看时初始的关键帧。其中,索引信息包括关键帧在第一层级中的存储位置以及关键帧的时间戳。
79.s603:响应于读取到第一层级中的非关键帧,基于非关键帧对应的关键帧确定非关键帧对应的图像数据。
80.具体地,当读取到第一层级中的非关键帧时,则基于非关键帧对应的关键帧进行解码,从而确定第一层级中的非关键帧对应的完整的图像数据。
81.s604:响应于读取到第一层级中的非关键帧对应的位置信息,基于位置信息从其他层级中提取非关键帧,并基于非关键帧对应的关键帧确定非关键帧对应的图像数据。
82.具体地,当读取到第一层级中的非关键帧对应的位置信息时,则基于位置信息从其他层级中提取对应的非关键帧,基于非关键帧对应的关键帧进行解码,从而确定非关键帧对应的图像数据。
83.可以理解的是,当从其他层级中未读取到对应的非关键帧,则其他层级中的非关键帧已被删除或者被其他视频帧覆盖,因此需要重新回到第一层级中依次读取视频帧即可。
84.s605:响应于与读取到第一层级中的关键帧,返回从关键帧开始依次读取视频数据中的视频帧的步骤。
85.具体地,当读取到第一层级中下一个图像组中的关键帧时,则返回至从关键帧开始依次读取视频数据中的视频帧的步骤。
86.上述方案,当需要对视频数据进行完整回放时,第一层级中包括每个图像组中的关键帧以及按时序排布的非关键帧的图像数据或位置信息,进而基于第一层级中关键帧及其对应的非关键帧以及非关键帧对应的位置信息,即可对多个已经存储的图像组进行依次解码获得视频流,即使在存储阶段发生了丢帧,在解码时也不会发生视频帧读取顺序错乱
的情况。
87.请参阅图7,图7是本技术电子设备一实施方式的结构示意图,该电子设备70包括相互耦接的存储器701和处理器702,其中,存储器701存储有程序数据(图未示),处理器702调用程序数据以实现上述任一实施例中的方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
88.请参阅图8,图8是本技术计算机存储介质一实施方式的结构示意图,该计算机存储介质80存储有程序数据800,该程序数据800被处理器执行时实现上述任一实施例中的方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
89.需要说明的是,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
90.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
91.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
92.以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1