一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储视频数据的方法、装置及可读存储介质与流程

2022-02-22 07:54:32 来源:中国专利 TAG:


1.本技术涉及视频存储领域,尤其涉及一种存储视频数据的方法、装置及可读存储介质。


背景技术:

2.网络视频存储设备(network video recorder,nvr)的核心功能是对前端编码器采集的视频数据文件进行存储。视频数据以码流帧为单位,码流帧由i帧、p帧和b帧构成。其中,i帧不依赖其它帧就可以独立解码出一幅完整的图像,p帧和b帧均需依赖相邻的i帧才能解码出一幅完整图像。
3.在往硬盘中存储视频数据文件的过程中,除了写入码流帧外,为了快速回放定位,还需要写入码流帧中所有的i帧索引信息,即i帧索引信息集。其中,i帧索引信息中记录了对应的i帧在码流帧中的具体位置,i帧的码流长度,i帧的时间信息。
4.视频回放过程中,当用户需要定位某个时间点的视频时,根据i帧索引信息集中的i帧索引信息可以方便的找到该时间点的视频数据,而不需要通过遍历整个视频数据文件去寻找。因此,一个视频数据文件是以码流帧以及i帧索引信息为基础构成。
5.现有技术中,i帧索引信息集记录了其后的码流数据集中的i帧的i帧索引信息,以及下一个i帧索信息集的写入位置。因此,i帧索引信息集在视频数据文件中的位置是确定的。当待写入码流帧的码流长度超过当前码流数据集与下一个i帧索引信息集之间的剩余空间时,待写入的i帧无法写入,插入与剩余空间大小一致的空帧。空帧的插入可以保证视频数据文件不中断,但是,空帧的存在增加了视频数据文件的码流长度,导致视频数据文件所占用的存储空间增加。


技术实现要素:

