CN103605778B - 一种视频文件的定位方法、装置及*** - Google Patents
一种视频文件的定位方法、装置及*** Download PDFInfo
- Publication number
- CN103605778B CN103605778B CN201310627421.2A CN201310627421A CN103605778B CN 103605778 B CN103605778 B CN 103605778B CN 201310627421 A CN201310627421 A CN 201310627421A CN 103605778 B CN103605778 B CN 103605778B
- Authority
- CN
- China
- Prior art keywords
- index
- file
- video file
- block
- metadata
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明适用于云存储技术领域,提供了一种视频文件的定位方法、装置及***,所述方法包括:接收客户端发送的需要定位的视频文件的标识和格林尼治时间;根据视频文件的标识获取视频文件的元数据;根据视频文件的元数据查找与视频文件对应的索引文件的标识;根据索引文件的标识获取索引文件的元数据;根据索引文件的元数据以及格林尼治时间计算视频文件的时间戳;遍历索引文件的元数据,得到每个索引块的存储节点列表;向列表中的每个存储节点对应的存储服务器发送包括视频文件的时间戳的索引记录查询请求,由存储服务器根据该视频文件的时间戳从索引文件中查找到视频文件的偏移值。本发明,简单易行,是一种高效的定位方法。
Description
技术领域
本发明属于云存储技术领域,尤其涉及一种视频文件的定位方法、装置及***。
背景技术
随着计算机和网络技术的不断发展以及高清视频的普及,存储多媒体所需的空间不断增长,传统的存储架构已经很难满足需求。
云存储以其海量的存储空间、高可靠性、高并发、高可扩展性及高性价比等特性逐渐展露头角。
然而,一般的云存储比较适用于普通大文件,对视频文件的支持并非很好。因为视频文件较普通文件,需要对应的索引文件,结合索引文件,视频文件的数据定位会更为复杂。
发明内容
本发明实施例提供了一种视频文件的定位方法、装置及***,旨在解决现有技术提供的云存储对视频文件的支持并非很好,导致视频文件的数据定位比较复杂的问题。
一方面,提供一种视频文件的定位方法,所述方法包括:
接收客户端发送的定位请求,所述定位请求中包括需要定位的视频文件的标识和格林尼治时间;
根据所述视频文件的标识获取所述视频文件的元数据;
根据所述视频文件的元数据查找与所述视频文件对应的索引文件的标识;
根据所述索引文件的标识获取所述索引文件的元数据;
根据所述索引文件的元数据以及所述格林尼治时间计算得到所述视频文件的时间戳;
遍历所述索引文件的元数据,得到每个索引块的存储节点列表;
向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,所述索引记录查询请求中包括所述视频文件的时间戳,由存储服务器根据所述视频文件的时间戳从所述索引文件中查找到所述视频文件的偏移值;
接收所述存储服务器发送的所述视频文件的偏移值并转发所述偏移值至客户端。
进一步地,在所述接收客户端发送的定位请求之前或者在所述根据所述视频文件的标识获取所述视频文件的元数据之前,还包括:
将所述视频文件和所述索引文件均分割成大小相同的块;
存储所述视频文件的元数据、所述索引文件的元数据和对所述视频文件和所述索引文件进行分割得到的块。
进一步地,所述存储所述视频文件的元数据、所述索引文件的元数据和对所述视频文件和所述索引文件分割得到的块包括:
将所述视频文件的元数据和所述索引文件的元数据均存储在控制服务器中;
根据所述视频文件的元数据和所述索引文件的元数据将分割得到的块存储至相应的存储服务器中。
进一步地,所述视频文件的元数据的结构与所述索引文件的元数据的结构相同,均包括文件的标识、块的列表、视频文件的开始时间、视频文件对应的索引文件的标识;
其中,块的列表中包括至少两个块的元数据,每个块的元数据中包括每个块的存储节点列表。
进一步地,所述块包括文件块和索引块,所述索引文件被分割成大小相同的索引块,所述索引块中包括至少一条索引记录,在所述将所述视频文件和所述索引文件均分割成大小相同的块之后,还包括:
从所述索引块的索引记录中提取预选的字段构建新的索引块并加载所述新的索引块至内存。
进一步地,所述从所述索引块的索引记录中提取预选的字段构建新的索引块并加载所述新的索引块至内存的步骤具体包括:
从所述索引块的索引记录中提取出视频文件的时间戳和视频文件的偏移值;
将所述视频文件的时间戳和所述视频文件的偏移值绑定在一起,组成一条新的索引记录;
根据所述新的索引记录构建新的索引块;
将所述新的索引块的所有索引记录保存在一个文件中;
每次启动存储服务器时,将所述文件加载到内存。
另一方面,提供一种视频文件的定位装置,所述定位装置包括:
定位请求接收单元,用于接收客户端发送的定位请求,所述定位请求中包括需要定位的视频文件的标识和格林尼治时间;
视频元数据获取单元,用于根据所述视频文件的标识获取所述视频文件的元数据;
索引文件标识获取单元,用于根据所述视频文件的元数据查找与所述视频文件对应的索引文件的标识;
索引文件元数据获取单元,用于根据所述索引文件的标识获取所述索引文件的元数据;
视频文件时间戳获取单元,用于根据所述索引文件的元数据以及所述格林尼治时间计算得到所述视频文件的时间戳;
存储节点列表获取单元,用于遍历所述索引文件的元数据,得到每个索引块的存储节点列表;
查询请求发送单元,用于向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,所述索引记录查询请求中包括所述视频文件的时间戳,由存储服务器根据所述视频文件的时间戳从所述索引文件中查找到所述视频文件的偏移值;
偏移值接收单元,用于接收所述存储服务器发送的所述视频文件的偏移值并转发所述偏移值至客户端。
进一步地,所述定位装置还包括:
文件分块单元,用于将所述视频文件和所述索引文件均分割成大小相同的块;
块存储单元,用于存储所述视频文件的元数据、所述索引文件的元数据和对所述视频文件和所述索引文件进行分割得到的块。
进一步地,所述块存储单元包括:
元数据存储模块,将所述视频文件的元数据和所述索引文件的元数据均存储在控制服务器中;
块存储模块,用于根据所述视频文件的元数据和所述索引文件的元数据将分割得到的块存储至相应的存储服务器中。
进一步地,所述视频文件的元数据的结构与所述索引文件的元数据的结构相同,均包括文件的标识、块的列表、视频文件的开始时间、视频文件对应的索引文件的标识;
其中,块的列表中包括至少两个块的元数据,每个块的元数据中包括每个块的存储节点列表。
进一步地,所述块包括文件块和索引块,所述索引文件被分割成大小相同的索引块,所述索引块中包括至少一条索引记录;
所述定位装置还包括:
索引块缓存单元,用于从所述索引块的索引记录中提取预选的字段构建新的索引块并加载所述新的索引块至内存。
进一步地,所述索引块缓存单元包括:
字段值提取模块,用于从所述索引块的索引记录中提取出视频文件的时间戳和视频文件的偏移值;
新索引记录生成模块,用于将所述视频文件的时间戳和所述视频文件的偏移值绑定在一起,组成一条新的索引记录;
新索引块生成模块,用于根据所述新的索引记录构建新的索引块;
新索引块存储模块,用于将所述新的索引块的所有索引记录保存在一个文件中;
索引加载模块,用于每次启动存储服务器时,将所述文件加载到内存。
又一方面,提供一种视频文件的定位***,其特征在于,所述***包括客户端、与所述客户端连接的控制服务器、与所述控制服务器连接的至少一个存储服务器,所述控制服务器包括如上所述的视频文件的定位装置。
在本发明实施例,客户端先向控制服务器发送定位请求信息,控制服务器根据该定位请求信息获取视频文件的元数据,从该视频文件的元数据中得到索引文件的标识,再根据该索引文件的标识获取索引文件的元数据,进而得到每个索引块的存储节点列表,然后向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,由存储服务器根据该查询请求获取视频文件的偏移值,发送给控制服务器,再由控制服务器将该偏移值转发至客户端。整个视频文件的定位过程中是根据视频文件的元数据、索引文件的元数据以及索引文件来实现视频文件的定位,简单易行,是一种高效的定位方法。
附图说明
图1是本发明实施例一提供的视频文件的定位方法的实现流程图;
图2是本发明实施例一提供的视频文件与索引文件,两者之间的关系示意图;
图3是本发明实施例一提供的视频文件和索引文件的元数据的结构示意图;
图4是本发明实施例二提供的视频文件的定位装置的结构框图;
图5是本发明实施例三提供的视频文件的定位***的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,客户端先向控制服务器发送定位请求信息,控制服务器根据该定位请求信息获取视频文件的元数据,从该视频文件的元数据中得到索引文件的标识,再根据该索引文件的标识获取索引文件的元数据,进而得到每个索引块的存储节点列表,然后向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,由存储服务器根据该查询请求获取视频文件的偏移值,发送给控制服务器,再由控制服务器将该偏移值转发至客户端。
以下结合具体实施例对本发明的实现进行详细描述:
实施例一
图1示出了本发明实施例一提供的视频文件的定位方法的实现流程,以控制服务器侧为例来进行说明,详述如下:
在步骤S101中,接收客户端发送的定位请求,该定位请求中包括需要定位的视频文件的标识和格林尼治时间。
在本实施例中,控制服务器接收客户端发送的定位请求,该定位请求中包括需要定位的视频文件的标识ID和格林尼治时间。
在步骤S102中,根据视频文件的标识获取视频文件的元数据。
在本实施例中,控制服务器接收到客户端发送的定位请求后,根据该请求中包括的视频文件的标识获取该视频文件的元数据。
需要说明的是:在执行步骤S101或者步骤S102之前,还需要执行下述步骤:
步骤1、将视频文件和索引文件均分割成大小相同的块。
其中,一个视频文件对应一个索引文件,两者之间是一一对应的关系。两者之间的关系如图2所示,索引文件中的一条索引记录唯一对应视频文件中的一条视频帧。
设定块的大小后,一个视频文件可以被分割成至少两个块,每个块都有一个唯一标识id,每个块是一段视频,都是由帧组成,帧类别分别为:I帧,P帧和B帧。
相应地,与视频文件对应的索引文件也被分割成至少两个块,可以将该至少两个块称为索引块,索引文件中的每个索引块由N条索引记录组成。
视频文件的每一帧对应索引文件的一条索引记录。一条索引记录由4个字段组成:Time、I_Seqno、P,B_Seqno和Offset。每个字段所代表的含义如表1所示:
字段 | 描述 | 长度 |
Time | 视频文件的时间撮 | 5byte |
I_Seqno | I帧的序列 | 3byte |
P,B_Seqno | P,B帧的序列 | 1byte |
Offset | 视频文件的偏移值 | 7byte |
表1
其中,Time为5byte,长度足够记录一个毫秒级的时间戳。
I帧的序列为3byte长度,P,B_Seqno为该帧所对应的P,B帧的序列,长度为1byte。
I_Seqnomax=224,P,B_Seqnomax=28。
Offset为每一帧对应视频文件的偏移值,长度为7byte,Offsetmax=256,大小为1EB,远远超过***设计最大文件。
一条索引记录总长度为:5+3+1+7=16byte长度,索引记录的长度设计为16byte,便于保存和解析。
另外,需要说明的是:索引块中包括至少一条索引记录,存储服务器的内存会缓存索引记录,缓存索引记录的格式可以有很多种,如B树(B-tree)、哈希表HashTable等。
本案列先通过HashTable的方式,将同个索引块的索引记录保存在同个Vaule中,每个索引块的Key由文件的id和块的序列Seqno组成,确保唯一性。
作为本发明的一个优选实施例,控制服务器可以从索引块的索引记录中提取预选的字段构建新的索引块并加载该新的索引块至内存,该预选的字段可以是索引记录中的全部字段,也可以是索引记录中的部分字段,本实施例中不做限制,采用这种将索引记录加载到内存的方式,可以提高搜索速度。
另外,优选地,由于后续步骤中对索引记录的操作只用到视频文件的时间戳和视频文件的偏移值这两个字段,因此,为了节省内存空间,同时提高读取速度,控制服务器从索引块的索引记录中只提取出视频文件的时间戳和视频文件的偏移值,将视频文件的时间戳和视频文件的偏移值绑定在一起,组成一条新的索引记录,根据新的索引记录构建新的索引块,每个新的索引块中的索引记录采用顺序保存的方式,比如,本实施例中,将Time和Offset绑定在一起,组成{Time,Offset}的形式,以{Time,Offset}的值为排序依据,对每个新的索引块中的索引记录进行排序。
每个新的索引块的所有索引记录保存为一个很小的文件。每次启动存储服务器时,将该文件加载到内存。
该保存索引记录的方式的优点是:保存,修改和删除可以很方便,缺点是需要遍历查询。但本发明实施例中,采用将索引记录加载到内存的方式,可以提高搜索速度,而且每次是只遍历一个索引块的数据,数据量不会太大。
步骤2、存储视频文件的元数据、索引文件的元数据和对视频文件和索引文件进行分割得到的块。
具体的,将视频文件的元数据和索引文件的元数据均存储在控制服务器中。
其中,视频文件的元数据的结构如图3所示,该元数据中包括的字段有id、name、copysize、blocksize、type、startime、blocklist和linkfileid,每个字段的含义如表2表示。
字段 | 描述 |
id | 文件的id |
name | 文件的名称 |
copysize | 复制份数 |
blocksize | 块大小 |
Type | 文件类型 |
startime | 视频的开始时间 |
blocksize | 块的列表 |
linkfileid | 视频文件对应的索引文件id |
表2
如图3所示,字段blocklist包括block1至block N等若干个块,每个块的元数据中包括的字段有id、seqno、version、snodelist。其中,各个字段的含义如表3所示。
字段 | 描述 |
id | 块的id |
seqno | 块序列 |
version | 版本号 |
snodelist | 存储节点列表 |
表3
具体的,根据视频文件的元数据和索引文件的元数据将分割得到的块存储至相应的存储服务器中。
其中,可以依次读取每个块的id,再根据该id查找相应文件的元数据,得到与该块的id对应的存储节点列表snodelist,通过该存储节点列表即可得到每个块具体存储在哪一个存储服务器中。
另外,为了使视频文件和索引文件的存储可靠性得到充分发挥,本发明实施例中,对分割得到的每个块依据源数据中的复制份数copysize,保存为多分,分别存储在不同的存储服务器上,每个存储服务器对应的存储节点的唯一id记录在块的存储节点列表snodelist中。
在步骤S103中,根据视频文件的元数据查找与视频文件对应的索引文件的标识。
在本发明实施例中,控制服务器得到视频文件的元数据后,即可根据视频文件的元数据中的linkfileid字段得到该视频文件对应的索引文件的标识id。
视频文件和索引文件的元数据结构相同,视频文件元数据中的linkfileid为该视频文件对应的索引文件的id,索引文件元数据中的linkfileid为0。举例说明:id=1111,如果type=0,表示该元数据为普通文件的元数据;type=1,表示该元数据为视频文件的元数据;type=2,表示该元数据为索引文件的元数据。通过type区别文件的属性,id只是表示文件的唯一性。
在步骤S104中,根据索引文件的标识获取索引文件的元数据。
在步骤S105中,根据索引文件的元数据以及格林尼治时间计算得到视频文件的时间戳。
在本发明实施例中,索引文件的元数据中包括视频的开始时间,控制服务器根据定位请求中包括的格林尼治时间和该视频的开始时间可以计算得到视频文件的时间戳,具体计算公式为:视频文件的时间戳=格林尼治时间-该视频的开始时间。
在步骤S106中,遍历索引文件的元数据,得到每个索引块的存储节点列表。
在本发明实施例中,索引文件的元数据中包括分割得到的每个索引块的存储节点列表,控制服务器可以遍历索引文件的元数据,得到每个索引块的存储节点列表。
在步骤S107中,向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,其中,索引记录查询请求中包括视频文件的时间戳,由存储服务器根据视频文件的时间戳从索引文件中查找到视频文件的偏移值。
在本发明实施例中,控制服务器向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,该索引记录查询请求中包括步骤S105计算得到的视频文件的时间戳,由存储服务器根据该视频文件的时间戳从索引文件中查找到视频文件的偏移值。
在步骤S108中,接收存储服务器发送的视频文件的偏移值并转发该偏移值至客户端。
在本发明实施例中,存储服务器不同,响应时间也有差异,对分布式***来说,只要一台存储服务器返回正确的数据即可(因为是至少两个备份数据,数据都是一样的,所以不需要等待所有数据返回。)。
控制服务器获取到存储服务器返回的视频文件的偏移值后,将该视频文件的偏移值发送至客户端。客户端通获取的视频文件的偏移值,再去读取该视频文件对应的数据。
本实施例,客户端先向控制服务器发送定位请求信息,控制服务器根据该定位请求信息获取视频文件的元数据,从该视频文件的元数据中得到索引文件的标识,再根据该索引文件的标识获取索引文件的元数据,进而得到每个索引块的存储节点列表,然后向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,由存储服务器根据该查询请求获取视频文件的偏移值,发送给控制服务器,再由控制服务器将该偏移值转发至客户端。整个视频文件的定位过程中是根据视频文件的元数据、索引文件的元数据以及索引文件来实现视频文件的定位,是一种高效的定位方法。另外,每个索引块的所有索引记录保存为一个文件,修改和删除都很方便。并且,将索引文件加载至内存中,可以提高搜索速度,而且每次只遍历一个块的数据,数据量不会太大。
本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
实施例二
图4示出了本发明实施例二提供的视频文件的定位装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该视频文件的定位装置可以是内置于控制服务器中的软件单元、硬件单元或者软硬件结合的单元,该视频文件的定位装置4包括:定位请求接收单元41、视频元数据获取单元42、索引文件标识获取单元43、索引文件元数据获取单元44、视频文件时间戳获取单元45、存储节点列表获取单元46、查询请求发送单元47和偏移值接收单元48。
其中,定位请求接收单元41,用于接收客户端发送的定位请求,该定位请求中包括需要定位的视频文件的标识和格林尼治时间;
视频元数据获取单元42,用于根据视频文件的标识获取视频文件的元数据;
索引文件标识获取单元43,用于根据视频文件的元数据查找与视频文件对应的索引文件的标识;
索引文件元数据获取单元44,用于根据索引文件的标识获取索引文件的元数据;
视频文件时间戳获取单元45,用于根据索引文件的元数据以及格林尼治时间计算得到视频文件的时间戳;
存储节点列表获取单元46,用于遍历索引文件的元数据,得到每个索引块的存储节点列表;
查询请求发送单元47,用于向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,该索引记录查询请求中包括视频文件的时间戳,由存储服务器根据视频文件的时间戳从索引文件中查找到视频文件的偏移值;
偏移值接收单元48,用于接收存储服务器发送的视频文件的偏移值并转发该偏移值至客户端。
进一步地,该定位装置4还包括:
文件分块单元,用于将视频文件和索引文件均分割成大小相同的块;
块存储单元,用于存储视频文件的元数据、索引文件的元数据和对视频文件和索引文件进行分割得到的块。
进一步地,块存储单元包括:
元数据存储模块,用于将视频文件的元数据和索引文件的元数据均存储在控制服务器中;
块存储模块,用于根据视频文件的元数据和索引文件的元数据将分割得到的块存储至相应的存储服务器中。
进一步地,视频文件的元数据的结构与索引文件的元数据的结构相同,均包括文件的标识、块的列表、视频文件的开始时间、视频文件对应的索引文件的标识;
其中,块的列表中包括至少两个块的元数据,每个块的元数据中包括每个块的存储节点列表。
进一步地,块包括文件块和索引块,索引文件被分割成大小相同的索引块,索引块中包括至少一条索引记录;
定位装置4还包括:
索引块缓存单元,用于从索引块的索引记录中提取预选的字段构建新的索引块并加载新的索引块至内存。
进一步地,索引块缓存单元包括:
字段值提取模块,用于从索引块的索引记录中提取出视频文件的时间戳和视频文件的偏移值;
新索引记录生成模块,用于将视频文件的时间戳和视频文件的偏移值绑定在一起,组成一条新的索引记录;
新索引块生成模块,用于根据新的索引记录构建新的索引块;
新索引块存储模块,用于将新的索引块的所有索引记录保存在一个文件中;
索引加载模块,用于每次启动存储服务器时,将文件加载到内存。
本发明实施例提供的视频文件的定位装置可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。
本实施例,视频文件的定位装置接收到客户端发送的定位请求信息后,根据该定位请求信息获取视频文件的元数据,从该视频文件的元数据中得到索引文件的标识,再根据该索引文件的标识获取索引文件的元数据,进而得到每个索引块的存储节点列表,然后向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,由存储服务器根据该查询请求获取视频文件的偏移值,发送给视频文件的定位装置,视频文件的定位装置接收到偏移值后,将该偏移值转发至客户端。整个视频文件的定位过程中是根据视频文件的元数据、索引文件的元数据以及索引文件来实现视频文件的定位,是一种高效的定位方法。另外,每个索引块的所有索引记录保存为一个文件,修改和删除都很方便。并且,将索引文件加载至内存中,可以提高搜索速度,而且每次只遍历一个块的数据,数据量不会太大。
实施例三
图5示出了本发明实施例三提供的视频文件的定位***的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该视频文件的定位***5包括客户端51、控制服务器52和存储服务器53。
控制服务器中包括如实施例二描述的视频文件的定位装置。一个控制服务器与至少一个存储服务器连接,客户端分别与控制服务器和存储服务器连接。其中,客户端用于向控制服务器发送定位请求信息,控制服务器中存储有视频文件和与该视频文件对应的索引文件的元数据,接收到客户端发送的定位请求信息后,控制服务器即可根据该命令查找到用于存储索引块的存储服务器的信息,向列表中的每个存储服务器发送索引记录查询请求,该索引记录查询请求中包括视频文件的时间戳,由存储服务器根据视频文件的时间戳从索引文件中查找到视频文件的偏移值发送给控制服务器,最后由控制服务器转发该偏移值至客户端。
本实施例,客户端先向控制服务器发送定位请求信息,控制服务器根据该定位请求信息获取视频文件的元数据,从该视频文件的元数据中得到索引文件的标识,再根据该索引文件的标识获取索引文件的元数据,进而得到每个索引块的存储节点列表,然后向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,由存储服务器根据该查询请求获取视频文件的偏移值,发送给控制服务器,再由控制服务器将该偏移值转发至客户端。整个视频文件的定位过程中是根据视频文件的元数据、索引文件的元数据以及索引文件来实现视频文件的定位,是一种高效的定位方法。另外,每个索引块的所有索引记录保存为一个文件,修改和删除都很方便。并且,将索引文件加载至内存中,可以提高搜索速度,而且每次只遍历一个块的数据,数据量不会太大。
本发明实施例提供的视频文件的定位***可以应用在前述对应的方法实施例中,详情参见上述前述方法实施例的描述,在此不再赘述。
值得注意的是,上述***实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种视频文件的定位方法,其特征在于,所述方法包括:
接收客户端发送的定位请求,所述定位请求中包括需要定位的视频文件的标识和格林尼治时间;
根据所述视频文件的标识获取所述视频文件的元数据;
根据所述视频文件的元数据查找与所述视频文件对应的索引文件的标识;
根据所述索引文件的标识获取所述索引文件的元数据;
根据所述索引文件的元数据以及所述格林尼治时间计算得到所述视频文件的时间戳;
遍历所述索引文件的元数据,得到每个索引块的存储节点列表;
向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,所述索引记录查询请求中包括所述视频文件的时间戳,由存储服务器根据所述视频文件的时间戳从所述索引文件中查找到所述视频文件的偏移值;
接收所述存储服务器发送的所述视频文件的偏移值并转发所述偏移值至客户端;
其中,所述视频文件的元数据中包括的字段有文件的标识、文件的名称、复制份数、块大小、文件类型、视频的开始时间、块的列表和视频文件对应的索引文件的标识;
视频文件和索引文件的元数据相同;
所述块的元数据中包括的字段有块的标识、块序列、版本号、存储节点列表。
2.如权利要求1所述的方法,其特征在于,在所述接收客户端发送的定位请求之前或者在所述根据所述视频文件的标识获取所述视频文件的元数据之前,还包括:
将所述视频文件和所述索引文件均分割成大小相同的块;
存储所述视频文件的元数据、所述索引文件的元数据和对所述视频文件和所述索引文件进行分割得到的块。
3.如权利要求2所述的方法,其特征在于,所述存储所述视频文件的元数据、所述索引文件的元数据和对所述视频文件和所述索引文件分割得到的块包括:
将所述视频文件的元数据和所述索引文件的元数据均存储在控制服务器中;
根据所述视频文件的元数据和所述索引文件的元数据将分割得到的块存储至相应的存储服务器中。
4.如权利要求2所述的方法,其特征在于,所述视频文件的元数据的结构与所述索引文件的元数据的结构相同,均包括文件的标识、块的列表、视频文件的开始时间、视频文件对应的索引文件的标识;
其中,块的列表中包括至少两个块的元数据,每个块的元数据中包括每个块的存储节点列表。
5.如权利要求2或3或4所述的方法,其特征在于,所述块包括文件块和索引块,所述索引文件被分割成大小相同的索引块,所述索引块中包括至少一条索引记录,在所述将所述视频文件和所述索引文件均分割成大小相同的块之后,还包括:
从所述索引块的索引记录中提取预选的字段构建新的索引块并加载所述新的索引块至内存。
6.如权利要求5所述的方法,其特征在于,所述从所述索引块的索引记录中提取预选的字段构建新的索引块并加载所述新的索引块至内存的步骤具体包括:
从所述索引块的索引记录中提取出视频文件的时间戳和视频文件的偏移值;
将所述视频文件的时间戳和所述视频文件的偏移值绑定在一起,组成一条新的索引记录;
根据所述新的索引记录构建新的索引块;
将所述新的索引块的所有索引记录保存在一个文件中;
每次启动存储服务器时,将所述文件加载到内存。
7.一种视频文件的定位装置,其特征在于,所述定位装置包括:
定位请求接收单元,用于接收客户端发送的定位请求,所述定位请求中包括需要定位的视频文件的标识和格林尼治时间;
视频元数据获取单元,用于根据所述视频文件的标识获取所述视频文件的元数据;
索引文件标识获取单元,用于根据所述视频文件的元数据查找与所述视频文件对应的索引文件的标识;
索引文件元数据获取单元,用于根据所述索引文件的标识获取所述索引文件的元数据;
视频文件时间戳获取单元,用于根据所述索引文件的元数据以及所述格林尼治时间计算得到所述视频文件的时间戳;
存储节点列表获取单元,用于遍历所述索引文件的元数据,得到每个索引块的存储节点列表;
查询请求发送单元,用于向列表中的每个存储节点对应的存储服务器发送索引记录查询请求,所述索引记录查询请求中包括所述视频文件的时间戳,由存储服务器根据所述视频文件的时间戳从所述索引文件中查找到所述视频文件的偏移值;
偏移值接收单元,用于接收所述存储服务器发送的所述视频文件的偏移值并转发所述偏移值至客户端;
其中,所述视频文件的元数据中包括的字段有文件的标识、文件的名称、复制份数、块大小、文件类型、视频的开始时间、块的列表和视频文件对应的索引文件的标识;
视频文件和索引文件的元数据相同;
所述块的元数据中包括的字段有块的标识、块序列、版本号、存储节点列表。
8.如权利要求7所述的定位装置,其特征在于,所述定位装置还包括:
文件分块单元,用于将所述视频文件和所述索引文件均分割成大小相同的块;
块存储单元,用于存储所述视频文件的元数据、所述索引文件的元数据和对所述视频文件和所述索引文件进行分割得到的块。
9.如权利要求8所述的定位装置,其特征在于,所述块存储单元包括:
元数据存储模块,将所述视频文件的元数据和所述索引文件的元数据均存储在控制服务器中;
块存储模块,用于根据所述视频文件的元数据和所述索引文件的元数据将分割得到的块存储至相应的存储服务器中。
10.如权利要求8所述的定位装置,其特征在于,所述视频文件的元数据的结构与所述索引文件的元数据的结构相同,均包括文件的标识、块的列表、视频文件的开始时间、视频文件对应的索引文件的标识;
其中,块的列表中包括至少两个块的元数据,每个块的元数据中包括每个块的存储节点列表。
11.如权利要求8或9或10所述的定位装置,其特征在于,所述块包括文件块和索引块,所述索引文件被分割成大小相同的索引块,所述索引块中包括至少一条索引记录;
所述定位装置还包括:
索引块缓存单元,用于从所述索引块的索引记录中提取预选的字段构建新的索引块并加载所述新的索引块至内存。
12.如权利要求11所述的定位装置,其特征在于,所述索引块缓存单元包括:
字段值提取模块,用于从所述索引块的索引记录中提取出视频文件的时间戳和视频文件的偏移值;
新索引记录生成模块,用于将所述视频文件的时间戳和所述视频文件的偏移值绑定在一起,组成一条新的索引记录;
新索引块生成模块,用于根据所述新的索引记录构建新的索引块;
新索引块存储模块,用于将所述新的索引块的所有索引记录保存在一个文件中;
索引加载模块,用于每次启动存储服务器时,将所述文件加载到内存。
13.一种视频文件的定位***,其特征在于,所述***包括客户端、与所述客户端连接的控制服务器、与所述控制服务器连接的至少一个存储服务器,所述控制服务器包括如权利要求7至12任一项所述的视频文件的定位装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310627421.2A CN103605778B (zh) | 2013-11-28 | 2013-11-28 | 一种视频文件的定位方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310627421.2A CN103605778B (zh) | 2013-11-28 | 2013-11-28 | 一种视频文件的定位方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103605778A CN103605778A (zh) | 2014-02-26 |
CN103605778B true CN103605778B (zh) | 2017-02-15 |
Family
ID=50124000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310627421.2A Expired - Fee Related CN103605778B (zh) | 2013-11-28 | 2013-11-28 | 一种视频文件的定位方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103605778B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224546B (zh) * | 2014-06-04 | 2020-10-30 | 创新先进技术有限公司 | 数据存储和查询方法及设备 |
US10298931B2 (en) * | 2014-09-25 | 2019-05-21 | Microsoft Technology Licensing, Llc | Coupling sample metadata with media samples |
CN105808546A (zh) * | 2014-12-30 | 2016-07-27 | 中国电信股份有限公司 | 一种视频文件索引管理平台、***及其方法 |
CN105389350B (zh) * | 2015-10-28 | 2019-02-15 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件***元数据信息获取方法 |
CN106534878A (zh) * | 2016-11-01 | 2017-03-22 | 乐视控股(北京)有限公司 | 一种直播节目的回看方法、***和服务器 |
CN107911461B (zh) * | 2017-11-24 | 2021-05-07 | 网宿科技股份有限公司 | 云存储***中的对象处理方法、存储服务器及云存储*** |
CN109101531B (zh) * | 2018-06-22 | 2022-05-31 | 联想(北京)有限公司 | 文件处理方法、装置及*** |
CN114363670B (zh) * | 2019-08-01 | 2024-05-28 | 浙江大华技术股份有限公司 | 视频读取方法、装置、设备和存储介质 |
CN111800520B (zh) * | 2020-09-08 | 2021-06-15 | 北京维数统计事务所有限公司 | 业务处理方法、装置、电子设备和可读存储介质 |
CN113094551B (zh) * | 2021-02-19 | 2023-09-19 | 深圳市麦谷科技有限公司 | 行车记录仪视频的检索方法、装置、服务端及检索*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547360A (zh) * | 2009-05-08 | 2009-09-30 | 南京师范大学 | 可定位视频文件格式及该格式文件数据的采集方法 |
CN101719161A (zh) * | 2009-12-23 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 视频索引方法和装置 |
CN103077200A (zh) * | 2012-12-27 | 2013-05-01 | 深圳市赛为智能股份有限公司 | 一种音视频存储索引方法及装置 |
-
2013
- 2013-11-28 CN CN201310627421.2A patent/CN103605778B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547360A (zh) * | 2009-05-08 | 2009-09-30 | 南京师范大学 | 可定位视频文件格式及该格式文件数据的采集方法 |
CN101719161A (zh) * | 2009-12-23 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 视频索引方法和装置 |
CN103077200A (zh) * | 2012-12-27 | 2013-05-01 | 深圳市赛为智能股份有限公司 | 一种音视频存储索引方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103605778A (zh) | 2014-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103605778B (zh) | 一种视频文件的定位方法、装置及*** | |
CN101908073B (zh) | 一种文件***中实时删除重复数据的方法 | |
US8171202B2 (en) | Asynchronous distributed object uploading for replicated content addressable storage clusters | |
CN102169507B (zh) | 一种分布式实时搜索引擎的实现方法 | |
US20150347553A1 (en) | Object Storage System with Local Transaction Logs, a Distributed Namespace, and Optimized Support for User Directories | |
CN104063487B (zh) | 基于关系型数据库及k‑d树索引的文件数据管理方法 | |
US20130117227A1 (en) | Cache based key-value store mapping and replication | |
US9183267B2 (en) | Linked databases | |
CN102467572B (zh) | 支持重复数据删除程序的数据区块查询方法 | |
US20170031948A1 (en) | File synchronization method, server, and terminal | |
CN104408111A (zh) | 一种删除重复数据的方法及装置 | |
CN103823846A (zh) | 一种基于图论的大数据存储及查询方法 | |
CN102799598A (zh) | 重复数据删除的数据复原方法 | |
CN102479189B (zh) | 一种内存中海量时间戳型数据高速均匀访问的索引方法 | |
CN105956123A (zh) | 基于局部更新软件的数据处理方法及装置 | |
CN104202384A (zh) | 一种分布式文件***的文件上传及查找方法 | |
CN103488687A (zh) | 用于大数据的搜索***和搜索方法 | |
CN102769638A (zh) | 一种下载文件的方法、装置及*** | |
CN103942259B (zh) | 一种数据库同步中实现数据缓存的方法 | |
US11003711B2 (en) | Accessing audio files from an online content management system | |
US20190278757A1 (en) | Distributed Database Management System with Dynamically Split B-Tree Indexes | |
CN103440301A (zh) | 一种数据多副本混合存储方法及*** | |
US8543581B2 (en) | Synchronizing records between databases | |
CN109213760B (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
CN104615459A (zh) | 一种MoCA设备参数配置方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 Termination date: 20191128 |