视频流的存储方法、读取方法及装置与流程

文档序号:12068779阅读:1660来源:国知局
视频流的存储方法、读取方法及装置与流程

本发明涉及数据处理领域,具体而言,涉及一种视频流的存储方法、读取方法及装置。



背景技术:

随着生活水平的提高,越来越多的视频涌入人们的生活。随着海量视频的产生,关于如何提高视频的存储效率成为一大难题。众所周知,视频的格式种类多种多样,在众多种类的格式中,对于实时视频(视频流)的存储效率的提高尤为重要。

然而,现有技术的在存储视频流时,往往是按照视频流发来的顺序依次逐帧进行存储,这导致对数据量较大的视频流存储较为缓慢,特别是在面临大量视频流均需存储时,还可能导致系统运行缓慢甚至瘫痪。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种视频流的存储方法、读取方法及装置,以至少解决由于现有技术在存储视频流时是按照视频流发来的顺序依次逐帧进行存储造成的视频流存储效率较低的技术问题。

根据本发明实施例的一个方面,提供了一种视频流的存储方法,应用于视频流的存储装置,包括:将获取到的视频流分离为I帧数据以及与所述I帧数据对应的非I帧数据,其中,所述非I帧数据包含所述视频流中除所述I帧数据以外的数据;获取由数据存储服务器为所述非I帧数据分配的存储地址,并将所述非I帧数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中;将所述存储地址添加至所述I帧数据中;将包含有所述存储地址的所述I帧数据存储至所述数据存储服务器。

进一步地,在将包含有所述存储地址的所述I帧数据存储至所述数据存储服务器之前,所述方法还包括:计算包含有所述存储地址的所述I帧数据的校验值,其中,所述校验值用于在包含有所述存储地址的所述I帧数据丢失的情况下,恢复包含有所述存储地址的所述I帧数据;其中,所述将包含有所述存储地址的所述I帧数据存储 至所述数据存储服务器,包括:将包含有所述存储地址的所述I帧数据以及所述校验值存储至所述数据存储服务器。

进一步地,所述计算包含有所述存储地址的所述I帧数据的校验值,包括:依据两种存储的奇偶校验码的磁盘结构RAID-6算法对包含有所述存储地址的所述I帧数据进行计算,得到包含有所述存储地址的所述I帧数据的所述校验值。

进一步地,所述获取由数据存储服务器为所述非I帧数据分配的存储地址,并将所述非I帧数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中,包括:发送存储地址请求至元数据服务器,其中,由所述元数据服务器向所述数据存储服务器请求为所述非I帧数据分配所述存储地址;接收所述元数据服务器响应于所述存储地址请求所返回的所述存储地址;依据所述存储地址,将所述非I帧数据写入所述数据存储服务器中所述存储地址所指向的存储空间;将已写入所述数据存储服务器的所述非I帧数据的数据量上报至所述元数据服务器。

进一步地,在获取由数据存储服务器为所述非I帧数据分配的存储地址,并将所述非I帧数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中之前,所述方法还包括:依据分布式奇偶校验的独立磁盘结构RAID-5算法对所述非I帧数据进行计算,得到所述非I帧数据的异或校验数据,所述异或校验数据用于在所述非I帧数据丢失的情况下,恢复所述非I帧数据;其中,所述获取由数据存储服务器为所述非I帧数据分配的存储地址,并将所述非I帧数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中,包括:获取由所述数据存储服务器为所述非I帧数据以及所述异或校验数据分配的所述存储地址;将所述非I帧数据以及所述异或校验数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中。

根据本发明实施例的另一方面,还提供了一种视频流的读取方法,应用于视频流的读取装置,包括:获取视频流的I帧数据的存储地址;依据所述I帧数据的存储地址,从数据存储服务器中读取所述I帧数据;从所述I帧数据中解析出所述视频流的非I帧数据的存储地址;依据所述非I帧数据的存储地址,从所述数据存储服务器中读取所述非I帧数据,其中,所述非I帧数据包含所述视频流中除所述I帧数据以外的数据;将所述I帧数据及所述非I帧数据聚合为所述视频流。