6.本发明申请提供一种存储视频数据的方法、装置及可读存储介质,在回放视频数据文件时能准确定位,并避免了空帧的写入。
7.第一方面,为解决上述技术问题,本发明申请提供一种存储视频数据的方法,包括:
8.在当前码流数据集中写入码流帧,确定所述当前码流数据集的码流长度;其中,所述当前码流数据集中包括至少一个码流帧;
9.基于所述当前码流数据集的码流长度与预设码流长度,结合待写入码流帧的码流长度,判断是否写入新的i帧索引信息集;
10.若是,则基于上一个已写入的i帧索引信息集的位置信息,以及所述当前码流数据集中的i帧生成所述新的i帧索引信息集并写入,其中,所述i帧索引信息集用以记录对应的码流数据集中所有i帧的i帧索引信息,以及相邻的上一个i帧索引信息集的位置信息;
11.若否,则将待写入码流帧写入。
12.根据以上方法,可以将视频数据文件中的码流帧准确定位,同时避免了无效空帧
的插入,从而确保视频数据文件中不会因为写入无效数据导致占用存储空间过大的情况发生。
13.一种可能的实现方式,所述基于所述当前码流数据集的码流长度与预设码流长度,结合待写入码流帧的码流长度,判断是否写入新的i帧索引信息集,包括:
14.当所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和大于等于预设码流长度时,确定所述当前码流数据集的码流长度与所述预设码流长度差值的绝对值为第一差值;
15.确定所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和,与所述预设码流长度差值的绝对值为第二差值;
16.根据所述第一差值是否小于等于所述第二差值,判断是否写入新的i帧索引信息集。
17.一种可能的实现方式,所述相邻的上一个i帧索引信息集的位置信息为所述相邻的上一个i帧索引信息集之前所有的码流数据集的码流长度;若所述新的i帧索引信息集为视频数据文件中第一个i帧索引信息集,则该i帧索引信息集的所述相邻的上一个i帧索引信息集的位置信息为0。
18.一种可能的实现方式,所述将待写入码流写入之后,包括:
19.在重新处理非正常关闭的视频数据文件时,解析当前码流数据集,并继续在当前码流数据集结尾将未写入的码流帧及对应的i帧索引信息集写入。
20.一种可能的实现方式,所述基于上一个已写入的i帧索引信息集的位置信息,以及所述当前码流数据集中的i帧生成所述新的i帧索引信息集并写入之后,包括:
21.回放视频数据文件时,在所述视频数据文件结尾处依次往前读取每个i帧索引信息集;
22.根据所述视频数据文件中的所有i帧索引信息对所述视频数据文件进行定位回放。
23.第二方面,本发明申请提供了一种存储视频数据的装置,该装置包括:
24.确定单元:用于在当前码流数据集中写入码流帧,确定所述当前码流数据集的码流长度;其中,所述当前码流数据集中包括至少一个码流帧;
25.判断单元:用于基于所述当前码流数据集的码流长度与预设码流长度,结合待写入码流帧的码流长度,判断是否写入新的i帧索引信息集;
26.写入单元:用于在判断写入新的i帧索引信息集时,则基于上一个已写入的i帧索引信息集的位置信息,以及所述当前码流数据集中的i帧生成所述新的i帧索引信息集并写入,其中,所述i帧索引信息集用以记录对应的码流数据集中所有i帧的i帧索引信息,以及相邻的上一个i帧索引信息集的位置信息;在判断不写入新的i帧索引信息集时,将所述待写入码流帧写入。
27.一种可能的实现方式,所述装置还包括:
28.修复单元,用于在重新处理非正常关闭的视频数据文件时,解析当前码流数据集,并继续在当前码流数据集结尾将未写入的码流帧及对应的i帧索引信息集写入。
29.一种可能的实现方式,所述装置还包括:
30.读取单元,用于回放视频数据文件时,在所述视频数据文件结尾处依次往前读取
每个i帧索引信息集;根据所述视频数据文件中的所有i帧索引信息对所述视频数据文件进行定位回放。
31.一种可能的实现方式,所述判断单元具体用于当所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和大于等于预设码流长度时,确定所述当前码流数据集的码流长度与所述预设码流长度差值的绝对值为第一差值;
32.确定所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和,与所述预设码流长度差值的绝对值为第二差值;
33.根据所述第一差值是否小于等于所述第二差值,判断是否写入新的i帧索引信息集。
34.第三方面,本发明申请提供了一种可读存储介质,其中,包括:
35.存储器,
36.所述存储器用于存储指令,当所述指令被处理器执行时,使得包括所述可读存储介质的装置完成如第一方面以及任意一种实施方式所述的方法。
附图说明
37.图1为现有技术中视频数据文件的结构示意图;
38.图2为本技术提供的一种视频数据文件的结构示意图;
39.图3为本技术提供的一种存储视频数据的方法的示意图;
40.图4为本技术提供的一种非正常关闭的视频数据文件的结构示意图;
41.图5为本技术提供的一种存储视频数据文件的装置的结构示意图。
具体实施方式
42.图1为现有技术中视频数据文件的结构示意图。如图1所示,一份视频数据文件结构中,在文件头部空间分配一定空间作为文件头,文件头在整个视频数据文件中只有一个,记录第一个码流数据集在视频数据文件中的写入位置和第一个i帧索引信息集的写入位置。每个i帧索引信息集记录了对应的码流数据集中所有i帧在视频数据文件中的写入位置、时间信息及帧长度,还记录相邻的下一个i帧索引信息集的位置信息,构成单向循环链表结构。当需要记录的码流数据集中无i帧时,i帧索引信息集记录0条i帧索引信息;当需要记录的码流数据集中包含至少一个i帧时,i帧索引信息集记录至少一条i帧索引信息。图1中所示的空帧为无效帧,当待写入码流帧的码流长度超过当前码流数据集与下一个i帧索引信息集之间的剩余空间时,待写入的i帧无法写入,插入与剩余空间大小一致的空帧。
43.当前存储视频数据文件的方法中,因为有空帧的存在影响视频数据文件长度,导致视频数据文件占用不必要的存储空间。
44.为了解决所述问题,本技术实施例提供一种存储视频数据文件的方法,该方法中将预设码流长度与待写入码流帧的码流长度结合,灵活调整i帧索引信息集在视频数据文件中写入的位置,从而避免了视频数据文件中出现空帧,节约了视频文件占用的存储空间。
45.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的
所有其它实施例,都属于本发明保护的范围。
46.图2为本发明实施例提供的一种视频数据文件结构示意图。
47.本发明实施例提供的视频数据文件结构中,在视频数据文件开头分配一定空间写入文件头,所述文件头为非必须存在的文件,可以用来记录视频数据文件的编码格式,例如,文件头可以记录h.264,h.265等。在文件头后,依次写入码流帧,i帧索引信息集。在文件头与i帧索引信息集1之间,或者相邻的两个i帧索引信息集之间为码流数据集,其中,码流数据集中至少包含1个码流帧。如图2所示,码流数据集1、码流数据集2、码流数据集n中可以包含1个或多个码流帧。
48.基于上述的视频数据文件结构,在视频数据文件中写入码流帧时,需要确定是否写入i帧索引信息集,具体确定过程参照图3,包括:
49.步骤301:在当前码流数据集中写入码流帧,确定所述当前码流数据集的码流长度;
50.当前码流数据集指示,在视频数据文件中已写入的码流帧,自上一个i帧索引信息集结尾起,至目前已写入的最后一个码流帧,所有码流帧组成的集合。
51.每次写入码流帧之后,都需要判断该码流帧是否为i帧。若该码流帧为i帧,则缓存该i帧的i帧索引信息。i帧索引信息包括:i帧在视频数据文件中的具体位置、长度、时间信息。
52.特别地,针对视频数据文件中已写入文件头,还未写入i帧索引信息集的情况,需要将文件头视作当前码流数据集一部分。即在写入第1个i帧索引信息集之前,当前码流数据集包括文件头和文件头之后已写入的码流帧,则当前码流数据集的长度为文件头和文件头之后已写入的码流帧的长度之和。
53.步骤302:基于所述当前码流数据集的码流长度与预设码流长度,结合待写入码流帧的码流长度,判断是否写入新的i帧索引信息集。
54.对比当前码流数据集的码流长度与待写入码流帧的码流长度之和,与预设码流长度的大小。
55.当所述当前码流数据集与所述待写入码流帧长度之和小于预设码流长度时,判断为不写入新的i帧索引信息集,执行步骤304。
56.例如,某视频数据文件中,预设码流长度为100mb,当前码流数据集长度为95mb,若所述的待写入码流帧为4mb时,所述当前码流数据集与所述待写入码流帧长度之和95 4=99mb小于预设码流长度100mb,判断为不写入新的i帧索引信息集,执行步骤304。
57.当所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和大于等于预设码流长度时,确定所述当前码流数据集的码流长度与所述预设码流长度差值的绝对值为第一差值。
58.确定所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和,与所述预设码流长度差值的绝对值为第二差值。
59.根据所述第一差值是否小于等于所述第二差值,判断是否写入新的i帧索引信息集。
60.在第一差值小于等于第二差值时,则执行步骤303,在第一差值小于等于第二差值时,则执行步骤304。
61.例如,某视频数据文件中,预设码流长度为100mb,当前码流数据集长度为95mb,则第一差值为5。
62.若所述待写入码流帧的码流长度为11mb,所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和为95 11=106,第二差值为6,则第一差值小于第二差值,执行步骤303。
63.若所述待写入码流帧的码流长度为8mb,所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和95 8=103,第二差值为3,则第一差值大于第二差值,执行步骤304。
64.步骤303:基于上一个已写入的i帧索引信息集的位置信息,以及所述当前码流数据集中的i帧生成所述新的i帧索引信息集并写入;
65.所述i帧索引信息集用以记录对应的码流数据集中所有i帧的i帧索引信息,以及相邻的上一个i帧索引信息集的位置信息。
66.将对应码流数据集中的所有i帧的i帧索引信息打包,生成i帧索引信息集,并在该i帧索引信息集中保存上一个i帧索引信息集的位置信息。所述上一个i帧索引信息集的位置信息为所述上一个i帧索引信息集之前所有的码流数据集的码流长度。
67.每个i帧索引信息集对应的码流数据集,指在该i帧索引信息集之前,至相邻的上一个i帧索引信息集之间的码流数据集。当i帧索引信息集对应的码流数据集中不包含i帧时,i帧索引信息集中记录0条i帧索引信息。当需要记录的码流数据集中包含至少一个i帧时,i帧索引信息集中记录至少一条i帧索引信息。其中,i帧索引信息包括所述i帧在视频数据文件中的写入位置、时间信息及文件长度。
68.例如,图2中i帧索引信息集2对应的码流数据集为码流数据集2,则i帧索引信息集2记录码流数据集2中所有i帧的i帧索引信息以及i帧索引信息集1的位置信息。
69.特别地,对于视频数据文件中,第一个i帧索引帧,它的上一个i帧索引帧的位置信息可以设置为0。
70.i帧索引信息集的写入,可以确保在进行录像回放的时候打开录像文件之后先从文件尾部读取最后一个i帧索引信息集,获取所述i帧索引信息集对应的码流数据中的所有i帧位置,以及上一个i帧索引信息集的位置,依次类推,就可以读取视频数据文件中的所有i帧索引信息集,进而获取视频数据文件中所有i帧索引信息。
71.步骤304:将所述待写入码流帧写入。
72.需要说明的是,可以循环执行上述步骤,以完成所有码流帧及相应i帧索引信息集的存储。具体地,在执行步骤303之后,如果仍然存在码流帧还未写入,则转至步骤301执行;在执行步骤304之后,转至步骤302执行。
73.在本技术实施例中,通过加入判断步骤确定是否写入新的i帧索引信息集,使i帧索引信息集在视频数据文件中的写入位置变得灵活,这样可以避免无效空帧的插入,从而确保视频数据文件中不会因为写入无效数据导致占用存储空间过大的情况发生。
74.进一步地,在写入所有码流帧及相应的i帧索引信息集后,在回放视频数据文件时,需要先根据视频数据文件结尾的i帧索引信息集依次定位i帧索引信息集的位置,继而根据i帧索引信息集中的信息,可以定位视频数据文件中所有i帧的位置信息,时间信息。之后,再根据需要进行视频回放。例如,用户仅需要观看某个时间段的视频,便可根据i帧索引
信息集对视频进行定位再回放。
75.特别地,在进行视频数据存储的过程中,遇到断电,设备重启等原因,造成视频数据文件非正常关闭,这导致视频数据文件关闭之前已写入文件中的码流数据集包括的i帧未被记录到i帧索引信息集中,在文件读取及视频回放过程中不能根据索引信息及时准确地找到未被记录的i帧。如图4所示为本技术实施例提供的一种非正常关闭的视频数据文件的结构示意图。
76.针对上述未正常关闭的视频数据文件,在重新处理时,需要解析当前码流数据集,确定当前码流数据集的码流长度以及当前码流数据集中的i帧及i帧索引信息;并继续在当前码流数据集结尾将未写入的码流帧及对应的i帧索引信息集写入,完成所述视频数据文件的修复。
77.基于同一发明构思,本技术实施例中提供一种存储视频数据的装置,该装置与前述图3所示存储视频数据的方法对应,该装置的具体实施方式可参见前述方法实施例部分的描述,重复之处不再赘述,参见图5,该装置包括:
78.确定单元501:用于在当前码流数据集中写入码流帧,确定所述当前码流数据集的码流长度。
79.其中,所述当前码流数据集中包括至少一个码流帧。
80.判断单元502:用于基于所述当前码流数据集的码流长度与预设码流长度,结合待写入码流帧的码流长度,判断是否写入新的i帧索引信息集。
81.具体地,当所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和大于等于预设码流长度时,确定所述当前码流数据集的码流长度与所述预设码流长度差值的绝对值为第一差值。确定所述当前码流数据集的码流长度与所述待写入码流帧的码流长度之和,与所述预设码流长度差值的绝对值为第二差值。
82.根据所述第一差值是否小于等于所述第二差值,判断是否写入新的i帧索引信息集。
83.写入单元503:用于在判断写入新的i帧索引信息集时,则基于上一个已写入的i帧索引信息集的位置信息,以及所述当前码流数据集中的i帧生成所述新的i帧索引信息集并写入,其中,所述i帧索引信息集用以记录对应的码流数据集中所有i帧的i帧索引信息,以及相邻的上一个i帧索引信息集的位置信息;在判断不写入新的i帧索引信息集时,将所述待写入码流帧写入。
84.所述存储视频数据的装置,还包括修复单元:用于在重新处理非正常关闭的视频数据文件时,解析当前码流数据集,并继续在当前码流数据集结尾将未写入的码流帧及对应的i帧索引信息集写入。
85.所述存储视频数据的装置,还包括读取单元:用于回放视频数据文件时,在所述视频数据文件结尾处依次往前读取每个i帧索引信息集;根据所述视频数据文件中的所有i帧索引信息对所述视频数据文件进行定位回放。
86.基于同一发明构思,本技术实施例还提供一种可读存储介质,包括:
87.存储器,
88.所述存储器用于存储指令,当所述指令被处理器执行时,使得包括所述可读存储介质的装置完成如上所述的存储视频数据的方法。
89.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
90.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
91.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
92.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
93.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(universal serial bus flash disk)、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
94.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献