CN109086457A - 一种分布式视频帧随机读取的元数据服务***及工作方法 - Google Patents
一种分布式视频帧随机读取的元数据服务***及工作方法 Download PDFInfo
- Publication number
- CN109086457A CN109086457A CN201811029412.2A CN201811029412A CN109086457A CN 109086457 A CN109086457 A CN 109086457A CN 201811029412 A CN201811029412 A CN 201811029412A CN 109086457 A CN109086457 A CN 109086457A
- Authority
- CN
- China
- Prior art keywords
- metadata
- frame
- module
- video
- distributed
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000007781 pre-processing Methods 0.000 claims abstract description 27
- 238000009826 distribution Methods 0.000 claims abstract description 21
- 238000013507 mapping Methods 0.000 claims abstract description 15
- 238000009432 framing Methods 0.000 claims description 12
- 230000000875 corresponding effect Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 8
- 230000001965 increasing effect Effects 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 7
- 238000003491 array Methods 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 5
- 239000000203 mixture Substances 0.000 claims description 5
- 230000006835 compression Effects 0.000 claims description 4
- 238000007906 compression Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 235000013399 edible fruits Nutrition 0.000 claims description 2
- 238000012952 Resampling Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000009412 basement excavation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种分布式视频帧随机读取的元数据服务***及工作方法,该***由六大模块组成:任务分发模块、任务处理模块、地址映射模块、元数据IO与预处理模块、元数据存储模块和元数据重分布模块,其中任务处理模块包括元数据应用模块与元数据生成模块。该***为了在分布式视频存储环境下高效地实现对视频帧的随机定位,以避免单个节点时间开销和节点之间的网络开销,提出以I帧字典为核心的帧的随机读取策略。
Description
技术领域
本发明涉及分布式视频大数据处理技术领域,具体涉及一种分布式视频帧随机读取的元数据服务***及工作方法。
背景技术
随着视频“大数据”时代的到来,如何存储、挖掘和利用视频潜在的信息价值便成为需求,视频数据的挖掘大多涉及到对视频内容的索引和定位,具体说就是对视频帧的随机读取。分布式存储***解决了视频大数据的存储问题,同时也导致无法直接利用传统方法实现对视频帧的随机读取,因为它需要频繁的遍历视频数据,这会给每个节点的处理带来大量的时间开销,同时带来节点间的数据传输开销。
根据目前主流的基于运动补偿方法的解码标准,视频编码建立在GOP闭合结构之上,一个GOP结构有I、B、P三种帧,其中I帧是完整的图像可以独立解码,B帧是相对于I帧和P帧的增量,P帧是I帧的增量,所以要完整编码一个B帧或P帧都需要I帧的参考。
为了提高帧的读取效率同时保证视频文件在逻辑上的完整性,基于以上闭合GOP结构特征本发明考虑为每个GOP做索引,索引字段即是GOP的起始帧(I帧)号和该帧对应的时间偏移量,其中时间偏移量可以利用解码工具xuggler转化为特定存储***平台上的文件偏移量。利用一个视频的GOP索引集合(后称I帧字典)来实现帧的随机读取。为了方便***的存储和读取管理,帧率和I帧字典以及与视频信息都被封装在视频元数据中并建立相应的元数据服务***。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种分布式视频帧随机读取的元数据服务***及工作方法。
根据公开的实施例,本发明的第一方面公开了一种分布式视频帧随机读取的元数据服务***,所述的元数据服务***包括:任务分发模块、任务处理模块、地址映射模块、元数据IO与预处理模块、元数据存储模块和元数据重分布模块,其中任务处理模块包括元数据应用模块与元数据生成模块,所述的元数据存储模块包括至少三个存储单元,所述的元数据重分布模块和所述的元数据存储模块中的存储单元均与zookeeper组件进行连接,zookeeper组件通过心跳实现对存储单元的工作状况进行监控,如果出现存储单元移除或增加都会触发zookeeper组件并通知所述的元数据重分布模块做出相应动作;
所述的任务分发模块利用任务队列实现对任务的缓冲和分发,与所述的任务处理模块相连;
所述的元数据应用模块利用元数据和I帧字典实现对视频帧的随机读取;
所述的元数据生成模块通过读取视频头信息和视频数据生成具有一定结构的视频元数据;
所述的元数据IO与预处理模块分别与所述的任务处理模块和元数据存储模块相连,当写入元数据时,该元数据IO与预处理模块将元数据生成模块生成的元数据进行压缩并与视频地址形成键值对存入元数据存储模块;
所述的元数据存储模块利用分布式内存框架实现,提高元数据的可靠性和读写效率,与所述的元数据重分布模块相连;
所述的地址映射模块采用一致性哈希思想分布式存储元数据,将元数据近似等概率的分布在不同的存储单元中,实现存储单元的负载均衡,与所述的元数据IO与预处理模块相连;
所述的元数据重分布模块利用一致性哈希的局部重分布方法增强元数据存储模块的可扩展性。
进一步地,所述的元数据是由帧率和I帧字典组成,其中I帧字典是视频所有I帧索引结构的集合,其中I帧索引结构是帧号与该关键帧对应的时间偏移量组成的键值对。
进一步地,所述的任务分发模块利用任务队列实现对任务的缓冲,并根据用户请求的类型分发给任务处理模块进行处理,其中,所述的用户请求为帧的随机读取请求和视频上传请求(生成元数据请求);另外为了避免由于断电等故障造成的任务丢失,本***对任务的完成情况进行跟踪记录并保存在任务日志中,重启时可根据日志恢复任务的执行。
进一步地,所述的元数据应用模块包括帧定位单元和解码单元,其中,所述的帧定位单元的工作过程如下:从元数据中获得I帧字典,然后遍历I帧字典找到帧号小于等于给定帧且离给定帧最近的I帧,依据视频帧的GOP结构,利用这个I帧即可解码和分析给定帧及其后面各个帧,如果给定的是时间,此时就需要先得到元数据头信息中的帧率,再根据帧率和时间得到所要的帧号;
所述的解码单元的工作过程如下:利用视频解码库xuggler将帧定位单元得到的I帧定位到最终的文件位置实现给定帧的读取并作解码,最后将得到的静态图片或视频返回给客户端。
进一步地,所述的元数据服务***接受并处理客户端发来的请求,并返回处理结果;同时与分布式存储***进行单向的数据交互(读视频),所述的分布式存储***与客户端进行双向的数据交互以满足客户端上传视频和查看视频的请求。
进一步地,所述的元数据生成模块中视频元数据的构建过程如下:从分布式存储***中读取视频头信息和视频流数据以获得帧率等视频信息并生成I帧字典,其中,生成I帧字典过程为先顺序遍历整个视频帧并对每个帧进行计数,同时提取每个I帧得到其对应的时间偏移量并与其计数值也即帧号组成键值对,得到的键值对集合便是I帧字典;如果分布式存储***中没有该视频,则需要先将视频存储在分布式存储***再进行构建;
所述的元数据生成模块中删除元数据则先用一致性哈希算法找到元数据所在的存储单元再直接对元数据进行删除。
进一步地,所述的元数据存储模块使用分布式内存数据库,并且每个存储单元采用redis主从结构单元,包括一个主节点和两个从节点,每个节点以键值对的形式存储数据,键值对中视频地址为键,压缩后的元数据字节数组为值,主从节点之间通过复制技术提高元数据的可靠性。
进一步地,所述的地址映射模块将每个存储单元按照一定的哈希算法分布到0~2^32的环形区域,为了增大数据分布的等可能性,本发明将每个存储单元抽象成200个随机分布的节点并于存储单元中的200个数据库一一对应,当有元数据请求时用同样的哈希算法将视频地址映射到0~2^32的环形区域上某一点并按顺时针方向找到第一个节点对应的存储单元的数据库号也即该元数据的存储地址。
进一步地,所述的元数据重分布模块利用一致性哈希的局部重分布思想增强了元数据存储模块的可扩展性:随着视频数量和大小的增加,元数据的数量和大小也会增加。这会增大元数据存储的负担,所以要求该模块必须具有很好的扩展性,较之传统的哈希算法一致性哈希在处理扩展性上不会重新分布所有节点对应存储单元中的数据而是调整增加节点的周围节点的对应存储节点的数据。根据一致性哈希的分布原则,它会对增加节点按顺时针方向的第一个节点中的数据进行重新分布,所以只需要更新部分数据库中的数据即可而无需更新整个节点上的数据。
据公开的实施例,本发明的第二方面公开了一种分布式视频帧随机读取的元数据服务***的工作方法,包括帧的随机读取和视频上传请求,所述的帧的随机读取包括以下步骤:
S1、元数据服务***接收到请求后缓冲、调度、分发给任务处理模块;
S2、任务处理模块启动元数据应用模块并传入视频地址和待读取帧的帧号或时刻;
S3、元数据应用模块收到请求启动帧定位单元;
S4、帧定位单元向元数据IO和预处理模块发出读取元数据请求,并向该元数据IO和预处理模块传入视频地址;
S5、元数据IO和预处理模块请求地址映射模块将视频地址转化为元数据地址;
S6、根据元数据地址向元数据存储模块读取以指定视频地址为键的键值对数据,并将其值解压成元数据的格式传递给帧定位单元;
S7、帧定位单元根据得到的元数据读取I帧字典和帧率,并找到目标I帧的时间偏移量,传入时间偏移量并启动解码单元;
S8、解码单元读取视频数据配合传入的时间偏移量进行解码,并将解码的结果返回给客户端;
所述的视频上传请求包括以下步骤:
T1、客户端先将本地视频写入分布式存储***中,视频写入成功后向元数据服务***发送生成元数据请求;
T2、***接收到请求后缓冲、调度、分发给任务处理模块;
T3、任务处理模块启动元数据生成模块并传入视频地址;
T4、元数据生成模块从分布式存储***中读取视频数据,提取帧率并生成I帧字典,包装成元数据的格式,并向元数据IO和预处理模块发出写入元数据请求,并向该模块传入视频地址和包装后的元数据;
T5、元数据IO和预处理模块请求地址映射模块将视频地址转化为元数据地址;
T6、元数据IO和预处理模块将元数据压缩成字节数组,并以指定的视频地址为键,字节数组为值组成键值对写入元数据地址指定的存储单元中。
本发明相对于现有技术具有如下的优点及效果:
1、本发明提出了创建I帧字典的技术方案,借用I帧字典和其他有用的元数据的辅助可以在分布式视频存储环境下极大地提高定位读取视频帧的效率,真正实现随机定位而不需要顺序的遍历之前的视频流(传统做法)。
2、另外本发明只对每个视频I帧字典(而非所有帧的索引)和部分有用的视频头信息进行了额外的存储,所以节省了存储空间。并且在I帧字典的生成中,遍历只需要对I帧做记录而不需要做额外的编码,这会让视频预处理的效率提高明显。
3、本发明利用分布式内存框架存储元数据提高了元数据的读写效率。
4、本发明中元数据存储服务使用一致性哈希保证了分布式内存框架的负载均衡与扩展性,进而提高了***的整体性能。
附图说明
图1是本发明中视频帧随机读取的元数据服务***的架构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如附图1所示,本实施例公开的分布式视频帧随机读取的元数据服务***包括:任务分发模块、任务处理模块、地址映射模块、元数据IO与预处理模块、元数据存储模块和元数据重分布模块,其中任务处理模块包括元数据应用模块与元数据生成模块。整个***外部与分布式存储***(本***中即为HDFS)和客户端进行交互。所述的元数据存储模块包括至少三个存储单元,同时将元数据重分布模块和元数据存储模块中的存储单元均与zookeeper组件进行连接,zookeeper组件通过心跳实现对存储单元的工作状况进行监控,如果出现存储单元移除或增加都会触发zookeeper组件并通知元数据重分布模块做出相应动作。
所述的任务分发模块利用任务队列实现对任务的缓冲,并根据用户请求的类型分发给任务处理模块进行处理,常见的用户请求为帧的随机读取请求和视频上传请求(生成元数据请求)等。另外为了避免由于断电等故障造成的任务丢失,本***对任务的完成情况进行跟踪记录并保存在任务日志中,日志格式为“日期编号任务类型完成情况”,重启时可根据日志恢复任务的执行。
所述的元数据应用模块即是利用元数据(尤其是I帧字典)实现对视频帧的随机读取,该模块包括帧定位单元和解码单元,其中帧定位单元完成工作如下:从元数据中获得I帧字典,然后遍历I帧字典找到帧号小于等于给定帧且离给定帧最近的I帧(因为给定的帧不一定是I帧),依据视频帧的GOP结构,利用这个I帧即可解码和分析给定帧及其后面各个帧。如果给定的是时间,此时就需要先得到元数据头信息中的帧率,再根据帧率和时间得到所要的帧号。解码单元完成工作如下:利用视频解码库xuggler(可以将时间偏移量转化为文件偏移量)将帧定位单元得到的I帧定位到最终的文件位置实现给定帧的读取并作解码,最后将得到的静态图片或视频返回给客户端。上述帧定位单元和解码单元的工作方式是本发明首次运用提出,它尽可能减少编码和存储带来的时间和空间的开销。
所述的元数据服务***接受并处理客户端发来的请求,并返回处理结果;同时与分布式存储***进行单向的数据交互(读视频),所述的分布式存储***与客户端进行双向的数据交互(以满足客户端上传和查看视频的请求)。
所述的元数据生成模块通过读取视频头信息和视频数据生成具有一定结构的视频元数据。其中视频元数据的构建过程如下:首先从分布式存储***中读取视频头信息和视频流数据以获得帧率等视频信息并生成I帧字典。生成I帧字典过程表述如下:先顺序遍历整个视频帧并对每个帧进行计数(作为该帧的帧号)同时提取每个I帧得到其对应的时间偏移量(利用解码库xuggler读取)并与其帧号组成键值对,得到的键值对集合便是I帧字典。当然如果分布式存储***中没有该视频,则需要先将视频存储在分布式存储***再进行构建,而删除元数据则先用一致性哈希算法找到元数据所在的存储单元再直接对元数据进行删除。
所述的元数据存储模块使用分布式内存框架(具体实现是分布式内存数据库---redis),主要是为了提高元数据的读写效率。另外每个存储单元是一个redis主从结构单元(一个主节点,两个从节点。每个节点以键值对的形式存储数据,键值对中视频地址为键,压缩后的元数据字节数组为值),主从节点之间通过复制技术提高了元数据的可靠性。
所述的元数据IO与预处理模块则是任务处理模块和元数据存储模块交互的中间件。以写入元数据为例,该模块将元数据生成模块生成的元数据进行压缩并与视频地址形成键值对存入元数据存储模块。
所述的地址映射模块采用一致性哈希思想来分布式存储元数据,这种去中心化的分布思想避免了复杂的决策逻辑(比如按cpu的占用率还是可用内存的大小)和额外维护索引信息,将数据近似等概率的分布在不同的单元,实现了存储单元的负载均衡。具体的实现是将每个存储单元按照一定的哈希算法分布到0~2^32的环形区域(即一个整形数的大小),如果存储单元过少(比如本***中只有3个)可能并不能实现访问数据的均匀分布,所以本发明为增大数据分布的等可能性,将每个存储单元抽象成200个随机分布的节点并于存储单元中的200个数据库一一对应,当有元数据请求时用同样的哈希算法将视频地址映射到0~2^32的环形区域上某一点并按顺时针方向找到第一个节点对应的存储单元的数据库号也即该元数据的存储地址。
所述的元数据重分布模块利用一致性哈希的局部重分布思想增强了元数据存储模块的可扩展性:随着视频数量和大小的增加,元数据的数量和大小也会增加。这会增大元数据存储的负担,所以要求该模块必须具有很好的扩展性,较之传统的哈希算法一致性哈希在处理扩展性上不会重新分布所有节点对应存储单元中的数据而是调整增加节点的周围节点的对应存储节点的数据。根据一致性哈希的分布原则,它会对增加节点按顺时针方向的第一个节点中的数据进行重新分布,所以只需要更新部分数据库中的数据即可而无需更新整个节点上的数据。
实施例二
本实施例基于上述实施例公开的分布式视频帧随机读取的元数据服务***,公开了一种分布式视频帧随机读取的元数据服务***的工作方法,包括帧的随机读取和视频上传请求,下面对帧的随机读取和视频上传请求的处理流程做详细介绍:
其中,帧的随机读取包括以下步骤:
S1、***接收到请求后缓冲、调度、分发给任务处理模块;
S2、任务处理模块启动元数据应用模块并传入视频地址和待读取帧的帧号或时刻;
S3、元数据应用模块收到请求启动帧定位单元;
S4、帧定位单元向元数据IO和预处理模块发出读取元数据请求,并向该元数据IO和预处理模块传入视频地址;
S5、元数据IO和预处理模块请求地址映射模块将视频地址转化为元数据地址;
S6、根据元数据地址向元数据存储模块读取以指定视频地址为键的键值对数据,并将其值解压成元数据的格式传递给帧定位单元;
S7、帧定位单元根据得到的元数据读取I帧字典和帧率,并找到目标I帧的时间偏移量,传入时间偏移量并启动解码单元;
S8、解码单元读取视频数据配合传入的时间偏移量进行解码,并将解码的结果返回给客户端;
所述的视频上传请求包括以下步骤:
T1、客户端先将本地视频写入分布式存储***中,视频写入成功后向元数据服务***发送生成元数据请求;
T2、***接收到请求后缓冲、调度、分发给任务处理模块;
T3、任务处理模块启动元数据生成模块并传入视频地址;
T4、元数据生成模块从分布式存储***中读取视频数据,提取帧率并生成I帧字典,包装成元数据的格式,并向元数据IO和预处理模块发出写入元数据请求,并向该模块传入视频地址和包装后的元数据;
T5、元数据IO和预处理模块请求地址映射模块将视频地址转化为元数据地址;
T6、元数据IO和预处理模块将元数据压缩成字节数组,并以指定的视频地址为键,字节数组为值组成键值对写入元数据地址指定的存储单元中。
综上所述,本发明提出了创建I帧字典的思想取代传统的读取方法提高了视频帧的随机读取效率,同时元数据服务(至存储I帧的索引信息)的提出以及在此基础上建立的元数据服务***使该应用更好的适应于分布式环境,此外本***利用一致性哈希思想分布元数据的存储模型也保证了***的负载均衡与高扩展性。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包括在本发明的保护范围之内。
Claims (10)
1.一种分布式视频帧随机读取的元数据服务***,其特征在于,所述的元数据服务***包括:任务分发模块、任务处理模块、地址映射模块、元数据IO与预处理模块、元数据存储模块和元数据重分布模块,其中任务处理模块包括元数据应用模块与元数据生成模块,所述的元数据存储模块包括三个存储单元,所述的元数据重分布模块和所述的元数据存储模块中的存储单元均与zookeeper组件进行连接,zookeeper组件通过心跳实现对存储单元的工作状况进行监控,如果出现存储单元移除或增加都会触发zookeeper组件并通知所述的元数据重分布模块做出相应动作;
所述的任务分发模块利用任务队列实现对任务的缓冲和分发,与所述的任务处理模块相连;
所述的元数据应用模块利用元数据和I帧字典实现对视频帧的随机读取;
所述的元数据生成模块通过读取视频头信息和视频数据生成具有一定结构的视频元数据;
所述的元数据IO与预处理模块分别与所述的任务处理模块和元数据存储模块相连,当写入元数据时,该元数据IO与预处理模块将元数据生成模块生成的元数据进行压缩并与视频地址形成键值对存入元数据存储模块;
所述的元数据存储模块利用分布式内存框架实现,提高元数据的可靠性和读写效率,与所述的元数据重分布模块相连;
所述的地址映射模块采用一致性哈希思想分布式存储元数据,将元数据近似等概率的分布在不同的存储单元中,实现存储单元的负载均衡,与所述的元数据IO与预处理模块相连;
所述的元数据重分布模块利用一致性哈希的局部重分布方法增强元数据存储模块的可扩展性。
2.根据权利要求1所述的一种分布式视频帧随机读取的元数据服务***,其特征在于,所述的元数据是由帧率和I帧字典组成,其中I帧字典是视频所有I帧索引结构的集合,其中I帧索引结构是帧号与该关键帧对应的时间偏移量组成的键值对。
3.根据权利要求1所述的一种分布式视频帧随机读取的元数据服务***,其特征在于,所述的任务分发模块利用任务队列实现对任务的缓冲,并根据用户请求的类型分发给任务处理模块进行处理,其中,所述的用户请求为帧的随机读取请求和视频上传请求。
4.根据权利要求1所述的一种分布式视频帧随机读取的元数据服务***,其特征在于,所述的元数据应用模块包括帧定位单元和解码单元,其中,所述的帧定位单元的工作过程如下:从元数据中获得I帧字典,然后遍历I帧字典找到帧号小于等于给定帧且离给定帧最近的I帧,依据视频帧的GOP结构,利用这个I帧即可解码和分析给定帧及其后面各个帧,如果给定的是时间,此时就需要先得到元数据头信息中的帧率,再根据帧率和时间得到所要的帧号;
所述的解码单元的工作过程如下:利用视频解码库xuggler将帧定位单元得到的I帧定位到最终的文件位置实现给定帧的读取并作解码,最后将得到的静态图片或视频返回给客户端。
5.根据权利要求1所述的一种分布式视频帧随机读取的元数据服务***,其特征在于,所述的元数据服务***接受并处理客户端发来的请求,并返回处理结果;同时与分布式存储***进行单向的数据交互,所述的分布式存储***与客户端进行双向的数据交互以满足客户端上传视频和查看视频的需求。
6.根据权利要求4所述的一种分布式视频帧随机读取的元数据服务***,其特征在于,所述的元数据生成模块中视频元数据的构建过程如下:从分布式存储***中读取视频头信息和视频流数据以获得帧率等视频信息并生成I帧字典,其中,生成I帧字典过程为先顺序遍历整个视频帧并对每个帧进行计数,同时提取每个I帧得到其对应的时间偏移量并与其计数值也即帧号组成键值对,得到的键值对集合便是I帧字典;如果分布式存储***中没有该视频,则需要先将视频存储在分布式存储***再进行构建;
所述的元数据生成模块中删除元数据则先用一致性哈希算法找到元数据所在的存储单元再直接对元数据进行删除。
7.根据权利要求1所述的一种分布式视频帧随机读取的元数据服务***,其特征在于,所述的元数据存储模块使用分布式内存数据库,并且每个存储单元采用redis主从结构单元,包括一个主节点和两个从节点,每个节点以键值对的形式存储数据,键值对中视频地址为键,压缩后的元数据字节数组为值,主从节点之间通过复制技术提高元数据的可靠性。
8.根据权利要求1所述的一种分布式视频帧随机读取的元数据服务***,其特征在于,所述的地址映射模块将每个存储单元按照一定的哈希算法分布到0~2^32的环形区域,并且每个存储单元抽象成200个随机分布的节点并于存储单元中的200个数据库一一对应,当有元数据请求时用同样的哈希算法将视频地址映射到0~2^32的环形区域上某一点并按顺时针方向找到第一个节点对应的存储单元的数据库号也即该元数据的存储地址。
9.根据权利要求1所述的一种分布式视频帧随机读取的元数据服务***,其特征在于,所述的元数据重分布模块根据一致性哈希的分布原则,对增加节点按顺时针方向的第一个节点中的数据进行重新分布。
10.一种分布式视频帧随机读取的元数据服务***的工作方法,包括帧的随机读取和视频上传请求,其特征在于,所述的帧的随机读取包括以下步骤:
S1、元数据服务***接收到请求后缓冲、调度、分发给任务处理模块;
S2、任务处理模块启动元数据应用模块并传入视频地址和待读取帧的帧号或时刻;
S3、元数据应用模块收到请求启动帧定位单元;
S4、帧定位单元向元数据IO和预处理模块发出读取元数据请求,并向该元数据IO和预处理模块传入视频地址;
S5、元数据IO和预处理模块请求地址映射模块将视频地址转化为元数据地址;
S6、根据元数据地址向元数据存储模块读取以指定视频地址为键的键值对数据,并将其值解压成元数据的格式传递给帧定位单元;
S7、帧定位单元根据得到的元数据读取I帧字典和帧率,并找到目标I帧的时间偏移量,传入时间偏移量并启动解码单元;
S8、解码单元读取视频数据配合传入的时间偏移量进行解码,并将解码的结果返回给客户端;
所述的视频上传请求包括以下步骤:
T1、客户端先将本地视频写入分布式存储***中,视频写入成功后向元数据服务***发送生成元数据请求;
T2、***接收到请求后缓冲、调度、分发给任务处理模块;
T3、任务处理模块启动元数据生成模块并传入视频地址;
T4、元数据生成模块从分布式存储***中读取视频数据,提取帧率并生成I帧字典,包装成元数据的格式,并向元数据IO和预处理模块发出写入元数据请求,并向该模块传入视频地址和包装后的元数据;
T5、元数据IO和预处理模块请求地址映射模块将视频地址转化为元数据地址;
T6、元数据IO和预处理模块将元数据压缩成字节数组,并以指定的视频地址为键,字节数组为值组成键值对写入元数据地址指定的存储单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811029412.2A CN109086457B (zh) | 2018-09-05 | 2018-09-05 | 一种分布式视频帧随机读取的元数据服务***及工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811029412.2A CN109086457B (zh) | 2018-09-05 | 2018-09-05 | 一种分布式视频帧随机读取的元数据服务***及工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086457A true CN109086457A (zh) | 2018-12-25 |
CN109086457B CN109086457B (zh) | 2022-03-29 |
Family
ID=64840897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811029412.2A Active CN109086457B (zh) | 2018-09-05 | 2018-09-05 | 一种分布式视频帧随机读取的元数据服务***及工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086457B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109982020A (zh) * | 2019-02-26 | 2019-07-05 | 南京邮电大学 | 一种视频存储及检索方法 |
CN114827663A (zh) * | 2022-04-12 | 2022-07-29 | 咪咕文化科技有限公司 | 分布式直播插帧***及方法 |
CN116490847A (zh) * | 2020-11-05 | 2023-07-25 | 阿里巴巴集团控股有限公司 | 支持分布式文件***中的垃圾收集的虚拟数据复制 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6877134B1 (en) * | 1997-08-14 | 2005-04-05 | Virage, Inc. | Integrated data and real-time metadata capture system and method |
US20110246471A1 (en) * | 2010-04-06 | 2011-10-06 | Selim Shlomo Rakib | Retrieving video annotation metadata using a p2p network |
CN102663005A (zh) * | 2012-03-19 | 2012-09-12 | 杭州海康威视***技术有限公司 | 基于云计算的海量视频文件存储***、分析方法及其*** |
CN103310000A (zh) * | 2013-06-25 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 元数据管理方法 |
CN104216957A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种视频元数据的查询***及查询方法 |
US20170019720A1 (en) * | 2015-07-17 | 2017-01-19 | Ever Curious Corporation | Systems and methods for making video discoverable |
WO2018076952A1 (zh) * | 2016-10-24 | 2018-05-03 | 杭州海康威视数字技术股份有限公司 | 一种视频文件的存储、定位播放方法及装置 |
-
2018
- 2018-09-05 CN CN201811029412.2A patent/CN109086457B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6877134B1 (en) * | 1997-08-14 | 2005-04-05 | Virage, Inc. | Integrated data and real-time metadata capture system and method |
US20110246471A1 (en) * | 2010-04-06 | 2011-10-06 | Selim Shlomo Rakib | Retrieving video annotation metadata using a p2p network |
CN102663005A (zh) * | 2012-03-19 | 2012-09-12 | 杭州海康威视***技术有限公司 | 基于云计算的海量视频文件存储***、分析方法及其*** |
CN103310000A (zh) * | 2013-06-25 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 元数据管理方法 |
CN104216957A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种视频元数据的查询***及查询方法 |
US20170019720A1 (en) * | 2015-07-17 | 2017-01-19 | Ever Curious Corporation | Systems and methods for making video discoverable |
WO2018076952A1 (zh) * | 2016-10-24 | 2018-05-03 | 杭州海康威视数字技术股份有限公司 | 一种视频文件的存储、定位播放方法及装置 |
Non-Patent Citations (1)
Title |
---|
袁天宇: "基于HDFS的视频帧分布式读取模型的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109982020A (zh) * | 2019-02-26 | 2019-07-05 | 南京邮电大学 | 一种视频存储及检索方法 |
CN116490847A (zh) * | 2020-11-05 | 2023-07-25 | 阿里巴巴集团控股有限公司 | 支持分布式文件***中的垃圾收集的虚拟数据复制 |
CN114827663A (zh) * | 2022-04-12 | 2022-07-29 | 咪咕文化科技有限公司 | 分布式直播插帧***及方法 |
CN114827663B (zh) * | 2022-04-12 | 2023-11-21 | 咪咕文化科技有限公司 | 分布式直播插帧***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109086457B (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7725593B2 (en) | Scalable video coding (SVC) file format | |
CN109547786B (zh) | 视频编码、以及视频解码的方法、装置 | |
CN109086457A (zh) | 一种分布式视频帧随机读取的元数据服务***及工作方法 | |
CN103297807A (zh) | 一种基于hadoop平台的提高视频转码效率的方法 | |
US10491937B2 (en) | Information processing system | |
CN104067618A (zh) | 用于解码器的缓冲器管理的图像编码方法和装置、以及图像解码方法和装置 | |
CN103944981A (zh) | 一种基于纠删码技术改进的云存储***及实现方法 | |
US11089283B2 (en) | Generating time slice video | |
CN102833580A (zh) | 基于infiniband的高清视频应用***及方法 | |
US8516002B2 (en) | Deflate file data optimization | |
WO2022121648A1 (zh) | 点云数据编码方法、解码方法、设备、介质及程序产品 | |
CN105847825A (zh) | 视频编码码流的编码、索引存储和访问方法及相应装置 | |
US7689047B2 (en) | Reduced buffer size for JPEG encoding | |
CN107346270B (zh) | 基于实时计算的基数估计的方法和*** | |
CN103428494A (zh) | 基于云计算平台的图像序列编码及恢复方法 | |
CN103152613A (zh) | 基于视频图像组分割的分布式转码任务调度***及方法 | |
US11876989B2 (en) | Methods and systems for facilitating multimedia data encoding using storage buffers | |
WO2023082834A1 (zh) | 视频压缩方法、装置、计算机设备和存储介质 | |
US20160366403A1 (en) | Adaptive Motion JPEG Encoding Method and System | |
CN108182198A (zh) | 存储先进控制器运行数据的控制装置和读取方法 | |
CN107197296A (zh) | 一种基于COStream的HEVC并行编码方法和*** | |
CN104811646A (zh) | 基于连续存储模型的多视频流数据并发调制及缓冲的存储方法 | |
WO2024104014A1 (zh) | 视频的压缩方法、解压缩方法、装置、计算机设备和存储介质 | |
CN111954016A (zh) | 一种直播视频流高效精准录制方案 | |
CN115866245A (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 |