进一步地,在依据所述I帧数据的存储地址,从数据存储服务器中读取所述I帧数据之后,从所述I帧数据中解析出所述视频流的非I帧数据的存储地址之前,所述方法还包括:从所述数据存储服务器中读取所述I帧数据的校验值,所述校验值为预先依据两种存储的奇偶校验码的磁盘结构RAID-6算法对所述I帧数据进行计算得到的;对所述I帧数据进行校验,其中,在校验出所述I帧数据丢失的情况下,依据所述校 验值恢复所述I帧数据。

进一步地,在依据所述非I帧数据的存储地址,从所述数据存储服务器中读取所述非I帧数据之后,将所述I帧数据及所述非I帧数据聚合为所述视频流之前,所述方法还包括:从所述数据存储服务器中读取所述非I帧数据的异或校验数据,其中,所述异或校验数据为预先依据分布式奇偶校验的独立磁盘结构RAID-5算法对所述非I帧数据进行计算得到的;对所述非I帧数据进行校验,其中,在校验出所述非I帧数据丢失的情况下,依据所述异或校验数据恢复所述非I帧数据。

根据本发明实施例的另一方面,还提供了一种视频流的存储装置,包括:数据分离单元,用于将获取到的视频流分离为I帧数据以及与所述I帧数据对应的非I帧数据,其中,所述非I帧数据包含所述视频流中除所述I帧数据以外的数据;数据下发单元,用于获取由数据存储服务器为所述非I帧数据分配的存储地址,并将所述非I帧数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中;数据添加单元,用于将所述存储地址添加至所述I帧数据中;所述数据下发单元,还用于将包含有所述存储地址的所述I帧数据存储至所述数据存储服务器。

进一步地,视频流的存储装置还包括:第一计算单元,用于计算包含有所述存储地址的所述I帧数据的校验值,其中,所述校验值用于在包含有所述存储地址的所述I帧数据丢失的情况下,恢复包含有所述存储地址的所述I帧数据;其中,所述数据下发单元用于执行以下步骤将包含有所述存储地址的所述I帧数据存储至所述数据存储服务器:将包含有所述存储地址的所述I帧数据以及所述校验值存储至所述数据存储服务器。

进一步地,所述第一计算单元用于执行以下步骤计算包含有所述存储地址的所述I帧数据的校验值:依据两种存储的奇偶校验码的磁盘结构RAID-6算法对包含有所述存储地址的所述I帧数据进行计算,得到包含有所述存储地址的所述I帧数据的所述校验值。

进一步地,所述数据下发单元用于执行以下步骤获取由数据存储服务器为所述非I帧数据分配的存储地址,并将所述非I帧数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中:发送存储地址请求至元数据服务器,其中,由所述元数据服务器向所述数据存储服务器请求为所述非I帧数据分配所述存储地址;接收所述元数据服务器响应于所述存储地址请求所返回的所述存储地址;依据所述存储地址,将所述非I帧数据写入所述数据存储服务器中所述存储地址所指向的存储空间;将已写入所述数据存储服务器的所述非I帧数据的数据量上报至所述元数据服务器。

进一步地,视频流的存储装置还包括:第二计算单元,用于依据分布式奇偶校验的独立磁盘结构RAID-5算法对所述非I帧数据进行计算,得到所述非I帧数据的异或校验数据,所述异或校验数据用于在所述非I帧数据丢失的情况下,恢复所述非I帧数据;其中,所述数据下发单元用于执行以下步骤获取由数据存储服务器为所述非I帧数据分配的存储地址,并将所述非I帧数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中:获取由所述数据存储服务器为所述非I帧数据以及所述异或校验数据分配的所述存储地址;将所述非I帧数据以及所述异或校验数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中。

根据本发明实施例的另一方面,还提供了一种视频流的读取装置,包括:获取单元,用于获取视频流的I帧数据的存储地址;第一读取单元,用于依据所述I帧数据的存储地址,从数据存储服务器中读取所述I帧数据;解析单元,用于从所述I帧数据中解析出所述视频流的非I帧数据的存储地址;第二读取单元,用于依据所述非I帧数据的存储地址,从所述数据存储服务器中读取所述非I帧数据,其中,所述非I帧数据包含所述视频流中除所述I帧数据以外的数据;聚合单元,用于将所述I帧数据及所述非I帧数据聚合为所述视频流。

进一步地,所述第一读取单元,还用于从所述数据存储服务器中读取所述I帧数据的校验值,所述校验值为预先依据两种存储的奇偶校验码的磁盘结构RAID-6算法对所述I帧数据进行计算得到的;所述视频流的读取装置还包括:第一校验单元,用于对所述I帧数据进行校验,其中,在校验出所述I帧数据丢失的情况下,依据所述校验值恢复所述I帧数据。

进一步地,所述第二读取单元,还用于从所述数据存储服务器中读取所述非I帧数据的异或校验数据,其中,所述异或校验数据为预先依据分布式奇偶校验的独立磁盘结构RAID-5算法对所述非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是根据本发明实施例的又一种可选的视频流的存储装置的结构示意图;

图8是根据本发明实施例的一种可选的视频流的读取装置的结构示意图;

图9是根据本发明实施例的另一种可选的视频流的读取装置的结构示意图;

图10是根据本发明实施例的又一种可选的视频流的读取装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这 样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种视频流的存储方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的视频流的存储方法,该方法为视频流的存储装置侧的方法,如图1所示,该方法包括如下步骤:

步骤S102,将获取到的视频流分离为I帧数据以及与I帧数据对应的非I帧数据,其中,非I帧数据包含视频流中除I帧数据以外的数据。

本申请上述步骤S102中,视频流可以是由监控摄像头实时拍摄传输来的数据。如图2所示,本发明实施例中视频流中包含I帧数据和非I帧数据,其中,I帧数据(I frame)又称为内部画面,I帧通常是每个GOP(Group of Picture,画面组)的第一个帧,作为随机访问的参考点,可以当成图像。I帧数据也称关键帧,它是帧间压缩编码的重要帧,解码时仅用I帧数据就可重构完整图像。非I帧数据包括P帧数据和B帧数据,P帧数据和B帧数据也可称为参考帧,由前面的I帧预测而来,解码时必须基于I帧数据才可重构图像。其中,视频流的存储装置通过检查帧首部确定帧类型。

仍如图2所示,本发明实施例的视频流的存储方法,可以将视频流分离为I帧数据以及非I帧数据,在视频流中包含多个I帧数据时,可以将多个I帧数据聚合(也称按顺序存放)为条带,即如图2中的DI1至DI6,其中,DI1至DI6与I帧数据一一对应,即DI1对应第一个I帧数据,DI2对应第二个I帧数据等等,在视频流中包含多个非I帧数据时,可以将多个非I帧数据聚合为条带,即D1至D6,其中,D1至D6与非I帧数据一一对应,即D1对应第一个非I帧数据,D2对应第二个非I帧数据等等。

例如,图2中第一个I帧数据的大小为15K,第二个I帧数据的大小为9K,第三个I帧数据的大小是27K,第四个I帧数据的大小为30K,第五个I帧数据的大小为21K,第六个I帧数据的大小为11K,那么在将第一个I帧数据到第六个I帧数据聚合 为条带的过程中,首先确定第一个I帧数据到第六个I帧数据中最大的I帧数据是第四个I帧数据(大小为30K),其次以30K(或大于30K)为基准,为每个I帧数据预留大小为30K的空间(即DI1至DI6,此时的DI1至DI6中并没有数据),最后,将第一个I帧数据放置在DI1中,以此类推,将各个I帧数据按照顺序放置在对应的空间中。同样地,将多个非I帧数据聚合为条带的方法与将多个I帧数据聚合为条带的方法类似。

步骤S104,获取由数据存储服务器为非I帧数据分配的存储地址,并将非I帧数据存储至存储地址所指向的数据存储服务器的存储空间中。

本申请上述步骤S104中,由于I帧数据和非I帧数据具有时间相关性(即一个I帧数据与一组非I帧数据构成一个GOP),读取时需要重新组合,因此为了后续读取视频流时,能够找到I帧数据对应的非I帧数据并且无需向元数据服务器请求,减少信令开销,本发明实施例的视频流的存储方法,在将视频流分离为I帧数据以及非I帧数据之后,首先获取由数据存储服务器为非I帧数据分配的存储地址,进而将在I帧数据中添加该存储地址。

需要说明的是,只要获取到非I帧数据的存储地址后,就可以执行后续步骤S106及步骤S108,同时并行处理将非I帧数据存储至存储地址所指向的数据存储服务器的存储空间中,加快数据的存储速度。

一种可选的实施方式,上述步骤S104,获取由数据存储服务器为非I帧数据分配的存储地址,并将非I帧数据存储至存储地址所指向的数据存储服务器的存储空间中,可以包括:

步骤S10,发送存储地址请求至元数据服务器,其中,由元数据服务器向数据存储服务器请求为非I帧数据分配存储地址。

本申请上述步骤S10中,在针对云存储的系统架构中,视频流的存储装置在申请存储空间时需要经过元数据服务器,由元数据服务器向数据服务请求为非I帧数据分配存储地址。

如图3所示,为本实施方式的系统架构图。其中,视频流的存储装置首先将包含有存储地址请求的命令流发送至元数据服务器,其中,存储地址请求中应包含需存储的非I帧数据的大小,进而元数据服务器再将包含有存储地址请求的命令流发送至数据存储服务器,数据存储服务器为非I帧数据分配存储地址,并将包含有该存储地址的命令流发送给元数据服务器,进而元数据服务器将包含有该存储地址的命令流转发给视频流的存储装置,视频流的存储装置在获取到存储地址之后,可以依据存储地址 将包含非I帧数据的数据流写入数据存储服务器,后续的I帧数据的存储流程与之类似,此处不再赘述。

步骤S12,接收元数据服务器响应于存储地址请求所返回的存储地址。

本申请上述步骤S12中,在数据存储服务器为非I帧数据分配存储地址后,视频流的存储装置会接收到元数据服务器响应于存储地址请求所返回的非I帧数据的存储地址。

步骤S14,依据存储地址,将非I帧数据写入数据存储服务器中存储地址所指向的存储空间。

本申请上述步骤S14中,视频流的存储装置在获取到存储地址之后,可以将非I帧数据直接写入数据存储服务器中。

步骤S16,将已写入数据存储服务器的非I帧数据的数据量上报至元数据服务器。

本申请上述步骤S16中,在将非I帧数据写入数据存储服务器之后,视频流的存储装置需要将已写入数据存储服务器的非I帧数据的数据量上报至元数据服务器,以便元数据服务器记录最终写入的非I帧数据的大小。

步骤S106,将存储地址添加至I帧数据中。

本申请上述步骤S106中,视频流的存储装置在获取到非I帧数据的存储地址之后,可以将该存储地址添加至与该非I帧数据对应的I帧数据中,即添加后的I帧数据包括真实数据以及非I帧数据的存储地址。

步骤S108,将包含有存储地址的I帧数据存储至数据存储服务器。

本申请上述步骤S108中,基于上述步骤S106,视频流的存储装置将包含有存储地址的I帧数据存储至数据存储服务器。其中,将包含有存储地址的I帧数据存储至数据存储服务器的方法与上述存储非I帧数据的方法类似,即发送存储地址请求至元数据服务器,其中,由元数据服务器向数据存储服务器请求为包含有存储地址的I帧数据分配存储地址,存储地址请求中应包含需存储的包含有存储地址的I帧数据的大小;接收元数据服务器响应于存储地址请求所返回的存储地址;依据存储地址,将包含有存储地址的I帧数据写入数据存储服务器中存储地址所指向的存储空间;将已写入数据存储服务器的包含有存储地址的I帧数据的数据量上报至元数据服务器。

通过上述步骤,可以将视频流分离为I帧数据和非I帧数据,在分离之后,为了建立I帧数据和非I帧数据的对应关系,将获取到的非I帧数据的存储地址添加至I 帧数据中,由于建立了I帧数据和非I帧数据的对应关系,因此无需按照现有技术只能先存I帧数据再存非I帧数据的方法,可以并行存储I帧数据和非I帧数据,达到了快速存储视频流的目的,从而实现了视频流存储效率较高的技术效果,进而解决了由于现有技术在存储视频流时是按照视频流发来的顺序依次逐帧进行存储造成的视频流存储效率较低的技术问题。

可选地,在将包含有存储地址的I帧数据存储至数据存储服务器之前,本实施例的视频流的存储方法,还可以包括:

步骤S20,计算包含有存储地址的I帧数据的校验值,其中,校验值用于在包含有存储地址的I帧数据丢失的情况下,恢复包含有存储地址的I帧数据。

本申请上述步骤S20中,为了基于不同的数据类型,提供不同的数据保护模式,增强数据的安全性,视频流的存储装置可以通过计算包含有存储地址的I帧数据的校验值,实现对包含有存储地址的I帧数据的保护。其中,校验值用于在包含有存储地址的I帧数据丢失的情况下,恢复包含有存储地址的I帧数据。

可选地,计算包含有存储地址的I帧数据的校验值,包括:依据两种存储的奇偶校验码的磁盘结构RAID-6算法对包含有存储地址的I帧数据进行计算,得到包含有存储地址的I帧数据的校验值。

其中,将包含有存储地址的I帧数据存储至数据存储服务器,包括:将包含有存储地址的I帧数据以及校验值存储至数据存储服务器。

仍如图2所示,在I帧数据的数量为多个的情况下,视频流的存储装置可以计算出多个校验值,校验值的个数应小于等于I帧数据的个数,如图2中的PI1和PI2,当DI1至DI6中哪个I帧数据丢失时,可以通过校验值恢复出丢失的I帧数据,需要指出的是,校验值可恢复的数据个数小于等于校验值的个数,即若计算出两个校验值,则最多可支持恢复两个丢失的I帧数据。为了增加I帧数据的安全性,也可计算多个校验值,均应在本发明实施例的保护范围之内。

需要补充的是,为了提高I帧数据的安全性,本实施例的视频流的存储装置还可以采用纠删码重构或副本的方式对I帧数据进行保护。

可选地,在获取由数据存储服务器为非I帧数据分配的存储地址,并将非I帧数据存储至存储地址所指向的数据存储服务器的存储空间中之前,本实施例的视频流的存储方法,还可以包括:

步骤S30,依据分布式奇偶校验的独立磁盘结构RAID-5算法对非I帧数据进行计 算,得到非I帧数据的异或校验数据,异或校验数据用于在非I帧数据丢失的情况下,恢复非I帧数据。

本申请上述步骤S30中,为了基于不同的数据类型,提供不同的数据保护模式,增强数据的安全性,视频流的存储装置还可以依据分布式奇偶校验的独立磁盘结构RAID-5算法为非I帧数据进行保护。

其中,获取由数据存储服务器为非I帧数据分配的存储地址,并将非I帧数据存储至存储地址所指向的数据存储服务器的存储空间中,包括:获取由数据存储服务器为非I帧数据以及异或校验数据分配的存储地址;将非I帧数据以及异或校验数据存储至存储地址所指向的数据存储服务器的存储空间中。

仍如图2所示,在非I帧数据的数量为多个的情况下,视频流的存储装置可以计算出多个异或校验数据,异或校验数据的个数应小于等于非I帧数据的个数,如图2中的P1,当D1至D6中哪个非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帧数据,达到了快速存储视频流的目的,从而实现了视频流存储效率较高的技术效果,进而解决了由于现有技术在存储视频流时是按照视频流发来的顺序依次逐帧进行存储造成的视频流存储效率较低的技术问题。

实施例2

根据本发明实施例,提供了一种视频流的读取方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行, 并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图4是根据本发明实施例的视频流的读取方法,该方法为视频流的读取装置侧的方法,如图4所示,该方法包括如下步骤:

步骤S402,获取视频流的I帧数据的存储地址。

本申请上述步骤S402中,依据上述的视频流的存储方法,本实施例对其对应的视频流的读取方法进行描述。在读取视频流的过程中,只需找到I帧数据,即可以通过I帧数据中包含的非I帧数据的存储地址找到非I帧数据,无需多次向元数据服务器请求,减少信令开销,提高读取速率。在读取视频流的过程中,视频流的读取装置首先可以向元数据服务器请求需读取的I帧数据的存储地址。

步骤S404,依据I帧数据的存储地址,从数据存储服务器中读取I帧数据。

本申请上述步骤S404中,视频流的读取装置根据获取到的I帧数据的存储地址,从数据存储服务器中读取I帧数据。其中,I帧数据包含有与其对应的非I帧数据的存储地址。

步骤S406,从I帧数据中解析出视频流的非I帧数据的存储地址。

