可左右滑动选省市

一种视频数据的存储、视频回放方法、装置及其设备

更新时间:2025-11-01
一种视频数据的存储、视频回放方法、装置及其设备 专利申请类型:实用新型专利;
地区:浙江-杭州;
源自:杭州高价值专利检索信息库;

专利名称:一种视频数据的存储、视频回放方法、装置及其设备

专利类型:实用新型专利

专利申请号:CN202410841297.8

专利申请(专利权)人:杭州海康威视系统技术有限公司
权利人地址:浙江省杭州市滨江区阡陌路555号1幢B楼19层

专利发明(设计)人:胡晓锋,潘习文,梁明军

专利摘要:本申请提供一种视频数据的存储、视频回放方法、装置及其设备,该方法包括:获取视频序列,所述视频序列包括多个视频帧;对所述视频序列进行帧分析得到结构化数据;获取所述视频序列对应的保护参数,并对所述结构化数据和所述保护参数进行拼接得到拼接后的索引数据,所述保护参数用于对所述视频序列进行保护;其中,所述索引数据用于在视频回放过程中对所述索引数据进行解析得到所述结构化数据和所述保护参数,基于所述结构化数据获取视频序列,采用所述保护参数对获取的视频序列进行保护操作;存储所述索引数据。通过本申请的技术方案,能够减少大量数据库的IO操作,提升处理性能。

