CN115955576B - 视频数据访问方法、装置、存储节点及存储介质 - Google Patents
视频数据访问方法、装置、存储节点及存储介质 Download PDFInfo
- Publication number
- CN115955576B CN115955576B CN202310224521.4A CN202310224521A CN115955576B CN 115955576 B CN115955576 B CN 115955576B CN 202310224521 A CN202310224521 A CN 202310224521A CN 115955576 B CN115955576 B CN 115955576B
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- video data
- read
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Television Signal Processing For Recording (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及分布式存储技术领域,提供一种视频数据访问方法、装置、存储节点及存储介质,应用于分布式存储***中的存储节点,存储节点包括多块硬盘,方法包括:获取视频数据;若视频数据包括整帧I帧数据、且视频数据的长度为预设长度,则将视频数据存储至硬盘,其中,整帧I帧数据不跨多硬盘存储。本发明能够提高分布式存储***中视频数据的安全性。
Description
技术领域
本发明涉及分布式存储技术领域,具体而言,涉及一种视频数据访问方法、装置、存储节点及存储介质。
背景技术
视频文件主要指那些包含了实时的音频、视频信息的多媒体文件,其多媒体信息通常来源于视频输入设备。视频文件中视频数据的数据量通常比较大,因此,通常将视频文件存储至分布式存储***。
如何提高分布式存储***中视频数据的安全性是本领域技术人员亟待解决的问题。
发明内容
本发明的目的包括,例如,提供了一种视频数据访问方法、装置、存储节点及存储介质,其能够提高分布式存储***中视频数据的安全性。
本发明的实施例可以这样实现:
第一方面,本发明提供一种视频数据访问方法,应用于分布式存储***中的存储节点,所述存储节点包括多块硬盘,所述方法包括:
获取视频数据;
若所述视频数据包括整帧I帧数据、且所述视频数据的长度为预设长度,则将所述视频数据存储至所述硬盘,其中,所述整帧I帧数据不跨多硬盘存储。
在可选的实施方式中,所述方法还包括:
若所述视频数据包括部分I帧数据、且所述部分I帧数据包括I帧头部数据、且所述视频数据的长度等于所述预设长度,则将所述视频数据分割为部分I帧数据和非I帧视频数据;
对所述非I帧视频数据进行补充并将补充后的非I帧视频数据存储至所述硬盘,所述补充后的所述非I帧视频数据的长度为所述预设长度;
继续获取所述视频数据之后的视频数据,并利用新获取的视频数据对所述部分I帧数据进行补充,使补充后的部分I帧数据包括整帧I帧数据、且补充后的部分I帧数据的长度为所述预设长度;
将补充后的部分I帧数据存储至所述硬盘。
在可选的实施方式中,所述方法还包括:
获取所述视频数据的编码格式;
根据所述编码格式确定所述视频数据中是否包括I帧数据;
若所述视频数据中包括I帧数据,则根据所述I帧数据的头部数据判断所述I帧数据为整帧I帧数据还是部分I帧数据。
在可选的实施方式中,所述将所述视频数据存储至所述硬盘的步骤包括:
对所述视频数据进行哈希计算,得到所述视频数据的哈希值;
将所述哈希值和所述视频数据存储至所述硬盘。
在可选的实施方式中,所述分布式存储***中还包括与所述存储节点存在关联关系的多个关联节点,每一所述关联节点和所述存储节点均包括多个数据块,所述存储节点中每一所述数据块和所有所述关联节点中对应的数据块属于同一个纠删组,所述方法还包括:
确定所述存储节点中多个数据块中的待读数据块;
若所述待读数据块读取失败,则从所述关联节点中与所述待读数据块属于同一个纠删组的数据块中确定代替数据块;
将所述代替数据块作为所述待读数据块。
在可选的实施方式中,所述方法还包括:
若所述待读数据块所属的硬盘损坏、且所述待读数据块不能通过其所属的纠删组中的数据块恢复,则判定所述待读数据块读取失败;
若所述待读数据块哈希校验失败、且所述待读数据块不能通过其所属的纠删组中的数据块恢复,则判定所述待读数据块读取失败。
在可选的实施方式中,所述待读数据块包括哈希值和待读数据,所述方法还包括:
对所述待读数据进行哈希运算,得到所述待读数据的哈希值;
若所述待读数据的哈希值和所述待读数据块中的哈希值不一致,则判定所述待读数据块哈希校验失败。
第二方面,本发明提供一种视频数据访问装置,应用于分布式存储***中的存储节点,所述存储节点包括多块硬盘,所述装置包括:
获取模块,用于获取视频数据;
存储模块,用于若所述视频数据包括整帧I帧数据、且所述视频数据的长度为预设长度,则将所述视频数据存储至所述硬盘,其中,所述整帧I帧数据不跨多硬盘存储。
第三方面,本发明提供一种存储节点,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现前述实施方式中任一项所述的视频数据访问方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项所述的视频数据访问方法。
与现有技术相比,本实施例在存储视频数据时,若视频数据包括整帧I帧数据、且视频数据的长度为预设长度,则将视频数据存储至硬盘中,且整帧I帧数据不会跨硬盘存储,本实施例通过避免跨盘存储I帧数据,以减少硬盘发生故障时,I帧数据被损坏的风险,由于I帧是一个全帧压缩的编码帧,解码时仅用I帧的数据就可重构完整图像,降低了视频数据被破坏的风险,提高了视频数据的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的分布式存储***的示例图。
图2为本发明实施例提供的存储节点的方框示意图。
图3为本发明实施例提供的数据访问方法流程示例图一。
图4为本发明实施例提供的视频数据处理的示例图。
图5为本发明实施例提供的视频数据存储示例图。
图6为本发明实施例提供的数据访问方法流程示例图二。
图7为本发明实施例提供的数据访问装置的方框示意图。
图标:10-存储节点;11-处理器;12-存储器;13-总线;14-通信接口;20-客户端;100-数据访问装置;110-获取模块;120-存储模块;130-读取模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
分布式存储***是大量存储节点通过网络互连,对外作为一个整体提供存储服务,分布式存储***将数据分散存储在多***立的存储节点上。采用可扩展的***结构,利用多台存储服务器分担存储负荷、定位存储信息,不但提高了***的可靠性、可用性和存取效率,还易于扩展。请参照图1,图1为本发明实施例提供的分布式存储***的示例图,图1中,分布式存储***包括多个存储节点10,每一存储节点10包括多块硬盘,客户端20与分布式存储***通信连接,客户端20是存储服务的使用方,分布式存储***是存储服务的提供方,客户端20将需要存储的视频数据发送至分布式存储***,视频数据分布式存储于分布式存储***中的多个存储节点10的硬盘中。为了提高视频数据的可靠性,通常将视频数据进行纠删编码,再将纠删编码后的数据存储至不同存储节点,例如,纠删策略为12:4,视频数据纠删编码后得到12个数据块和4个校验块,这16个块分别存储至不同的存储节点的硬盘上。当16个块中损坏的块不超过4,就能够通过未损坏的块利用纠删策略将损坏的块恢复出来,由此保证了视频数据的可靠性。
存储节点10可以、但不限于是存储服务器、或者能够实现数据存储功能的实体的或者虚拟的计算机、存储阵列等。
客户端20可以、但不限于是服务器、终端、智能手机、平板电脑、笔记本电脑、可穿戴设备等电子设备。
基于图1,本实施例还提供了一种存储节点10的方框示意图,请参照图2,图2为本发明实施例提供的存储节点10的方框示意图,存储节点10可以是图1中的任一存储节点。存储节点10包括处理器11、存储器12、总线13、通信接口14。处理器11、存储器12通过总线13连接。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如本发明实施例中的数据访问装置100,数据访问装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行程序以实现本发明实施例中的数据访问方法。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory)。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图2仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储节点10通过通信接口14和其他存储节点10或者客户端20通信。
由于视频文件并非像其他文件,一旦文件中的数据损坏,整个文件就完全无法使用。视频文件中没有损坏或没有丢失的视频数据也存在正常播放的可能性。此外,视频数据中的I帧是一个全帧压缩的编码帧,解码时仅用I帧的数据就可重构完整图像,因此,I帧是否正常对于视频数据能够正常播放至关重要,本实施例基于视频数据的特点,提供一种视频数据访问方法、装置、存储节点及存储介质,通过提高I帧数据的安全性,进而提高视频数据的安全性。下面将对其进行详细描述。
在图1和图2的基础上,本实施例提供一种视频数据访问方法,该方法可以应用于图1中的任一存储节点10或者图2中的存储节点10,请参照图3,图3为本发明实施例提供的数据访问方法流程示例图,该方法包括以下步骤:
步骤S101,获取视频数据。
在本实施例中,视频数据可以来自于视频文件、也可以来自于视频拍摄设备,获取视频数据的方式可以以流方式从视频文件中读取视频数据,也可以接收来自视频拍摄设备的视频流。
步骤S102,若视频数据包括整帧I帧数据、且视频数据的长度为预设长度,则将视频数据存储硬盘,其中,整帧I帧数据不跨多硬盘存储。
在本实施例中,整帧I帧数据是指包括至少一帧完整的I帧数据。预设长度是预先确定的,根据一次写入单块硬盘的数据的字节数和实际写入的数据长度占用的字节数确定,以一次写入至单块硬盘的数据的字节数为256KB为例,实际写入的数据长度占18B,则预设长度为256KB-18B。对于一个视频文件而言,可以按照预设长度将其分成多个数据块,按照数据块对视频文件进行存储或者读取。
在本实施例中,根据预设长度和整帧I帧数据长度的不同,预设长度的视频数据中可以只包括一帧整帧I帧数据、也可以包括一帧整帧I帧数据和部分非I帧数据、还可以包括多帧整帧I帧数据、或者多帧整帧I帧数据和部分非I帧数据。
需要说明的是,为了简化处理,可以将一次存储至单块硬盘的数据的字节数设置为4MB,以保证单个I帧不会出现超过一次存储至单块硬盘的数据的字节数的情况。另外,根据实际需要,也可以用8B的存储空间存储视频数据的实际长度。例如,一次存储至单块硬盘的数据的字节数设置为4MB,其中8B用于存储视频数据的实际长度,则其中可以存储有效视频数据最大为4MB-8B。
可以理解的是,一个完整的I帧数据只写入一块硬盘上,避免单个完整的I帧数据跨盘存储。
本实施例提供的上述方法,通过避免跨盘存储I帧数据,以减少硬盘发生故障时,I帧数据被损坏的风险,由于I帧是一个全帧压缩的编码帧,解码时仅用I帧的数据就可重构完整图像,降低了视频数据被破坏的风险,提高了视频数据的安全性。
在可选的实施方式中,视频数据可以只包括非I帧数据和部分I帧数据,为了不跨盘存储整帧I帧数据,本实施例还提供了一种处理方式:
首先,若视频数据包括部分I帧数据、且部分I帧数据包括I帧头部数据、且视频数据的长度等于预设长度,则将视频数据分割为部分I帧数据和非I帧视频数据;
在本实施例中,部分I帧数据在完整视频中的位置位于非I帧视频数据之后,为了将非I帧视频数据按照预设长度存储至硬盘,并且将整帧I帧数据以不跨多硬盘的方式存储至硬盘,避免整帧I帧数据跨盘存储,本实施例将非I帧视频数据和部分I帧数据分别处理。
对于非I帧视频数据而言,其处理方式为:对非I帧视频数据进行补充并将补充后的非I帧视频数据存储至硬盘,补充后的非I帧视频数据的长度为预设长度;补充时,可以用0或者其他预设值进行补充,直到补充后的非I帧视频数据的长度为预设长度。
对于部分I帧数据而言,其处理方式为:继续获取视频数据之后的视频数据,并利用新获取的视频数据对部分I帧数据进行补充,使补充后的部分I帧数据包括整帧I帧数据、且补充后的部分I帧数据的长度为预设长度;将补充后的部分I帧数据存储至硬盘。
除此之外,当视频数据包括整帧I帧数据、且视频数据的长度小于预设长度时,此时继续获取视频数据之后的视频数据,直至视频数据和新获取的视频数据的长度之和为预设长度,将该预设长度的视频数据存储至硬盘。
为了更清楚地说明上述视频数对于不同情况的处理过程,请参照图4,图4为本发明实施例提供的视频数据处理的示例图,图4中,第一视频数据包括整帧I帧数据和部分非I帧数据,将第一视频数据写入硬盘A,第二视频数据包括非I帧数据,将第二视频数据写入硬盘B,第三视频数据包括非I帧数据和部分I帧数据,首先将其进行分割,得到非I帧数据和部分I帧数据,对于非I帧数据,用0补充后,得到预设长度的补充后的非I帧数据,将其写入硬盘C,对于部分I帧数据而言,继续获取部分I帧数据之后的视频数据,直至达到预设长度,此时,补充后的部分I帧数据包括整帧I帧数据和一部分非I帧数据,将其写入硬盘D。由此,硬盘A和硬盘D各自包括一个整帧I帧数据,硬盘C包括非I帧数据,硬盘D包括部分非I帧数据和补充数据。
在本实施例中,由于视频数据的编码方式可以有多种,不同编码的视频数据的I帧表示形式是不同的,为了确定视频数据中是否包括I帧数据、包括的I帧数据是整帧I帧数据还是部分I帧数据,本实施例还提供了一种实现方式:
首先,获取视频数据的编码格式。
在本实施例中,编码格式可以、但不限于H.264、H.263、MPEG-1、MPEG-2、MPEG等。
其次,根据编码格式确定视频数据中是否包括I帧数据。
在本实施例中,不同编码格式其帧结构也各不相同,而帧结构中通常会包括表征该帧是I帧、还是B帧、还是P帧的字段,例如,MPEG-4而言,每一帧的开头是固定的:00 00 01b6,在这之后的2bit的值表征了该帧是哪种类型的帧:00:I帧;01:P帧;10:B帧,由此可以判断视频数据中是否包括I帧数据。
最后,若视频数据中包括I帧数据,则根据I帧数据的头部数据判断I帧数据为整帧I帧数据还是部分I帧数据。
在本实施例中,可以将I帧数据的长度存放在帧头部的预设字段中,根据帧开始标志和I帧数据的长度可以判断视频数据包括的I帧数据是整帧I帧数据还是部分I帧数据,除此之外,还可以通过I帧数据的头部数据及预设分隔符确定I帧数据为整帧I帧数据还是部分I帧数据,例如在H264的编码格式中,分隔符为0x0000 0001,若视频数据中包括I帧数据的头部数据和分隔符,则判定该I帧数据为整帧I帧数据,否则判定该I帧数据为部分I帧数据。
在本实施例中,为了进一步提高视频数据的可靠性,为了在读取视频数据时再次确认读取的视频数据是否被损坏,除了存储视频数据,还可以同时存储视频数据的哈希值,其处理方式可以为:对视频数据进行哈希计算,得到视频数据的哈希值;将哈希值和视频数据存储至硬盘。请参照图5,图5为本发明实施例提供的视频数据存储示例图,图5中,一次存储至单块硬盘的数据的字节数为256KB,256KB中前18B为实际长度字段,该字段的值表示256KB中实际的视频数据的长度,若实际的视频数据为200KB,则实际长度字段的值为200KB,其后的256KB-18B存储的视频数据包括实际的视频数据和补充数据,如图中的阴影部分,实际的视频数据和补充数据的长度之和为256KB,在实际长度字段之前,还有一个哈希字段,该哈希字段用于存储将实际的视频数据和补充数据作为一个整体计算出的哈希值。
在本实施例中,分布式存储***中还包括与存储节点存在关联关系的多个关联节点,每一关联节点和存储节点均包括多个数据块,存储节点中每一数据块和所有关联节点中对应的数据块属于同一个纠删组,也就是说,同一个纠删组的数据块中的视频数据是经过纠删编码后写入至对应存储节点中的,对于一个视频文件,若该视频文件中的数据中属于同一个纠删组中的数据的损坏程度超过纠删容忍的范围时,例如,纠删比EC为12:4,即同一个纠删组中的数据块存储至12块硬盘中,有4块硬盘用于保存恢复数据用的校验数据。如果同时损坏5块硬盘,则无法恢复该纠删组的视频数据。针对这种无法恢复视频数据的场景,通常有以下两种处理方式:1)向用户隐藏该视频文件;2)从后台删除该视频文件。这两种处理方式实际上过于简单粗暴,事实上,视频文件中没有损坏或没有丢失的数据块也存在正常播放的可能性,本实施例基于上述视频数据的存储方法,还提供了一种尽可能读取视频数据,最大限度地保证视频文件正常播放的视频数据读取方法,请参照图6,图6为本发明实施例提供的数据访问方法流程示例图二,该方法包括以下步骤:
步骤S201,确定存储节点中多个数据块中的待读数据块。
在本实施例中,待读数据块包括待读视频文件中的视频数据,如果该视频数据是按照本实施例前文描述的数据访问方法存储至存储节点的硬盘,则I帧数据损坏的风险更小,更能最大限度地保证视频文件的正常播放,若该视频数据是按照现有技术存储至存储节点的硬盘,利用本实施例提供的读取待读数据块的访问方法,可以尽量利用未损坏数据,尽量保证视频文件的正常播放,待读视频文件的视频数据可以包括在多个数据块中,对于任一数据块均采用步骤S201~步骤S203的方法读取其中的视频数据。
步骤S202,若待读数据块读取失败,则从关联节点中与待读数据块属于同一个纠删组的数据块中确定代替数据块。
在本实施例中,可以从关联节点中与待读数据块属于同一个纠删组的数据块中随机选择一个数据块作为代替数据块,为了得到更好地视频播放效果,可以采用在视频文件中位置与待读数据块相邻的数据块作为代替数据块,例如,同一个纠删组的数据块包括块a、块b、块c、块d,在视频文件中的位置为:a、b、c、d,若待读数据块为块c,则用块b作为代替数据块。
步骤S203,将代替数据块作为待读数据块。
在本实施例中,将代替数据块中的视频数据作为待读数据块中的视频数据,以最大程度地提供包括损坏视频数据的视频文件,在读代替数据块中的视频数据时,由于视频数据中可能包含了填充的预设值,此种情况下,可以首先读取实际视频数据的长度,再根据实际视频数据的长度从视频数据中读取实际视频数据。
在本实施例中,读取数据块读取失败至少包括以下两种情况:
(1)若待读数据块所属的硬盘损坏、且待读数据块不能通过其所属的纠删组中的数据块恢复,则判定待读数据块读取失败;
(2)若待读数据块哈希校验失败、且待读数据块不能通过其所属的纠删组中的数据块恢复,则判定待读数据块读取失败。
在可选的实施方式中,待读数据块包括哈希值和待读数据,一种判断哈希校验是否失败的方式如下:
对待读数据进行哈希运算,得到待读数据的哈希值;
若待读数据的哈希值和待读数据块中的哈希值不一致,则判定待读数据块哈希校验失败。
需要说明的是,为了使在不同方式请求视频文件的场景中,都可以使用户充分了解受损的视频数据,可以记录所有损坏和丢失数据块的起始位置以及数据偏移量。在以http方式请求视频文件的场景中,可以通过响应消息response的头部字段header将损坏和丢失数据块信息返回给用户;在以sdk编程方式请求视频文件的场景中,可以通过sdk返回损坏和丢失数据块信息;在以命令行方式获取视频文件的场景,可以通过命令行将损坏和丢失数据块信息以文本文件的形式保存到操作***的预设路径下。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种数据访问装置100的实现方式。请参照图7,图7为本发明实施例提供的数据访问装置的方框示意图。需要说明的是,本实施例所提供的数据访问装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
视频数据访问装置100,应用于分布式存储***中的存储节点,视频数据访问装置100包括获取模块110、存储模块120及读取模块130。
获取模块110,用于获取视频数据。
存储模块120,用于若视频数据包括整帧I帧数据、且视频数据的长度为预设长度,则将视频数据存储至硬盘,其中,整帧I帧数据不跨多硬盘存储。
在可选的实施方式中,存储模块120还用于:若视频数据包括部分I帧数据、且部分I帧数据包括I帧头部数据、且视频数据的长度等于预设长度,则将视频数据分割为部分I帧数据和非I帧视频数据;对非I帧视频数据进行补充并将补充后的非I帧视频数据存储至硬盘,补充后的非I帧视频数据的长度为预设长度;继续获取视频数据之后的视频数据,并利用新获取的视频数据对部分I帧数据进行补充,使补充后的部分I帧数据包括整帧I帧数据、且补充后的部分I帧数据的长度为预设长度;将补充后的部分I帧数据存储至硬盘。
在可选的实施方式中,存储模块120还用于:获取视频数据的编码格式;根据编码格式确定视频数据中是否包括I帧数据;若视频数据中包括I帧数据,则根据I帧数据的头部数据判断I帧数据为整帧I帧数据还是部分I帧数据。
在可选的实施方式中,存储模块120在用于将视频数据存储至硬盘时具体用于:对视频数据进行哈希计算,得到视频数据的哈希值;将哈希值和视频数据存储至硬盘。
在可选的实施方式中,分布式存储***中还包括与存储节点存在关联关系的多个关联节点,每一关联节点和存储节点均包括多个数据块,存储节点中每一数据块和所有关联节点中对应的数据块属于同一个纠删组,读取模块130用于:确定存储节点中多个数据块中的待读数据块;若待读数据块读取失败,则从关联节点中与待读数据块属于同一个纠删组的数据块中确定代替数据块;将代替数据块作为待读数据块。
在可选的实施方式中,读取模块130还用于:若待读数据块所属的硬盘损坏、且待读数据块不能通过其所属的纠删组中的数据块恢复,则判定待读数据块读取失败;若待读数据块哈希校验失败、且待读数据块不能通过其所属的纠删组中的数据块恢复,则判定待读数据块读取失败。
在可选的实施方式中,待读数据块包括哈希值和待读数据,读取模块130还用于:对待读数据进行哈希运算,得到待读数据的哈希值;若待读数据的哈希值和待读数据块中的哈希值不一致,则判定待读数据块哈希校验失败。
本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式的视频数据访问方法。
综上所述,本发明实施例提供了一种视频数据访问方法、装置、存储节点及存储介质,应用于分布式存储***中的存储节点,存储节点包括多块硬盘,所述方法包括:获取视频数据;若视频数据包括整帧I帧数据、且视频数据的长度为预设长度,则将视频数据存储至硬盘。与现有技术相比,本实施例通过避免跨盘存储I帧数据,以减少硬盘发生故障时,I帧数据被损坏的风险,由于I帧是一个全帧压缩的编码帧,解码时仅用I帧的数据就可重构完整图像,降低了视频数据被破坏的风险,提高了视频数据的安全性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种视频数据访问方法,其特征在于,应用于分布式存储***中的存储节点,所述存储节点包括多块硬盘,所述方法包括:
获取视频数据;
若所述视频数据包括整帧I帧数据、且所述视频数据的长度为预设长度,则将所述视频数据存储至所述硬盘,其中,所述整帧I帧数据不跨多硬盘存储;
若所述视频数据包括部分I帧数据、且所述部分I帧数据包括I帧头部数据、且所述视频数据的长度等于所述预设长度,则将所述视频数据分割为部分I帧数据和非I帧视频数据;
对所述非I帧视频数据进行补充并将补充后的非I帧视频数据存储至所述硬盘,所述补充后的所述非I帧视频数据的长度为所述预设长度;
继续获取所述视频数据之后的视频数据,并利用新获取的视频数据对所述部分I帧数据进行补充,使补充后的部分I帧数据包括整帧I帧数据、且补充后的部分I帧数据的长度为所述预设长度;
将补充后的部分I帧数据存储至所述硬盘。
2.如权利要求1所述的视频数据访问方法,其特征在于,所述方法还包括:
获取所述视频数据的编码格式;
根据所述编码格式确定所述视频数据中是否包括I帧数据;
若所述视频数据中包括I帧数据,则根据所述I帧数据的头部数据判断所述I帧数据为整帧I帧数据还是部分I帧数据。
3.如权利要求1所述的视频数据访问方法,其特征在于,所述将所述视频数据存储至硬盘的步骤包括:
对所述视频数据进行哈希计算,得到所述视频数据的哈希值;
将所述哈希值和所述视频数据存储至硬盘。
4.如权利要求1所述的视频数据访问方法,其特征在于,所述分布式存储***中还包括与所述存储节点存在关联关系的多个关联节点,每一所述关联节点和所述存储节点均包括多个数据块,所述存储节点中每一所述数据块和所有所述关联节点中对应的数据块属于同一个纠删组,所述方法还包括:
确定所述存储节点中多个数据块中的待读数据块;
若所述待读数据块读取失败,则从所述关联节点中与所述待读数据块属于同一个纠删组的数据块中确定代替数据块;
将所述代替数据块作为所述待读数据块。
5.如权利要求4所述的视频数据访问方法,其特征在于,所述方法还包括:
若所述待读数据块所属的硬盘损坏、且所述待读数据块不能通过其所属的纠删组中的数据块恢复,则判定所述待读数据块读取失败;
若所述待读数据块哈希校验失败、且所述待读数据块不能通过其所属的纠删组中的数据块恢复,则判定所述待读数据块读取失败。
6.如权利要求5所述的视频数据访问方法,其特征在于,所述待读数据块包括哈希值和待读数据,所述方法还包括:
对所述待读数据进行哈希运算,得到所述待读数据的哈希值;
若所述待读数据的哈希值和所述待读数据块中的哈希值不一致,则判定所述待读数据块哈希校验失败。
7.一种视频数据访问装置,其特征在于,应用于分布式存储***中的存储节点,所述存储节点包括多块硬盘,所述装置包括:
获取模块,用于获取视频数据;
存储模块,用于若所述视频数据包括整帧I帧数据、且所述视频数据的长度为预设长度,则将所述视频数据存储所述硬盘,其中,所述整帧I帧数据不跨多硬盘存储;
所述存储模块还用于:若所述视频数据包括部分I帧数据、且所述部分I帧数据包括I帧头部数据、且所述视频数据的长度等于所述预设长度,则将所述视频数据分割为部分I帧数据和非I帧视频数据;对所述非I帧视频数据进行补充并将补充后的非I帧视频数据存储至所述硬盘,所述补充后的所述非I帧视频数据的长度为所述预设长度;继续获取所述视频数据之后的视频数据,并利用新获取的视频数据对所述部分I帧数据进行补充,使补充后的部分I帧数据包括整帧I帧数据、且补充后的部分I帧数据的长度为所述预设长度;将补充后的部分I帧数据存储至所述硬盘。
8.一种存储节点,其特征在于,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现权利要求1-6中任一项所述的视频数据访问方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的视频数据访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310224521.4A CN115955576B (zh) | 2023-03-10 | 2023-03-10 | 视频数据访问方法、装置、存储节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310224521.4A CN115955576B (zh) | 2023-03-10 | 2023-03-10 | 视频数据访问方法、装置、存储节点及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115955576A CN115955576A (zh) | 2023-04-11 |
CN115955576B true CN115955576B (zh) | 2023-06-09 |
Family
ID=85906899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310224521.4A Active CN115955576B (zh) | 2023-03-10 | 2023-03-10 | 视频数据访问方法、装置、存储节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115955576B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005076630A1 (ja) * | 2004-02-03 | 2005-08-18 | Matsushita Electric Industrial Co., Ltd. | 復号化装置、符号化装置、補間フレーム生成システム、集積回路装置、復号化プログラムおよび符号化プログラム |
JP2016129304A (ja) * | 2015-01-09 | 2016-07-14 | 株式会社東芝 | 映像伝送システム |
EP3334165A1 (en) * | 2015-08-04 | 2018-06-13 | Hangzhou Hikvision Digital Technology Co., Ltd. | Video stream storage method, reading method and device |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8130841B2 (en) * | 2005-12-29 | 2012-03-06 | Harris Corporation | Method and apparatus for compression of a video signal |
WO2007091587A1 (ja) * | 2006-02-08 | 2007-08-16 | Nec Corporation | 代表画像又は代表画像群の表示システム、その方法、およびそのプログラム |
US8254445B2 (en) * | 2009-08-06 | 2012-08-28 | Georgia Tech Research Corporation | Video transmission using video quality metrics |
CN105847722B (zh) * | 2015-01-16 | 2019-04-12 | 杭州海康威视数字技术股份有限公司 | 一种视频存储方法和装置、读取方法和装置以及存取*** |
CN105828017B (zh) * | 2015-10-20 | 2019-09-03 | 广东亿迅科技有限公司 | 一种面向视频会议的云存储接入***及方法 |
CN105611307B (zh) * | 2015-12-17 | 2018-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于无锁缓存队列的多路h264视频数据缓存方法及*** |
US10009575B1 (en) * | 2016-07-06 | 2018-06-26 | Viakoo, Inc. | Storage method for loss-tolerant data stream recording |
CN106791908B (zh) * | 2016-11-25 | 2019-11-01 | 上海熙菱信息技术有限公司 | 一种支持云平台采用双缓冲的实时视频流存储方法 |
CN112486918B (zh) * | 2019-09-11 | 2022-09-06 | 浙江宇视科技有限公司 | 文件处理方法、装置、设备及介质 |
CN115543190A (zh) * | 2022-09-16 | 2022-12-30 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 视频数据的智能分布式存储方法及*** |
-
2023
- 2023-03-10 CN CN202310224521.4A patent/CN115955576B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005076630A1 (ja) * | 2004-02-03 | 2005-08-18 | Matsushita Electric Industrial Co., Ltd. | 復号化装置、符号化装置、補間フレーム生成システム、集積回路装置、復号化プログラムおよび符号化プログラム |
JP2016129304A (ja) * | 2015-01-09 | 2016-07-14 | 株式会社東芝 | 映像伝送システム |
EP3334165A1 (en) * | 2015-08-04 | 2018-06-13 | Hangzhou Hikvision Digital Technology Co., Ltd. | Video stream storage method, reading method and device |
Non-Patent Citations (2)
Title |
---|
实时流媒体***中喷泉码的度分布设计;蒋维等;小型微型计算机***(第08期);全文 * |
嵌入式数字视频监控***的数据存储策略;陈晓辉,周山,戚文芽;微计算机信息(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115955576A (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10136163B2 (en) | Method and apparatus for repairing video file | |
JP6443173B2 (ja) | 映像データ処理装置、映像データ処理システム、映像データ処理方法、及び、映像データ処理プログラム | |
CN106131550B (zh) | 播放多媒体文件的方法及装置 | |
US9952924B2 (en) | Memory device, server device, and memory control method | |
US20180343460A1 (en) | Decoder resource allocating method and associated apparatus | |
JP6686541B2 (ja) | 情報処理システム | |
US20130259441A1 (en) | Recording apparatus and recording system | |
EP3334165B1 (en) | Video stream storing and video stream reading method and apparatus therefor | |
CN104735463A (zh) | 流媒体传输方法及*** | |
CN110225399B (zh) | 流媒体处理方法、装置、计算机设备及存储介质 | |
EP1017181A2 (en) | Encoding device and decoding device | |
CN115955576B (zh) | 视频数据访问方法、装置、存储节点及存储介质 | |
US8681860B2 (en) | Moving picture compression apparatus and method of controlling operation of same | |
WO2021254375A1 (zh) | 视频分块方法、传输方法、服务器、适配器和存储介质 | |
CN109597566B (zh) | 一种数据读取、存储方法及装置 | |
US8897582B2 (en) | Image decoding apparatus, image coding apparatus, image decoding circuit, and image decoding method | |
CN112672154A (zh) | 直播视频播放方法、装置、服务器和计算机可读存储介质 | |
CN106534748B (zh) | 媒体文件的录制播放方法及终端 | |
US11599570B2 (en) | Device and method to render multimedia data stream tamper-proof based on block chain recording | |
CN109982067B (zh) | 视频处理方法及装置 | |
JP5389078B2 (ja) | 収録再生装置及び収録再生方法 | |
US11197028B2 (en) | Recovery during video encoding | |
CN111356003B (zh) | 一种数据写入的方法、***及终端设备 | |
JP7304096B2 (ja) | 動画配信装置 | |
CN113068064B (zh) | 传输流媒体文件处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |