System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种用于实现海量视频指纹快速识别的键值数据库构建方法,属于计算机网络安全。
技术介绍
1、随着互联网技术的进步和宽带速度的提升,视频成为最受欢迎的媒体形式之一。随着视频应用的爆炸性增长,对视频流量的监管变得尤为重要。对视频流量的监管不仅可以保护版权、避免不适内容的传播,还有助于优化网络资源的使用和维护网络安全。而在当前的视频传输中,加密技术的普及给视频流量监管带来了挑战,迫切需要发展新技术以对加密传输视频进行识别。
2、现有的方法主要是将视频本身的唯一特征作为指纹数据,构建成一个大型的视频指纹库,需要识别视频时,通过将从加密流量中提取的视频特征与视频指纹库中的指纹进行匹配来识别视频。
3、视频指纹库中的指纹通常是视频片段的长度序列。分析表明,目前的加密视频识别技术主要利用流媒体的http自适应流(http adaptive streaming,has)技术来提取视频特征。首先将视频内容切分成多个片段,然后通过可变比特率(variable bit rate,vbr)技术对视频内容进行编码,并根据流媒体播放器的实际网络带宽传输不同质量的视频片段。基于has进行传输的每个视频片段的长度序列与视频内容有关,视频片段的长度序列构成了视频的特征,可以据此实现对特定视频的内容识别。将这些视频片段长度作为视频指纹,可以用来构建视频指纹库。
4、但是,为了防止侧信道攻击,许多视频网站会在视频分段的基础上将音视频片段进行组合传输,每个组合包括的音视频片段数量从单个片段到十几个片段不等,由于加密传输时
5、考虑到现网视频数量庞大,以及组合传输造成的视频指纹数据量显著增加,构建海量视频指纹库的数据库设计至关重要。视频指纹库的结构是实现视频指纹快速识别的基础。当今的数据库构建技术主要包括关系型数据库和非关系型数据库两大类。关系型数据库,如mysql和oracle,通过表格和结构化查询语言(sql)提供高效的数据存储和查询功能,擅长精确和结构化数据的查询。非关系型数据库,如nosql数据库,包括键值存储、文档存储、列族存储等,提供了更灵活的数据模型和扩展性,适合处理大规模数据集和复杂的查询。在视频分段组合传输导致数据量巨大的情况下,键值数据库在实现海量视频指纹快速识别方面具有明显优势。键值数据库是当今数据库技术的一个重要分支,以键值对的形式存储数据,每个键对应一个唯一的值。键值数据库以其简洁的数据模型、高效的读写操作和良好的可扩展性而突出,这些特点使键值数据库特别适合处理海量的、需要快速访问和检索的非结构化数据。
6、本专利技术针对海量视频场景中的视频快速识别需求,基于键值数据库的原理设计了一种用于实现海量视频指纹快速识别的键值数据库构建方法。在已有的专利技术专利“一种面向http/2流量多路复用特征的加密视频识别方法”、“一种基于http/3传输特性的加密视频识别方法”、“一种基于视频指纹的分辨率自适应加密视频快速识别方法”中,聚焦点均为实现加密视频匹配识别的过程,但是并没有给出在海量指纹库中包含上亿指纹的情况下,如何进行快速匹配的方法。因此,本专利技术提出的用于实现海量视频指纹快速识别的键值数据库构建方法具有创新性,可为在真实网络中进行加密视频的实时识别提供基础。
技术实现思路
1、本专利技术公开了一种用于实现海量视频指纹快速识别的键值数据库构建方法,该方法首先获取不同分辨率下加密视频的音视频明文分段长度序列作为明文指纹,接着合并同视频的指纹条目为待处理指纹集,然后根据每个视频的音视频分段总数划分到多个子库,并为每个子库创建键值数组,接着计算每个视频所有可能的相邻分段指纹组合相加结果,作为组合指纹以链表形式添加到子库键值数组对应键值的元素后,最后将构建好的键值数据库以文件形式保存。在用于视频指纹视频识别时,首先将键值数据库文件读入内存,然后基于需要匹配的视频分段指纹长度进行多线程检索,获取子库中键值与分段指纹长度在允许误差范围内的对应链表,从而得到可用于后续实现视频准确识别使用的视频指纹结果集。本专利技术具有通用性,能够实现海量视频指纹的高速读取和识别。
2、为了实现本专利技术的目的,本方案具体技术步骤如下:一种用于实现海量视频指纹快速识别的键值数据库构建方法,所述方法包括以下步骤:
3、步骤(1)下载并提取不同分辨率下加密视频的音视频明文分段信息,分别记录分段长度序列作为明文指纹,打上内容标签,存入指纹文件,用于构建键值指纹库。
4、步骤(2)根据视频id将步骤(1)得到的指纹文件中属于同一个视频的所有分辨率的指纹条目合并为一个视频的待处理指纹集,计算并记录组合指纹总数。
5、步骤(3)根据步骤(2)得到的视频总数、视频id、视频分段总数,划分键值数据库子库,并为每个子库创建32字节的字节数组,字节数组下标数值即为键值,数组元素用于存储后接链表第一个元素的位置指针。
6、步骤(4)对步骤(2)得到的每个视频的每种分辨率对应的分段指纹序列,依次计算一至多个相邻分段指纹的所有可能的组合相加结果,每一种组合结果作为一个组合指纹添加到键值数据库,添加方式见步骤(5)。
7、步骤(5)按照步骤(3)划分出的每个键值数据库子库,对步骤(4)得到的每个组合指纹,以链表的形式链接到子库的字节数组中键值与组合指纹长度一致的数组元素后。
8、步骤(6)在系统运行时,首先将键值数据库文件读入内存,形成内存键值数据库,系统运行期间内存键值数据库常驻内存。
9、步骤(7)根据加密视频流量中提取的待查询分段指纹,多线程同时获取每个子库的字节数组中键值与分段指纹长度在允许误差范围内的元素对应的链表,得到可用于视频准确识别的视频指纹结果集。
10、进一步的,所述步骤(1)中,下载并提取不同分辨率下加密视频的音视频明文分段信息,分别记录分段长度序列作为明文指纹,打上内容标签,存入指纹文件,用于构建键值指纹库,方法如下:
11、(1.1)利用网络爬虫技术收集大量视频的url列表。
12、(1.2)根据获取的url列表,构建特定的请求头以访问并下载视频的元数据文件。
13、(1.3)分析视频元数据文件,提取不同分辨率下的视频片段长度序列,形成视频的明文指纹数据,同时标记视频的id、标题、分辨率等信息。
14、(1.4)对于步骤(1.1)获取的url列表中的每一条url,重复步骤(1.2)和(1.3),获得对应视频的明文指纹,并将其与视频标记信息一起存储于指纹文件中。
15、进一步的,所述步骤(3)中,根据步骤(2)得到的视频总数、视频id、视频分段总数,划分键值数据库子库,并为每个子库创建32字节的字节数组,字节数组下标数值即为键值,数组元素用于存储后接链表第本文档来自技高网...
【技术保护点】
1.一种用于实现海量视频指纹快速识别的键值数据库构建方法,其特征在于,该方法包括以下步骤:
2.根据权利要求1所述的一种用于实现海量视频指纹快速识别的键值数据库构建方法,其特征在于,步骤(1)具体如下:
3.根据权利要求1所述的一种用于实现海量视频指纹快速识别的键值数据库构建方法,其特征在于,步骤(3)具体如下:
4.根据权利要求1所述的一种用于实现海量视频指纹快速识别的键值数据库构建方法,其特征在于,步骤(4)具体如下:
5.根据权利要求1所述的一种用于实现海量视频指纹快速识别的键值数据库构建方法,其特征在于,步骤(7)具体如下:
【技术特征摘要】
1.一种用于实现海量视频指纹快速识别的键值数据库构建方法,其特征在于,该方法包括以下步骤:
2.根据权利要求1所述的一种用于实现海量视频指纹快速识别的键值数据库构建方法,其特征在于,步骤(1)具体如下:
3.根据权利要求1所述的一种用于实现海量视频指纹快速识别的键值数据...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。