本申请上述步骤S406中,视频流的读取装置从读取到的I帧数据中解析出视频流的非I帧数据的存储地址。

可选地,为了基于不同的数据类型,提供不同的数据保护模式,增强数据的安全性,在依据I帧数据的存储地址,从数据存储服务器中读取I帧数据之后,从I帧数据中解析出视频流的非I帧数据的存储地址之前,方法还包括:从数据存储服务器中读取I帧数据的校验值,校验值为预先依据两种存储的奇偶校验码的磁盘结构RAID-6算法对I帧数据进行计算得到的;对I帧数据进行校验,其中,在校验出I帧数据丢失的情况下,依据校验值恢复I帧数据。

步骤S408,依据非I帧数据的存储地址,从数据存储服务器中读取非I帧数据,其中,非I帧数据包含视频流中除I帧数据以外的数据。

本申请上述步骤S408中,视频流的读取装置依据解析出的非I帧数据的存储地址,从数据存储服务器中读取非I帧数据,其中,非I帧数据包含视频流中除I帧数据以外的数据。

步骤S410,将I帧数据及非I帧数据聚合为视频流。

本申请上述步骤S410中,视频流的读取装置将I帧数据及非I帧数据聚合为视频流,此处聚合可以理解为按顺序摆放。

可选地,为了基于不同的数据类型,提供不同的数据保护模式,增强数据的安全性,在依据非I帧数据的存储地址,从数据存储服务器中读取非I帧数据之后,将I帧数据及非I帧数据聚合为视频流之前,方法还包括:从数据存储服务器中读取非I帧数据的异或校验数据,其中,异或校验数据为预先依据分布式奇偶校验的独立磁盘结构RAID-5算法对非I帧数据进行计算得到的;对非I帧数据进行校验,其中,在校验出非I帧数据丢失的情况下,依据异或校验数据恢复非I帧数据。

由上可知,本申请上述实施例所提供的方案,通过将视频流分离为I帧数据和非I帧数据,并在获取到非I帧数据的存储地址后将该存储地址添加至I帧数据中,进而可以只需找到I帧数据即可找到非I帧数据,达到了无需多次请求元数据服务器目的,从而实现了减少信令开销,提高读取速率的技术效果。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

实施例3

根据本发明实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申请上述实施例所提供的装置可以在计算机终端上运行。

图5是根据本申请实施例的视频流的存储装置的结构示意图。

如图5所示,该视频流的存储装置可以包括数据分离单元502、数据下发单元504 以及数据添加单元506。

其中,数据分离单元502,用于将获取到的视频流分离为I帧数据以及与所述I帧数据对应的非I帧数据,其中,所述非I帧数据包含所述视频流中除所述I帧数据以外的数据;数据下发单元504,用于获取由数据存储服务器为所述非I帧数据分配的存储地址,并将所述非I帧数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中;数据添加单元506,用于将所述存储地址添加至所述I帧数据中;所述数据下发单元502,还用于将包含有所述存储地址的所述I帧数据存储至所述数据存储服务器。

由上可知,本申请上述实施例三所提供的方案,通过将视频流分离为I帧数据和非I帧数据,在分离之后,为了建立I帧数据和非I帧数据的对应关系,将获取到的非I帧数据的存储地址添加至I帧数据中,由于建立了I帧数据和非I帧数据的对应关系,因此无需按照现有技术只能先存I帧数据再存非I帧数据的方法,可以并行存储I帧数据和非I帧数据,达到了快速存储视频流的目的,从而实现了视频流存储效率较高的技术效果,进而解决了由于现有技术在存储视频流时是按照视频流发来的顺序依次逐帧进行存储造成的视频流存储效率较低的技术问题。

此处需要说明的是,上述数据分离单元502、数据下发单元504以及数据添加单元506对应于实施例一中的步骤S102至步骤S108,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中,可以通过软件实现,也可以通过硬件实现。

可选地,如图6所示,视频流的存储装置还包括:第一计算单元602。

第一计算单元602,用于计算包含有所述存储地址的所述I帧数据的校验值,其中,所述校验值用于在包含有所述存储地址的所述I帧数据丢失的情况下,恢复包含有所述存储地址的所述I帧数据;其中,所述数据下发单元504用于执行以下步骤将包含有所述存储地址的所述I帧数据存储至所述数据存储服务器:将包含有所述存储地址的所述I帧数据以及所述校验值存储至所述数据存储服务器。