主权利要求:
1.一种视频数据的存储方法,其特征在于,所述方法包括:
获取视频序列,所述视频序列包括多个视频帧;
对所述视频序列进行帧分析得到结构化数据;
获取所述视频序列对应的保护参数,并对所述结构化数据和所述保护参数进行拼接得到拼接后的索引数据,所述保护参数用于对所述视频序列进行保护;其中,所述索引数据用于在视频回放过程中对所述索引数据进行解析得到所述结构化数据和所述保护参数,基于所述结构化数据获取视频序列,采用所述保护参数对获取的视频序列进行保护操作;
存储所述索引数据;
其中,所述保护参数包括加密密钥信息;所述加密密钥信息包括加密密钥或者加密密钥的唯一标识;所述加密密钥用于对所述视频序列进行加密得到加密后视频序列;所述方法还包括:存储所述加密后视频序列。
2.根据权利要求1所述的方法,其特征在于,
所述存储所述索引数据,包括:在数据磁盘中存储所述索引数据。
3.根据权利要求1所述的方法,其特征在于,
在对所述结构化数据和所述加密密钥信息进行拼接时,所述结构化数据的前面为第一标识,所述加密密钥信息的前面为第二标识。
4.根据权利要求3所述的方法,其特征在于,所述保护参数包括完整性签名值;所述获取所述视频序列对应的保护参数,包括:计算所述加密后视频序列对应的完整性签名值;
其中,在对所述结构化数据、所述加密密钥信息和所述完整性签名值进行拼接时,所述结构化数据的前面为第一标识,所述加密密钥信息的前面为第二标识,所述完整性签名值的前面为第三标识。
5.根据权利要求4所述的方法,其特征在于,在对所述结构化数据、所述加密密钥信息和所述完整性签名值进行拼接得到拼接后的索引数据之后,所述索引数据依次包括所述第一标识、所述结构化数据、所述第三标识、所述完整性签名值、所述第二标识和所述加密密钥信息;
其中,在从所述索引数据中解析到所述第一标识、所述第三标识和所述第二标识之后,将位于所述第一标识与所述第三标识之间的内容确定为所述结构化数据,将位于所述第三标识与所述第二标识之间的内容确定为所述完整性签名值,并将位于所述第二标识后面的内容确定为所述加密密钥信息。
6.根据权利要求1或2所述的方法,其特征在于,
所述存储所述索引数据,包括:
获取所述视频序列对应的数据安全性;其中,所述数据安全性为高安全性存储需求、中安全性存储需求或者低安全性存储需求;
基于所述索引数据生成N份索引数据,N为大于1的正整数;
若所述数据安全性为高安全性存储需求,则将所述N份索引数据分别存储到N个存储节点的数据磁盘;或者,若所述数据安全性为中安全性存储需求,则将所述N份索引数据分别存储到一个存储节点的N个数据磁盘;或者,若所述数据安全性为低安全性存储需求,则将所述N份索引数据分别存储到一个存储节点的一个数据磁盘的N个数据分区。
7.一种视频回放方法,其特征在于,所述方法包括:
从客户端获取视频回放请求;
获取索引数据,对所述索引数据进行解析得到结构化数据和保护参数;
基于所述结构化数据获取所述视频回放请求对应的视频序列,采用所述保护参数对该视频序列进行保护操作,将保护操作后的视频序列返回给客户端;
其中,所述保护参数包括加密密钥信息;所述加密密钥信息包括加密密钥或者加密密钥的唯一标识;
所述采用所述保护参数对该视频序列进行保护操作,包括:
若该视频序列为加密后视频序列,则采用所述加密密钥信息对应的加密密钥对所述加密后视频序列进行解密得到解密后视频序列。
8.根据权利要求7所述的方法,其特征在于,
在对所述索引数据进行解析得到所述结构化数据和所述加密密钥信息时,在从所述索引数据中解析到第一标识时,将所述第一标识后面的内容确定为所述结构化数据;在从所述索引数据中解析到第二标识时,将所述第二标识后面的内容确定为所述加密密钥信息。
9.根据权利要求8所述的方法,其特征在于,所述保护参数包括完整性签名值;所述采用所述保护参数对该视频序列进行保护操作,包括:采用所述完整性签名值对所述加密后视频序列进行完整性校验;
若校验成功,则执行采用所述加密密钥信息对应的加密密钥对所述加密后视频序列进行解密得到解密后视频序列的操作;
若校验失败,则丢弃所述加密后视频序列;
其中,在对所述索引数据进行解析得到所述结构化数据、所述加密密钥信息和所述完整性签名值时,在从所述索引数据中解析到第一标识时,将所述第一标识后面的内容确定为所述结构化数据;在从所述索引数据中解析到第二标识时,将所述第二标识后面的内容确定为所述加密密钥信息;在从所述索引数据中解析到第三标识时,将所述第三标识后面的内容确定为所述完整性签名值。
10.一种视频数据的存储装置,其特征在于,所述装置包括:获取模块,用于获取视频序列,所述视频序列包括多个视频帧;
处理模块,用于对所述视频序列进行帧分析得到结构化数据;获取所述视频序列对应的保护参数,对所述结构化数据和所述保护参数进行拼接得到拼接后的索引数据,所述保护参数用于对所述视频序列进行保护;其中,所述索引数据用于在视频回放过程中对所述索引数据进行解析得到所述结构化数据和所述保护参数,基于所述结构化数据获取视频序列,采用所述保护参数对获取的视频序列进行保护操作;
存储模块,用于存储所述索引数据;
其中,所述保护参数包括加密密钥信息;所述加密密钥信息包括加密密钥或者加密密钥的唯一标识;所述加密密钥用于对所述视频序列进行加密得到加密后视频序列;所述存储模块还用于:存储所述加密后视频序列。
11.一种视频回放装置,其特征在于,所述装置包括:
获取模块,用于从客户端获取视频回放请求;
处理模块,用于获取索引数据,对所述索引数据进行解析得到结构化数据和保护参数;
基于所述结构化数据获取所述视频回放请求对应的视频序列,采用所述保护参数对该视频序列进行保护操作;
发送模块,用于将保护操作后的视频序列返回给客户端;
其中,所述保护参数包括加密密钥信息;所述加密密钥信息包括加密密钥或者加密密钥的唯一标识;所述处理模块采用所述保护参数对该视频序列进行保护操作时具体用于:若该视频序列为加密后视频序列,则采用所述加密密钥信息对应的加密密钥对所述加密后视频序列进行解密得到解密后视频序列。
12.一种电子设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1‑6任一所述的方法,或者,所述处理器用于执行机器可执行指令,以实现权利要求7‑9任一所述的方法。
13.一种机器可读存储介质,其特征在于,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,实现权利要求1‑6任一所述的方法,或者,实现权利要求7‑9任一所述的方法。
14.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时,实现权利要求1‑6任一所述的方法,或者,所述计算机程序被处理器执行时,实现权利要求7‑9任一所述的方法。 说明书 : 一种视频数据的存储、视频回放方法、装置及其设备技术领域[0001] 本申请涉及数据存储领域,尤其是一种视频数据的存储、视频回放方法、装置及其设备。背景技术[0002] 存储设备可以从前端设备(如IPC(InternetProtocolCamera,网络摄像机)和模拟摄像机等)获取视频数据,并存储视频数据。除了存储视频数据,还需要在数据库中存储视频数据对应的参数。这样,在视频数据回放过程中,可以从数据库中读取视频数据对应的参数,基于参数对视频数据进行回放。[0003] 然而,由于视频数据对应的参数类型较多,因此,需要在数据库中存储多个类型的参数,需要从数据库中读取多个类型的参数。显然,这些参数的存储和读取过程,需要针对数据库的多次IO操作,处理性能较差。发明内容[0004] 本申请提供一种视频数据的存储方法,所述方法包括:[0005] 获取视频序列,所述视频序列包括多个视频帧;[0006] 对所述视频序列进行帧分析得到结构化数据;[0007] 获取所述视频序列对应的保护参数,并对所述结构化数据和所述保护参数进行拼接得到拼接后的索引数据,所述保护参数用于对所述视频序列进行保护;其中,所述索引数据用于在视频回放过程中对所述索引数据进行解析得到所述结构化数据和所述保护参数,基于所述结构化数据获取视频序列,采用所述保护参数对获取的视频序列进行保护操作;[0008] 存储所述索引数据。[0009] 本申请提供一种视频回放方法,所述方法包括:[0010] 从客户端获取视频回放请求;[0011] 获取索引数据,对所述索引数据进行解析得到结构化数据和保护参数;[0012] 基于所述结构化数据获取所述视频回放请求对应的视频序列,采用所述保护参数对该视频序列进行保护操作,将保护操作后的视频序列返回给客户端。[0013] 本申请提供一种视频数据的存储装置,所述装置包括:[0014] 获取模块,用于获取视频序列,所述视频序列包括多个视频帧;[0015] 处理模块,用于对所述视频序列进行帧分析得到结构化数据;获取所述视频序列对应的保护参数,对所述结构化数据和所述保护参数进行拼接得到拼接后的索引数据,所述保护参数用于对所述视频序列进行保护;其中,所述索引数据用于在视频回放过程中对所述索引数据进行解析得到所述结构化数据和所述保护参数,基于所述结构化数据获取视频序列,采用所述保护参数对获取的视频序列进行保护操作;[0016] 存储模块,用于存储所述索引数据。[0017] 本申请提供一种视频回放装置,所述装置包括:[0018] 获取模块,用于从客户端获取视频回放请求;[0019] 处理模块,用于获取索引数据,对所述索引数据进行解析得到结构化数据和保护参数;基于所述结构化数据获取所述视频回放请求对应的视频序列,采用所述保护参数对该视频序列进行保护操作;[0020] 发送模块,用于将保护操作后的视频序列返回给客户端。[0021] 本申请提供一种电子设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上述示例的视频数据的存储方法;或者,所述处理器用于执行机器可执行指令,以实现本申请上述示例的视频回放方法。[0022] 本申请提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,实现本申请上述示例的视频数据的存储方法;或者,实现本申请上述示例的视频回放方法。[0023] 本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现本申请上述示例的视频数据的存储方法;或者,所述计算机程序被处理器执行时,实现本申请上述示例的视频回放方法。[0024] 由以上技术方案可见,本申请实施例中,通过对结构化数据和保护参数进行拼接得到拼接后的索引数据,并存储索引数据,而不是将结构化数据和保护参数分别存储到数据库中,能够减少大量数据库的IO操作,提升处理性能。附图说明[0025] 图1A是本申请一种实施方式中的视频数据的存储方法的流程示意图;[0026] 图1B是本申请一种实施方式中的视频回放方法的流程示意图;[0027] 图2是本申请一种实施方式中的视频数据的存储方法的流程示意图;[0028] 图3是本申请一种实施方式中的视频数据的存储方法的示意图;[0029] 图4是本申请一种实施方式中的视频数据的读取方法的示意图;[0030] 图5是本申请一种实施方式中的视频数据的存储方法的示意图;[0031] 图6是本申请一种实施方式中的视频数据的读取方法的示意图;[0032] 图7A是本申请一种实施方式中的视频数据的存储装置的结构示意图;[0033] 图7B是本申请一种实施方式中的视频回放装置的结构示意图;[0034] 图8是本申请一种实施方式中的电子设备的硬件结构图。具体实施方式[0035] 本申请实施例中提出一种视频数据的存储方法,可以应用于电子设备,如存储设备等,参见图1A所示,为该方法的流程示意图,该方法可以包括:[0036] 步骤101、获取视频序列,该视频序列包括多个视频帧。[0037] 步骤102、对视频序列进行帧分析得到结构化数据,该结构化数据可以包括但不限于:视频序列的开始时刻、视频序列的结束时刻、视频序列的偏移地址,且该偏移地址表示视频序列在数据磁盘中对应的存储位置。[0038] 步骤103、获取视频序列对应的保护参数,对结构化数据和保护参数进行拼接得到拼接后的索引数据,保护参数用于对视频序列进行保护。其中,索引数据用于在视频回放过程中对索引数据进行解析得到结构化数据和保护参数,基于结构化数据获取视频序列,采用保护参数对获取的视频序列进行保护操作。[0039] 步骤104、存储索引数据。比如说,在数据磁盘中存储索引数据。[0040] 示例性的,保护参数是与视频序列有关的参数,用于对视频序列进行保护,且保护参数是需要存储的参数,对此保护参数不做限制,只要是与视频序列有关的需要存储的参数即可。比如说,保护参数可以包括但不限于加密密钥信息(如加密密钥或者加密密钥的唯一标识)和/或完整性签名值。当然,加密密钥信息和完整性签名值只是两个示例,该保护参数还可以包括其它参数。[0041] 示例性的,保护参数可以包括加密密钥信息,且加密密钥信息可以包括加密密钥或者加密密钥的唯一标识,该加密密钥用于对视频序列进行加密得到加密后视频序列。所述方法还包括:存储加密后视频序列。[0042] 比如说,在得到视频序列之后,获取加密密钥,采用加密密钥对该视频序列进行加密得到加密后视频序列,将加密后视频序列存储到数据磁盘。[0043] 在得到加密密钥之后,可以将加密密钥本身确定为加密密钥信息,或者,将加密密钥的唯一标识确定为加密密钥信息。进一步的,在加密密钥信息作为加密密钥的唯一标识时,那么:若当前还未存储加密密钥的唯一标识与加密密钥的映射关系,则可以将加密密钥的唯一标识与加密密钥的映射关系存储到数据磁盘。若当前已存储加密密钥的唯一标识与加密密钥的映射关系,则不再将加密密钥的唯一标识与加密密钥的映射关系存储到数据磁盘。[0044] 若保护参数包括加密密钥信息,在对结构化数据和加密密钥信息进行拼接时,结构化数据的前面为第一标识,加密密钥信息的前面为第二标识。[0045] 比如说,在拼接得到索引数据之后,索引数据依次包括第一标识、结构化数据、第二标识和加密密钥信息。基于此,在从索引数据中解析到第一标识和第二标识之后,将位于第一标识与第二标识之间的内容确定为结构化数据,将位于第二标识后面的内容确定为加密密钥信息。[0046] 或者,在拼接得到索引数据之后,索引数据依次包括第二标识、加密密钥信息、第一标识和结构化数据。基于此,在从索引数据中解析到第二标识和第一标识之后,将位于第二标识与第一标识之间的内容确定为加密密钥信息,将位于第一标识后面的内容确定为结构化数据。[0047] 示例性的,保护参数可以包括完整性签名值;获取视频序列对应的保护参数,可以包括但不限于:在得到加密后视频序列(采用加密密钥对视频序列进行加密得到加密后视频序列)后,计算加密后视频序列对应的完整性签名值。[0048] 若保护参数包括完整性签名值,在对结构化数据、加密密钥信息和完整性签名值进行拼接时,结构化数据的前面可以为第一标识,加密密钥信息的前面可以为第二标识,完整性签名值的前面可以为第三标识。[0049] 关于结构化数据、加密密钥信息和完整性签名值的位置关系,本实施例中不做限制,可以任意配置结构化数据、加密密钥信息和完整性签名值的位置关系。比如说,结构化数据可以位于加密密钥信息的前面,加密密钥信息也可以位于结构化数据的前面。结构化数据可以位于完整性签名值的前面,完整性签名值也可以位于结构化数据的前面。加密密钥信息可以位于完整性签名值的前面,完整性签名值也可以位于加密密钥信息的前面。[0050] 比如说,在拼接得到索引数据之后,索引数据依次包括第一标识、结构化数据、第二标识、加密密钥信息、第三标识和完整性签名值。基于此,在从索引数据中解析到第一标识、第二标识和第三标识之后,将位于第一标识与第二标识之间的内容确定为结构化数据,将位于第二标识与第三标识之间的内容确定为加密密钥信息,将位于第三标识后面的内容确定为完整性签名值。[0051] 或者,在拼接得到索引数据之后,索引数据依次包括第二标识、加密密钥信息、第一标识、结构化数据、第三标识和完整性签名值。基于此,在从索引数据中解析到第二标识、第一标识和第三标识之后,将位于第二标识与第一标识之间的内容确定为加密密钥信息,将位于第一标识与第三标识之间的内容确定为结构化数据,将位于第三标识后面的内容确定为完整性签名值。[0052] 当然,上述只是两个示例,对此位置关系不做限制。[0053] 在一种优选的实施方式中,在对结构化数据、加密密钥信息和完整性签名值进行拼接得到索引数据之后,索引数据依次包括第一标识、结构化数据、第三标识、完整性签名值、第二标识和加密密钥信息。基于此,在从索引数据中解析到第一标识、第三标识和第二标识之后,将位于第一标识与第三标识之间的内容确定为结构化数据,将位于第三标识与第二标识之间的内容确定为完整性签名值,并将位于第二标识后面的内容确定为加密密钥信息。[0054] 示例性的,存储索引数据(如在数据磁盘存储索引数据),可以包括但不限于:获取该视频序列对应的数据安全性;其中,数据安全性可以为高安全性存储需求、中安全性存储需求或者低安全性存储需求;基于该索引数据生成N份索引数据,N可以为大于1的正整数。基于此,若该数据安全性为高安全性存储需求,则可以将N份索引数据分别存储到N个存储节点的数据磁盘;或者,若该数据安全性为中安全性存储需求,则可以将N份索引数据分别存储到一个存储节点的N个数据磁盘;或者,若该数据安全性为低安全性存储需求,则可以将N份索引数据分别存储到一个存储节点的一个数据磁盘的N个数据分区。[0055] 示例性的,在数据磁盘中存储索引数据时,数据磁盘包括但不限于机械硬盘(HardDiskDrive,HDD)。在数据磁盘中存储加密后视频序列时,数据磁盘包括但不限于机械硬盘或者固态硬盘(SolidStateDisk,SSD)。在数据磁盘中存储加密密钥的唯一标识与加密密钥时,数据磁盘包括但不限于机械硬盘。[0056] 由以上技术方案可见,本申请实施例中,采用保护参数对视频序列进行保护,将保护后的视频序列存储到数据磁盘,这样,即使攻击者从存储设备获取到已存储的视频序列,也无法对视频序列进行解密,避免隐私信息或者敏感信息的泄露,提高数据安全性。通过对结构化数据和保护参数进行拼接得到拼接后的索引数据,并将索引数据存储到数据磁盘,而不是将结构化数据和保护参数分别存储到数据库中,能够减少大量数据库的IO操作,提升处理性能。通过将索引数据存储到数据磁盘,不需要额外占用数据库的索引盘空间(数据库的索引盘空间占用的是固态硬盘的空间),显然,数据磁盘占用的是机械硬盘的空间,且机械硬盘的成本相对于固态硬盘的成本大大降低。[0057] 本申请实施例中提出一种视频回放方法,可以应用于电子设备,如存储设备等,参见图1B所示,为该视频回放方法的流程示意图,该方法可以包括:[0058] 步骤111、从客户端获取视频回放请求。[0059] 步骤112、获取索引数据(如从数据磁盘获取该索引数据),并对该索引数据进行解析得到结构化数据和保护参数。[0060] 步骤113、基于该结构化数据获取视频回放请求对应的视频序列,采用保护参数对该视频序列进行保护操作,将保护操作后的视频序列返回给客户端。[0061] 示例性的,基于该结构化数据获取视频回放请求对应的视频序列(如加密后视频序列),可以包括但不限于:基于结构化数据中的开始时刻和结束时刻确定第一时间区间,基于视频回放请求中的回放开始时刻和回放结束时刻确定第二时间区间;若第一时间区间与第二时间区间存在重叠时间,则基于结构化数据中的偏移地址,从数据磁盘中获取该偏移地址对应的加密后视频序列。[0062] 示例性的,保护参数可以包括加密密钥信息,且加密密钥信息包括加密密钥或者加密密钥的唯一标识。基于此,采用保护参数对该视频序列进行保护操作,可以包括但不限于:若该视频序列为加密后视频序列,则采用加密密钥信息对应的加密密钥对加密后视频序列进行解密得到解密后视频序列。[0063] 在采用加密密钥信息对应的加密密钥对加密后视频序列进行解密之前,还可以获取与该加密密钥信息对应的加密密钥。比如说,若该加密密钥信息为加密密钥的唯一标识,则从数据磁盘中获取该唯一标识对应的加密密钥;若该加密密钥信息为加密密钥本身,则将该加密密钥信息作为加密密钥。[0064] 若保护参数包括加密密钥信息,在对索引数据进行解析得到结构化数据和加密密钥信息时,在从索引数据中解析到第一标识时,可以将第一标识后面的内容确定为结构化数据;在从索引数据中解析到第二标识时,可以将第二标识后面的内容确定为加密密钥信息。比如说,若索引数据依次包括第一标识、结构化数据、第二标识和加密密钥信息,则将位于第一标识与第二标识之间的内容确定为结构化数据,将位于第二标识后面的内容确定为加密密钥信息。[0065] 示例性的,保护参数可以包括完整性签名值,基于此,采用保护参数对该视频序列进行保护操作,可以包括但不限于:采用完整性签名值对加密后视频序列进行完整性校验;若完整性校验成功,则执行采用加密密钥信息对应的加密密钥对加密后视频序列进行解密得到解密后视频序列的操作;若完整性校验失败,则可以丢弃加密后视频序列,不再对加密后视频序列进行解密。[0066] 若保护参数包括完整性签名值,在对索引数据进行解析得到结构化数据、加密密钥信息和完整性签名值时,在从索引数据中解析到第一标识时,可以将第一标识后面的内容确定为结构化数据;在从索引数据中解析到第二标识时,可以将第二标识后面的内容确定为加密密钥信息;在从索引数据中解析到第三标识时,可以将第三标识后面的内容确定为完整性签名值。[0067] 比如说,若索引数据依次包括第一标识、结构化数据、第三标识、完整性签名值、第二标识和加密密钥信息,则将位于第一标识与第三标识之间的内容确定为结构化数据,将位于第三标识与第二标识之间的内容确定为完整性签名值,将位于第二标识后面的内容确定为加密密钥信息。[0068] 由以上技术方案可见,本申请实施例中,采用保护参数对视频序列进行保护,将保护后的视频序列存储到数据磁盘,这样,即使攻击者从存储设备获取到已存储的视频序列,也无法对视频序列进行解密,避免隐私信息或者敏感信息的泄露,提高数据安全性。通过对结构化数据和保护参数进行拼接得到拼接后的索引数据,并将索引数据存储到数据磁盘,而不是将结构化数据和保护参数分别存储到数据库中,能够减少大量数据库的IO操作,提升处理性能。通过将索引数据存储到数据磁盘,不需要额外占用数据库的索引盘空间(数据库的索引盘空间占用的是固态硬盘的空间),显然,数据磁盘占用的是机械硬盘的空间,且机械硬盘的成本相对于固态硬盘的成本大大降低。[0069] 本申请实施例中提出一种视频数据的存储方法,可以应用于电子设备,如存储设备等,参见图2所示,为该方法的流程示意图,该方法可以包括:[0070] 步骤201、获取视频序列,该视频序列包括多个视频帧。[0071] 步骤202、对该视频序列进行帧分析得到结构化数据。其中,该结构化数据可以包括但不限于:视频序列的开始时刻、视频序列的结束时刻、视频序列的偏移地址,且偏移地址表示视频序列在数据磁盘中对应的存储位置。[0072] 步骤203、获取加密密钥,采用该加密密钥对该视频序列进行加密得到加密后视频序列,并将加密后视频序列存储到第二数据磁盘。[0073] 步骤204、计算加密后视频序列对应的完整性签名值。[0074] 步骤205、获取加密密钥信息。比如说,可以将该加密密钥确定为加密密钥信息,或者,将该加密密钥的唯一标识确定为加密密钥信息。[0075] 步骤206、对该加密密钥信息、该结构化数据和该完整性签名值进行拼接得到拼接后的索引数据,并将该索引数据存储到第一数据磁盘。[0076] 示例性的,在加密密钥信息为加密密钥的唯一标识时,若未存储加密密钥的唯一标识与加密密钥的映射关系,则将加密密钥的唯一标识与加密密钥的映射关系存储到第三数据磁盘。若已存储加密密钥的唯一标识与加密密钥的映射关系,则不将加密密钥的唯一标识与加密密钥的映射关系存储到第三数据磁盘。[0077] 示例性的,在对该加密密钥信息、该结构化数据和该完整性签名值进行拼接得到拼接后的索引数据之后,该索引数据可以依次包括第一标识、结构化数据、第三标识、完整性签名值、第二标识和加密密钥信息。其中,在从该索引数据中解析到第一标识、第三标识和第二标识之后,可以将位于第一标识与第三标识之间的内容确定为结构化数据,可以将位于第三标识与第二标识之间的内容确定为完整性签名值,并将位于第二标识后面的内容确定为加密密钥信息。[0078] 当然,上述只是加密密钥信息、结构化数据和完整性签名值的位置关系的示例,加密密钥信息也可以位于结构化数据的前面,加密密钥信息也可以位于完整性签名值的前面,完整性签名值也可以结构化数据的前面,对此不做限制,只要第一标识位于结构化数据的前面,第三标识位于完整性签名值的前面,第二标识位于加密密钥信息的前面即可,对此位置关系不做限制。[0079] 基于上述视频数据的存储方法,本申请实施例中还提出一种视频回放方法,该视频回放方法可以包括:从客户端获取视频回放请求,从第一数据磁盘中获取索引数据(如从第一数据磁盘中获取多个索引数据),并对该索引数据进行解析得到结构化数据、完整性签名值和加密密钥信息。[0080] 针对每个索引数据,若该索引数据的结构化数据中的开始时刻和结束时刻与视频回放请求中的时间信息不匹配,则继续遍历下一个索引数据,一直到遍历完所有索引数据,或,找到与视频回放请求中的时间信息匹配的索引数据。若该索引数据的结构化数据中的开始时刻和结束时刻与视频回放请求中的时间信息匹配,则基于该结构化数据中的偏移地址,从第二数据磁盘中获取该偏移地址对应的加密后视频序列,并继续遍历下一个索引数据,一直到遍历完所有索引数据,或,找到与视频回放请求中的时间信息匹配的所有索引数据。[0081] 比如说,可以基于该结构化数据中的开始时刻和结束时刻确定第一时间区间,基于该视频回放请求中的回放开始时刻和回放结束时刻确定第二时间区间。若第一时间区间与第二时间区间存在重叠时间,则结构化数据与视频回放请求匹配,反之,若不存在重叠时间,则结构化数据与视频回放请求不匹配。[0082] 在从第二数据磁盘中获取该偏移地址对应的加密后视频序列之后,可以采用该索引数据中的完整性签名值对加密后视频序列进行完整性校验。若完整性校验失败,则可以丢弃加密后视频序列。若完整性校验成功,则可以获取该索引数据中的加密密钥信息对应的加密密钥,并采用该加密密钥对加密后视频序列进行解密,得到未加密的视频序列。其中,若该加密密钥信息为加密密钥的唯一标识,则可以从第三数据磁盘中获取该唯一标识对应的加密密钥;若该加密密钥信息为加密密钥本身,则可以将该加密密钥信息作为加密密钥。[0083] 由以上技术方案可见,本申请实施例中,通过对加密密钥信息、结构化数据和完整性签名值进行拼接得到拼接后的索引数据,将索引数据存储到第一数据磁盘,而不是将加密密钥信息、结构化数据和完整性签名值分别存储到数据库中,能够减少大量数据库的IO操作,提升处理性能。通过将索引数据存储到第一数据磁盘,不需要额外占用数据库的索引盘空间(固态硬盘的空间),第一数据磁盘占用机械硬盘的空间,机械硬盘的成本相对于固态硬盘的成本降低。[0084] 以下结合具体应用场景,对本申请实施例的技术方案进行说明。[0085] 在一种可能的实施方式中,参见图3所示,为视频数据的存储方法的示意图,该方法可以应用于存储设备,该方法可以包括以下步骤:[0086] 步骤1、存储设备从前端设备(如IPC)获取视频流。比如说,在前端设备接入存储设备之后,存储设备的视频接入模块可以从前端设备获取视频流。[0087] 步骤2、存储设备基于视频流生成视频序列,该视频序列包括多个视频帧。[0088] 示例性的,该视频序列可以是GOP(GroupOfPicture,图像组)序列,也可以是其它视频帧集合,对此不做限制,以GOP序列为例。GOP序列表示一小段时间内的视频帧集合,比如说,假设帧率为25,I帧间隔为50,则一个GOP序列代表2秒的视频帧集合,且GOP序列可以包括50个视频帧。[0089] 存储设备在得到视频流(即流式的视频数据)之后,可以对视频流进行重组,得到GOP序列,GOP序列包括相邻两个I帧之间的一组视频帧,即,GOP序列的第一帧为I帧,且GOP序列包括该I帧后面的所有P帧。[0090] 步骤3、存储设备对该视频序列进行帧分析得到结构化数据,该结构化数据用于在视频回放时定位(检索)视频序列,该过程参见后续实施例。[0091] 示例性的,该结构化数据可以包括视频序列的开始时刻、视频序列的结束时刻、视频序列的偏移地址。当然,除了上述信息,该结构化数据还可以包括I帧大小、GOP大小、GOP序号等,对此结构化数据不做限制。[0092] 步骤4、存储设备调用加密卡(如硬件加密卡),通过加密卡获取加密密钥,并采用该加密密钥对视频序列进行加密得到加密后视频序列。[0093] 示例性的,视频序列是视频明文数据,加密卡可以采用加密密钥对视频序列进行加密得到加密后视频序列,加密后视频序列是视频密文数据。在采用加密密钥对视频序列进行加密时,可以采用对称加密算法(如SM4算法等)对视频序列进行加密,也可以采用其它算法对视频序列进行加密,对此不做限制。[0094] 示例性的,加密卡在获取加密密钥时,可以定期更新加密密钥,比如说,针对0‑2时的视频序列,可以采用加密密钥a1,针对2‑4时的视频序列,可以采用加密密钥a2,针对4‑6时的视频序列,可以采用加密密钥a3,以此类推。[0095] 步骤5、存储设备计算加密后视频序列对应的完整性签名值。[0096] 示例性的,可以采用完整性保护算法计算加密后视频序列对应的完整性签名值,以完整性保护算法是哈希算法(如SM3算法等),可以对加密后视频序列进行哈希运算,将哈希运算结果作为加密后视频序列对应的完整性签名值。[0097] 比如说,存储设备调用加密卡(如硬件加密卡),通过加密卡对加密后视频序列进行哈希运算,得到加密后视频序列对应的完整性签名值。[0098] 步骤6、存储设备将结构化数据存储到数据库中。[0099] 步骤7、存储设备将加密密钥存储到数据库中。[0100] 示例性的,每次加密密钥更新时,才会将加密密钥存储到数据库中,在加密密钥未更新时,不需要将加密密钥存储到数据库中。比如说,在加密密钥更新为加密密钥a1时,将加密密钥a1存储到数据库中,且加密密钥a1对应0‑2时,表示0‑2时的所有视频序列均对应加密密钥a1。在加密密钥更新为加密密钥a2时,将加密密钥a2存储到数据库中,以此类推。[0101] 步骤8、存储设备将完整性签名值存储到数据库中。[0102] 步骤9、存储设备将加密后视频序列存储到数据磁盘中。[0103] 示例性的,在将加密后视频序列存储到数据磁盘时,可以先确定加密后视频序列在数据磁盘中对应的存储位置(即视频序列的偏移地址),且上述结构化数据也会包括视频序列的偏移地址。在此基础上,可以基于视频序列的偏移地址,将加密后视频序列存储到数据磁盘中与该偏移地址对应的位置。[0104] 偏移地址可以包括起始地址和数据长度,或者,偏移地址可以包括起始地址和结束地址,对此不做限制,只要能够表示视频序列的存储位置即可。[0105] 在一种可能的实施方式中,参见图4所示,为视频数据的读取(即视频回放)方法的示意图,该方法可以应用于存储设备,该方法可以包括:[0106] 步骤1、存储设备从客户端获取视频回放请求,该视频回放请求可以包括IPC标识、回放开始时刻、回放结束时刻,表示需要检索IPC标识对应的IPC采集的视频数据,且需要检索位于回放开始时刻与回放结束时刻之间的视频数据。[0107] 比如说,存储设备的视频回放模块可以从客户端获取视频回放请求。[0108] 步骤2、存储设备从数据库中查询视频回放请求对应的结构化数据。[0109] 比如说,针对数据库中的每个结构化数据,该结构化数据包括视频序列的开始时刻和视频序列的结束时刻,可以确定该结构化数据对应的时间区间1(即从开始时刻至结束时刻),并确定视频回放请求对应的时间区间2(即从回放开始时刻至回放结束时刻)。若时间区间1与时间区间2存在重叠时间,则该结构化数据是与视频回放请求对应的结构化数据。若时间区间1与时间区间2不存在重叠时间,则该结构化数据不是与视频回放请求对应的结构化数据。[0110] 比如说,若视频回放请求包括IPC标识1,则从数据库中查询与IPC标识1对应的所有结构化数据。针对与IPC标识1对应的每个结构化数据,若该结构化数据对应的时间区间与时间区间2存在重叠时间,则该结构化数据是与视频回放请求对应的结构化数据。若该结构化数据对应的时间区间与时间区间2不存在重叠时间,则该结构化数据不是与视频回放请求对应的结构化数据。[0111] 比如说,结构化数据还可以包括IPC标识,表示该结构化数据与该IPC标识对应的IPC采集的视频数据对应,基于此,由于结构化数据包括IPC标识,因此,可以从数据库中查询与IPC标识1对应的所有结构化数据。[0112] 步骤3、存储设备获取该结构化数据中的偏移地址(如起始地址和数据长度)。[0113] 比如说,由于结构化数据中包括偏移地址,因此,在得到视频回放请求对应的结构化数据之后,可以从该结构化数据中获取偏移地址。[0114] 步骤4、存储设备从数据磁盘中获取该偏移地址对应的加密后视频序列。[0115] 步骤5、存储设备从数据库中读取加密后视频序列的完整性签名值。[0116] 比如说,存储设备在数据库中存储完整性签名值时,可以将视频序列的唯一标识(即数据唯一标识,如GOP序号等)和完整性签名值一起存储到数据库。存储设备在数据库中存储结构化数据时,结构化数据也可以包括视频序列的唯一标识。这样,在得到视频回放请求对应的结构化数据之后,基于结构化数据中的唯一标识,可以从数据库中读取该唯一标识对应的完整性签名值。[0117] 步骤6、存储设备采用该完整性签名值对加密后视频序列进行完整性校验。[0118] 比如说,存储设备计算加密后视频序列对应的完整性签名值A,如采用完整性保护算法计算加密后视频序列对应的完整性签名值A,以完整性保护算法是哈希算法(如SM3算法等)为例,可以对加密后视频序列进行哈希运算,将哈希运算结果作为完整性签名值A。比如说,存储设备调用加密卡(如硬件加密卡),通过加密卡对加密后视频序列进行哈希运算,得到完整性签名值A。[0119] 假设从数据库中读取的是完整性签名值B,若完整性签名值A与完整性签名值B相同,则完整性校验成功,表示加密后视频序列未被篡改,加密后视频序列完整,此时执行步骤7。若完整性签名值A与完整性签名值B不同,则完整性校验失败,表示加密后视频序列被篡改,此时不执行步骤7。[0120] 步骤7、存储设备从数据库中读取加密后视频序列的加密密钥。[0121] 比如说,存储设备在数据库中存储加密密钥时,可以将时间区间(如0‑2时、2‑4时等)和加密密钥一起存储到数据库。基于此,在得到视频回放请求对应的结构化数据之后,基于结构化数据中的开始时刻至结束时刻,可以确定该结构化数据对应的时间区间(即开始时刻和结束时刻均属于该时间区间),这样,存储设备可以从数据库中读取该时间区间对应的加密密钥。[0122] 步骤8、存储设备采用该加密密钥对加密后视频序列(即视频密文数据)进行解密,得到未加密的视频序列(即视频明文数据)。[0123] 比如说,存储设备调用加密卡(如硬件加密卡),加密卡可以采用该加密密钥对加密后视频序列进行解密,得到未加密的视频序列。在采用加密密钥对加密后视频序列进行解密时,可以采用对称加密算法(如SM4算法等)对加密后视频序列进行解密,也可以采用其它算法对加密后视频序列进行解密。[0124] 在得到未加密的视频序列之后,存储设备还可以将该视频序列返回给客户端,由客户端播放该视频序列,对此客户端的处理过程不做限制。[0125] 在上述过程中,通过对视频序列进行加密存储,可以确保在视频数据丢失之后,不会泄露隐私信息或者敏感信息,提高数据安全性。通过对视频序列进行完整性保护,可以检测视频序列是否被篡改,进一步提高数据安全性。[0126] 在上述过程中,针对视频数据的存储过程,需要将结构化数据存储到数据库中、将加密密钥存储到数据库中、将完整性签名值存储到数据库中。针对视频数据的读取过程,需要从数据库中读取结构化数据、从数据库中读取加密密钥、从数据库中读取完整性签名值,上述操作会导致存在以下问题:[0127] 1:数据库的读写IO较多,影响性能。在视频数据写入时,需要将加密密钥、完整性签名值、结构化数据存储到数据库中,在视频数据回放时,也需要从数据库中读取这些信息,较多的数据库IO会导致软件性能瓶颈。比如说,存储设备访问数据库的频次增加时,在一定程度上影响软件整体性能。[0128] 以4Mbps码流、帧率为25、I帧间隔为50、写1小时为例,写数据库频次如下:写结构化数据次数为1小时*60分钟*60秒/2secperGOP=1800次,写完整性签名值为4Mbps*1小时*60分钟*60秒/2MB=900次。[0129] 2:需要大量的数据库索引盘空间,由于数据库的索引盘空间是基于固态硬盘实现,且固态硬盘的成本较高,因此,数据库的大量索引盘空间的成本较高。[0130] 每个结构化数据包括:开始时刻、结束时刻、偏移地址、I帧大小、GOP大小、GOP序号等内容,这些内容约占56字节。以4Mbps码流、帧率为25、I帧间隔为50、写1小时为例,视频序列(GOP序列)的个数为1小时*60分钟*60秒/2secperGOP=1800个,占用空间为1800个*56字节=100KB,一个IPC在1天占用的空间为100KB*24小时,即占用的空间约为2.5MB。每个完整性签名值为96字节,以4Mbps码流、帧率为25、I帧间隔为50、写1小时为例,完整性签名值的个数为4Mbps*1小时*60分钟*60秒/2MB=900,占用空间为900个*96字节=86KB,一个IPC在1天占用的空间为100KB*24小时,约2MB。[0131] 按照存储设备接入500个IPC为例,视频数据的存储周期为30天,则存储设备额外需要新增数据库空间为500个*30天*(2MB+2.5MB),约为67GB。[0132] 3:数据库损坏后视频数据无法恢复。如果数据库发生损坏,则导致加密密钥、完整性签名值、结构化数据丢失。显然,在加密密钥丢失之后,将导致视频数据无法解密,视频数据无法查看。在完整性签名值丢失之后,将导致数据完整性保护功能失效。在结构化数据丢失之后,将导致视频数据无法定位回放。[0133] 在一种可能的实施方式中,参见图5所示,为视频数据的存储方法的示意图,该方法可以应用于存储设备,存储设备可以是云存储设备,也可以是其它存储设备,对此存储设备的类型不做限制,该方法可以包括:[0134] 步骤1、存储设备从前端设备(如IPC)获取视频流。比如说,在前端设备接入存储设备之后,存储设备的视频接入模块可以从前端设备获取视频流。[0135] 步骤2、存储设备基于视频流生成视频序列,该视频序列包括多个视频帧。[0136] 示例性的,视频序列可以是GOP序列,也可以是其它视频帧集合,GOP序列表示一小段时间内的视频帧集合。存储设备在得到视频流之后,可以对视频流进行重组,得到GOP序列,GOP序列包括相邻两个I帧之间的一组视频帧。[0137] 步骤3、存储设备对该视频序列进行帧分析得到结构化数据,该结构化数据可以包括视频序列的开始时刻、视频序列的结束时刻、视频序列的偏移地址。[0138] 步骤4、存储设备获取加密密钥,采用该加密密钥对视频序列进行加密得到加密后视频序列。比如说,存储设备调用加密卡(如硬件加密卡),通过加密卡获取加密密钥,采用该加密密钥对视频序列进行加密得到加密后视频序列。[0139] 示例性的,加密卡在获取加密密钥时,可以定期更新加密密钥,比如说,针对0‑2时的视频序列,可以采用加密密钥a1,针对2‑4时的视频序列,可以采用加密密钥a2,针对4‑6时的视频序列,可以采用加密密钥a3,以此类推。[0140] 步骤5、存储设备计算加密后视频序列对应的完整性签名值。比如说,存储设备调用加密卡(如硬件加密卡),通过加密卡对加密后视频序列进行哈希运算,得到加密后视频序列对应的完整性签名值(即哈希运算结果)。[0141] 步骤6、存储设备对加密密钥信息、结构化数据和完整性签名值进行拼接,得到拼接后的索引数据(index),该索引数据是拼接后的数据结构。[0142] 示例性的,可以将该加密密钥作为加密密钥信息,在该情况下,即使某个时间区间(如0‑2时)内的所有视频序列采用同一个加密密钥,那么,针对每个视频序列,也可以将该视频序列采用的加密密钥拼接到索引数据中。[0143] 示例性的,可以将该加密密钥的唯一标识作为加密密钥信息,在该情况下,某个时间区间(如0‑2时)内的所有视频序列采用同一个加密密钥时,那么,针对每个视频序列,可以只将该加密密钥的唯一标识拼接到索引数据中。[0144] 此外,为了找到唯一标识对应的加密密钥,还可以将加密密钥的唯一标识与加密密钥的映射关系存储到第三数据磁盘,且第三数据磁盘可以为机械硬盘。[0145] 比如说,针对该时间区间的第一个视频序列,还未存储加密密钥的唯一标识与加密密钥的映射关系,因此,将加密密钥的唯一标识与加密密钥的映射关系存储到第三数据磁盘。针对该时间区间的非第一个视频序列,已经存储加密密钥的唯一标识与加密密钥的映射关系,不再需要存储这个映射关系。[0146] 示例性的,在对该加密密钥信息、该结构化数据和该完整性签名值进行拼接时,可以为该结构化数据设置第一标识(表示第一标识后面的是结构化数据),可以为该完整性签名值设置第二标识(表示第二标识后面的是完整性签名值),可以为该加密密钥信息设置第三标识(表示第三标识后面的是加密密钥信息)。[0147] 关于索引数据中的加密密钥信息、结构化数据和完整性签名值的顺序,本实施例中不做限制。比如说,加密密钥信息可以位于结构化数据的前面,加密密钥信息也可以位于结构化数据的后面。加密密钥信息可以位于完整性签名值的前面,加密密钥信息也可以位于完整性签名值的后面。结构化数据可以位于完整性签名值的前面,结构化数据也可以位于完整性签名值的后面。[0148] 比如说,考虑到在视频回放过程中,需要先使用结构化数据,然后使用完整性签名值,然后使用加密密钥信息,因此,结构化数据可以位于完整性签名值的签名,且完整性签名值可以位于加密密钥信息的前面。基于此,该索引数据可以依次包括第一标识、结构化数据、第二标识、完整性签名值、第三标识和加密密钥信息。在视频回放过程中,在从该索引数据中解析到第一标识、第二标识和第三标识之后,可以将位于第一标识与第二标识之间的内容确定为结构化数据,可以将位于第二标识与第三标识之间的内容确定为完整性签名值,可以将位于第三标识后面的内容确定为加密密钥信息。[0149] 步骤7、存储设备将该索引数据多副本存储到第一数据磁盘。在将索引数据存储到第一数据磁盘时,可以在第一数据磁盘中持久化存储索引数据。[0150] 示例性的,存储设备是将索引数据存储到数据磁盘,而不是将索引数据存储到数据库中,由于数据磁盘可以为机械硬盘,而不是固态硬盘,因此,可以通过机械硬盘存储索引数据。此外,可以复制多份索引数据,将多份索引数据存储到多个数据磁盘,从而避免某个数据磁盘故障导致索引数据丢失。[0151] 示例性的,可以获取该视频序列对应的数据安全性,数据安全性可以为高安全性存储需求、中安全性存储需求或者低安全性存储需求。比如说,可以由用户根据实际需求配置视频序列对应的数据安全性,如用户配置时间区间1内的所有视频序列对应高安全性存储需求,配置时间区间2内的所有视频序列对应中安全性存储需求,以此类推。当然,也可以采用其它方式获取数据安全性。[0152] 可以基于该索引数据生成N份索引数据,N可以为大于1的正整数。比如说,可以对该索引数据进行复制,一共得到N份索引数据即可。[0153] 若该数据安全性为高安全性存储需求,则可以将N份索引数据分别存储到N个存储节点的数据磁盘。比如说,存储系统可以分布式的部署多个存储节点,可以从多个存储节点中选取N个存储节点,并将N份索引数据分别存储到N个存储节点的数据磁盘,即,每个存储节点的数据磁盘存储一份索引数据。[0154] 若该数据安全性为中安全性存储需求,则可以将N份索引数据分别存储到一个存储节点的N个数据磁盘。比如说,存储系统可以分布式的部署多个存储节点,可以从多个存储节点中选取一个存储节点,且该存储节点可以包括多个数据磁盘,可以从多个数据磁盘中选取N个数据磁盘,并将N份索引数据分别存储到该存储节点的N个数据磁盘,即,每个数据磁盘存储一份索引数据。[0155] 若该数据安全性为低安全性存储需求,则可以将N份索引数据分别存储到一个存储节点的一个数据磁盘的N个数据分区。比如说,存储系统可以分布式的部署多个存储节点,可以从多个存储节点中选取一个存储节点,并从该存储节点的多个数据磁盘中选取一个数据磁盘,并将N份索引数据分别存储到该数据磁盘的N个数据分区,即,每个数据分区存储一份索引数据。[0156] 示例性的,在将加密密钥的唯一标识与加密密钥的映射关系存储到第三数据磁盘时,也可以将该映射关系多副本存储到第三数据磁盘(第三数据磁盘可以为机械硬盘),从而避免某个数据磁盘故障导致该映射关系丢失。比如说,可以基于该映射关系生成N份映射关系。若数据安全性为高安全性存储需求,则可以将N份映射关系分别存储到N个存储节点的数据磁盘。或者,若数据安全性为中安全性存储需求,则可以将N份映射关系分别存储到一个存储节点的N个数据磁盘。或者,若该数据安全性为低安全性存储需求,则可以将N份映射关系分别存储到一个存储节点的一个数据磁盘的N个数据分区。[0157] 步骤8、存储设备将加密后视频序列存储到第二数据磁盘中。[0158] 示例性的,在将加密后视频序列存储到数据磁盘时,可以先确定加密后视频序列在数据磁盘中对应的存储位置(即视频序列的偏移地址),且上述结构化数据也会包括视频序列的偏移地址。在此基础上,可以基于视频序列的偏移地址,将加密后视频序列存储到数据磁盘中与该偏移地址对应的位置。[0159] 偏移地址可以包括起始地址和数据长度,或者,偏移地址可以包括起始地址和结束地址,对此不做限制,只要能够表示视频序列的存储位置即可。[0160] 示例性的,第二数据磁盘可以包括但不限于机械硬盘或固态硬盘,即可以通过机械硬盘存储加密后视频序列,也可以通过固态硬盘存储加密后视频序列。[0161] 在一种可能的实施方式中,参见图6所示,为视频数据的读取(即视频回放)方法的示意图,该方法可以应用于存储设备,该方法可以包括:[0162] 步骤1、存储设备从客户端获取视频回放请求,该视频回放请求可以包括IPC标识、回放开始时刻、回放结束时刻,表示需要检索IPC标识对应的IPC采集的视频数据,且需要检索位于回放开始时刻与回放结束时刻之间的视频数据。[0163] 比如说,存储设备的视频回放模块可以从客户端获取视频回放请求。[0164] 步骤2、存储设备从第一数据磁盘中读取索引数据。[0165] 示例性的,由于第一数据磁盘包括多个索引数据,因此,可以从第一数据磁盘依次遍历每个索引数据。需要注意的是,由于索引数据是多副本存储,因此,在某个数据磁盘故障时,还可以从其它数据磁盘遍历索引数据。[0166] 步骤3、针对每个索引数据,存储设备对索引数据进行解析得到结构化数据。[0167] 比如说,若索引数据依次包括第一标识、结构化数据、第二标识、完整性签名值、第三标识和加密密钥信息,那么,在从该索引数据中解析到第一标识和第二标识之后,将位于第一标识与第二标识之间的内容确定为结构化数据。[0168] 步骤4、若该结构化数据与视频回放请求匹配,则存储设备获取该结构化数据中的偏移地址,该偏移地址可以包括起始地址和数据长度。[0169] 示例性的,针对每个索引数据,若该索引数据中的结构化数据与视频回放请求匹配,则基于该索引数据进行后续步骤。若该索引数据中的结构化数据与视频回放请求不匹配,则不基于该索引数据进行后续步骤。[0170] 示例性的,可以基于结构化数据中的开始时刻和结束时刻确定第一时间区间,基于视频回放请求中的回放开始时刻和回放结束时刻确定第二时间区间。若第一时间区间与第二时间区间存在重叠时间,则该结构化数据与视频回放请求匹配,反之,若不存在重叠时间,则该结构化数据与视频回放请求不匹配。[0171] 比如说,若视频回放请求还包括IPC标识,且结构化数据也包括IPC标识,那么,若结构化数据中的IPC标识与视频回放请求中的IPC标识不同,则该结构化数据与视频回放请求不匹配。若结构化数据中的IPC标识与视频回放请求中的IPC标识相同,才会比较第一时间区间与第二时间区间是否存在重叠时间。[0172] 步骤5、基于该结构化数据中的偏移地址,存储设备从第二数据磁盘中获取该偏移地址对应的加密后视频序列。比如说,从第二数据磁盘的起始地址开始,读取与该数据长度对应的视频数据,而读取的视频数据就是加密后视频序列。[0173] 步骤6、存储设备对索引数据进行解析得到加密后视频序列的完整性签名值。[0174] 比如说,若索引数据依次包括第一标识、结构化数据、第二标识、完整性签名值、第三标识和加密密钥信息,那么,在从该索引数据中解析到第二标识和第三标识之后,将位于第二标识与第三标识之间的内容确定为完整性签名值。[0175] 步骤7、存储设备采用该完整性签名值对加密后视频序列进行完整性校验。[0176] 比如说,存储设备计算加密后视频序列对应的完整性签名值A,如存储设备调用加密卡(如硬件加密卡),通过加密卡采用哈希算法(如SM3算法等)对加密后视频序列进行哈希运算,得到完整性签名值A(即哈希运算结果)。[0177] 假设对索引数据进行解析得到的是完整性签名值B,若完整性签名值A与完整性签名值B相同,则完整性校验成功,表示加密后视频序列未被篡改,加密后视频序列完整,此时执行步骤8。若完整性签名值A与完整性签名值B不同,则完整性校验失败,表示加密后视频序列被篡改,此时不执行步骤8。[0178] 步骤8、存储设备对索引数据进行解析得到加密后视频序列的加密密钥信息。[0179] 比如说,若索引数据依次包括第一标识、结构化数据、第二标识、完整性签名值、第三标识和加密密钥信息,那么,在从该索引数据中解析到第三标识之后,可以将位于第三标识后面的内容确定为加密密钥信息。[0180] 在得到加密密钥信息之后,还可以获取与该加密密钥信息对应的加密密钥。比如说,若该加密密钥信息为加密密钥的唯一标识,则可以从第三数据磁盘中获取该加密密钥的唯一标识对应的加密密钥。或者,若该加密密钥信息为加密密钥本身,则可以直接将该加密密钥信息作为加密密钥。[0181] 步骤9、存储设备采用该加密密钥对加密后视频序列(视频密文数据)进行解密,得到未加密的视频序列(视频明文数据)。比如说,存储设备调用加密卡(如硬件加密卡),加密卡采用加密密钥对加密后视频序列进行解密,得到未加密的视频序列,如采用对称加密算法对加密后视频序列进行解密。[0182] 在得到未加密的视频序列之后,存储设备还可以将该视频序列返回给客户端,由客户端播放该视频序列,对此客户端的处理过程不做限制。[0183] 在上述过程中,针对视频数据的存储过程,需要将结构化数据、加密密钥信息和完整性签名值拼接得到索引数据,并将索引数据存储到数据磁盘,而不是存储到数据库中。针对视频数据的读取过程,需要从数据磁盘中读取索引数据,对索引数据进行解析得到结构化数据、加密密钥信息和完整性签名值,而不是从数据库中读取索引数据。上述操作会产生以下技术效果:[0184] 1:减少数据库的IO操作,提升性能。比如说,在视频数据写入时,将结构化数据、加密密钥、完整性签名值的数据库写入操作,替换成数据磁盘的写入操作,从而大量减少数据库的IO操作,提升性能。在视频数据回放时,将结构化数据、加密密钥、完整性签名值的数据库读取操作,替换成数据磁盘的读取操作,从而大量减少数据库的IO操作,提升性能。[0185] 2:不占用额外数据库索引盘空间,节省建设成本。比如说,由于结构化数据、加密密钥、完整性签名值都是存储在索引数据中,且索引数据存储到数据磁盘中,不占用数据库索引盘空间。由于数据库的索引盘空间是基于固态硬盘实现,而数据磁盘是机械硬盘实现,且机械硬盘的成本低于固态硬盘,因此,通过将结构化数据、加密密钥、完整性签名值存储到数据磁盘,节省建设成本。[0186] 3:提升视频数据安全性。比如说,通过将结构化数据、加密密钥、完整性签名值以多副本形式存储到数据磁盘中,增加了视频数据的安全性,即使一份数据磁盘的索引数据损坏,也可以从其它副本读取索引数据,不影响视频回放。[0187] 基于与上述方法同样的申请构思,本申请实施例中提出一种视频数据的存储装置,参见图7A所示,为所述装置的结构示意图,所述装置可以包括:[0188] 获取模块71,用于获取视频序列,所述视频序列包括多个视频帧;处理模块72,用于对所述视频序列进行帧分析得到结构化数据;获取所述视频序列对应的保护参数,对所述结构化数据和所述保护参数进行拼接得到拼接后的索引数据,所述保护参数用于对所述视频序列进行保护;其中,所述索引数据用于在视频回放过程中对所述索引数据进行解析得到所述结构化数据和所述保护参数,基于所述结构化数据获取视频序列,采用所述保护参数对获取的视频序列进行保护操作;存储模块73,用于存储所述索引数据。[0189] 示例性的,所述存储模块73存储所述索引数据时具体用于:在数据磁盘中存储所述索引数据。[0190] 示例性的,所述保护参数包括加密密钥信息;所述加密密钥信息包括加密密钥或者加密密钥的唯一标识;所述加密密钥用于对所述视频序列进行加密得到加密后视频序列;所述存储模块73还用于:存储所述加密后视频序列;[0191] 在所述处理模块72对所述结构化数据和所述加密密钥信息进行拼接时,所述结构化数据的前面为第一标识,所述加密密钥信息的前面为第二标识。[0192] 示例性的,所述保护参数包括完整性签名值;所述处理模块72获取所述视频序列对应的保护参数时具体用于:计算所述加密后视频序列对应的完整性签名值;其中,在所述处理模块72对所述结构化数据、所述加密密钥信息和所述完整性签名值进行拼接时,所述结构化数据的前面为第一标识,所述加密密钥信息的前面为第二标识,所述完整性签名值的前面为第三标识。[0193] 在所述处理模块72对所述结构化数据、所述加密密钥信息和所述完整性签名值进行拼接得到拼接后的索引数据之后,所述索引数据依次包括所述第一标识、所述结构化数据、所述第三标识、所述完整性签名值、所述第二标识和所述加密密钥信息;其中,在从所述索引数据中解析到所述第一标识、所述第三标识和所述第二标识之后,将位于所述第一标识与所述第三标识之间的内容确定为所述结构化数据,将位于所述第三标识与所述第二标识之间的内容确定为所述完整性签名值,将位于所述第二标识后面的内容确定为所述加密密钥信息。[0194] 示例性的,所述存储模块73存储所述索引数据时具体用于:获取所述视频序列对应的数据安全性;其中,所述数据安全性为高安全性存储需求、中安全性存储需求或者低安全性存储需求;基于所述索引数据生成N份索引数据,N为大于1的正整数;若所述数据安全性为高安全性存储需求,则将所述N份索引数据分别存储到N个存储节点的数据磁盘;或者,若所述数据安全性为中安全性存储需求,则将所述N份索引数据分别存储到一个存储节点的N个数据磁盘;或者,若所述数据安全性为低安全性存储需求,则将所述N份索引数据分别存储到一个存储节点的一个数据磁盘的N个数据分区。[0195] 基于与上述方法同样的申请构思,本申请实施例中提出一种视频回放装置,参见图7B所示,为所述装置的结构示意图,所述装置可以包括:[0196] 获取模块74,用于从客户端获取视频回放请求;[0197] 处理模块75,用于获取索引数据,对所述索引数据进行解析得到结构化数据和保护参数;基于所述结构化数据获取所述视频回放请求对应的视频序列,采用所述保护参数对该视频序列进行保护操作;[0198] 发送模块76,用于将保护操作后的视频序列返回给客户端。[0199] 示例性的,所述保护参数包括加密密钥信息;所述加密密钥信息包括加密密钥或者加密密钥的唯一标识;所述处理模块75采用所述保护参数对该视频序列进行保护操作时具体用于:若该视频序列为加密后视频序列,则采用所述加密密钥信息对应的加密密钥对所述加密后视频序列进行解密得到解密后视频序列;其中,在对所述索引数据进行解析得到所述结构化数据和所述加密密钥信息时,在从所述索引数据中解析到第一标识时,将所述第一标识后面的内容确定为所述结构化数据;在从所述索引数据中解析到第二标识时,将所述第二标识后面的内容确定为所述加密密钥信息。[0200] 示例性的,所述保护参数包括完整性签名值;所述处理模块75采用所述保护参数对该视频序列进行保护操作时具体用于:采用所述完整性签名值对所述加密后视频序列进行完整性校验;若校验成功,则执行采用所述加密密钥信息对应的加密密钥对所述加密后视频序列进行解密得到解密后视频序列的操作;若校验失败,则丢弃所述加密后视频序列;其中,在对所述索引数据进行解析得到所述结构化数据、所述加密密钥信息和所述完整性签名值时,在从所述索引数据中解析到第一标识时,将所述第一标识后面的内容确定为所述结构化数据;在从所述索引数据中解析到第二标识时,将所述第二标识后面的内容确定为所述加密密钥信息;在从所述索引数据中解析到第三标识时,将所述第三标识后面的内容确定为所述完整性签名值。[0201] 基于与上述方法同样的申请构思,本申请实施例中提出一种电子设备,参见图8所示,电子设备包括:处理器81和机器可读存储介质82,所述机器可读存储介质82存储有能够被所述处理器81执行的机器可执行指令;所述处理器81用于执行机器可执行指令,以实现本申请上述示例公开的视频数据的存储方法,或者,实现本申请上述示例公开的视频回放方法。[0202] 基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的视频数据的存储方法,或者,实现本申请上述示例公开的视频回放方法。[0203] 其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccessMemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。[0204] 基于与上述方法同样的申请构思,本申请实施例中提出一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现本申请上述示例公开的视频数据的存储方法,或者,实现本申请上述示例公开的视频回放方法。[0205] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。[0206] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

专利地区:浙江

专利申请日期:2024-06-26

专利公开日期:2024-09-03

专利公告号:CN118410203B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部