可选地,所述第一计算单元602用于执行以下步骤计算包含有所述存储地址的所述I帧数据的校验值:依据两种存储的奇偶校验码的磁盘结构RAID-6算法对包含有所述存储地址的所述I帧数据进行计算,得到包含有所述存储地址的所述I帧数据的所述校验值。

可选地,所述数据下发单元504用于执行以下步骤获取由数据存储服务器为所述 非I帧数据分配的存储地址,并将所述非I帧数据存储至所述存储地址所指向的所述数据存储服务器的存储空间中:发送存储地址请求至元数据服务器,其中,由所述元数据服务器向所述数据存储服务器请求为所述非I帧数据分配所述存储地址;接收所述元数据服务器响应于所述存储地址请求所返回的所述存储地址;依据所述存储地址,将所述非I帧数据写入所述数据存储服务器中所述存储地址所指向的存储空间;将已写入所述数据存储服务器的所述非I帧数据的数据量上报至所述元数据服务器。

可选地,如图7所示,视频流的存储装置还包括:第二计算单元702。

第二计算单元702,用于依据分布式奇偶校验的独立磁盘结构RAID-5算法对所述非I帧数据进行计算,得到所述非I帧数据的异或校验数据,所述异或校验数据用于在所述非I帧数据丢失的情况下,恢复所述非I帧数据;其中,所述数据下发单元504用于执行以下步骤获取由数据存储服务器为所述非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帧数据,达到了快速存储视频流的目的,从而实现了视频流存储效率较高的技术效果,进而解决了由于现有技术在存储视频流时是按照视频流发来的顺序依次逐帧进行存储造成的视频流存储效率较低的技术问题。

实施例4

根据本发明实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申请上述实施例所提供的装置可以在计算机终端上运行。

图8是根据本申请实施例的视频流的读取装置的结构示意图。

如图8所示,该视频流的读取装置可以包括获取单元802、第一读取单元804、解析单元806、第二读取单元808以及聚合单元810。

其中,获取单元802,用于获取视频流的I帧数据的存储地址;第一读取单元804,用于依据所述I帧数据的存储地址,从数据存储服务器中读取所述I帧数据;解析单元806,用于从所述I帧数据中解析出所述视频流的非I帧数据的存储地址;第二读取单元808,用于依据所述非I帧数据的存储地址,从所述数据存储服务器中读取所述非I帧数据,其中,所述非I帧数据包含所述视频流中除所述I帧数据以外的数据;聚合单元810,用于将所述I帧数据及所述非I帧数据聚合为所述视频流。

由上可知,本申请上述实施例三所提供的方案,通过将视频流分离为I帧数据和非I帧数据,并在获取到非I帧数据的存储地址后将该存储地址添加至I帧数据中,进而可以只需找到I帧数据即可找到非I帧数据,达到了无需多次请求元数据服务器目的,从而实现了减少信令开销,提高读取速率的技术效果。

此处需要说明的是,上述获取单元802、第一读取单元804、解析单元806、第二读取单元808以及聚合单元810对应于实施例二中的步骤S402至步骤S410,五个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中,可以通过软件实现,也可以通过硬件实现。

可选地,所述第一读取单元804,还用于从所述数据存储服务器中读取所述I帧数据的校验值,所述校验值为预先依据两种存储的奇偶校验码的磁盘结构RAID-6算法对所述I帧数据进行计算得到的。

如图9所示,所述装置还包括:第一校验单元902,用于对所述I帧数据进行校验,其中,在校验出所述I帧数据丢失的情况下,依据所述校验值恢复所述I帧数据。

可选地,所述第二读取单元808,还用于从所述数据存储服务器中读取所述非I帧数据的异或校验数据,其中,所述异或校验数据为预先依据分布式奇偶校验的独立磁盘结构RAID-5算法对所述非I帧数据进行计算得到的。

如图10所示,所述装置还包括:第二校验单元1002,用于对所述非I帧数据进行校验,其中,在校验出所述非I帧数据丢失的情况下,依据所述异或校验数据恢复所述非I帧数据。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有 详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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