一种视频存储方法及装置和视频搜索方法及装置的制造方法

文档序号:9251234阅读:284来源:国知局
一种视频存储方法及装置和视频搜索方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据存储及数据传输领域,具体而言,涉及一种视频存储方法及装置和视频搜索方法及装置。
【背景技术】
[0002]目前,视频的容量一般很大,而且网络中存在海量的视频,如何实现海量视频的存储以及如何从存储的海量视频中快速查询视频,已成为急需解决的问题。
[0003]当前,现有技术中提供了一种存储视频及搜索视频的方法,包括:在视频服务器中,通过存储视频的标识与视频数据的对应关系来实现海量视频的存储。当接收到用户搜索视频的请求时,根据用户提交的视频的标识,从视频的标识与视频数据的对应关系中获取对应的视频数据,将获取的视频数据发送给用户。
[0004]在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:
[0005]存储的视频无法支持流式点播,无法直接搜索到用户需要的一些视频帧,用户只能在整个视频下载完之后才能播放需要观看的视频帧,当视频容量很大时,将花费大量的时间,导致获取需要的视频帧的效率很低。

【发明内容】

[0006]有鉴于此,本发明实施例的目的在于提供一种视频存储方法及装置和视频搜索方法及装置,实现视频的流式点播,能够根据帧索引文件直接搜索到用户需要的视频帧,缩短了搜索视频的响应时间,提高了搜索视频帧的效率。
[0007]第一方面,本发明实施例提供了一种视频存储方法,所述方法包括:
[0008]获取待存储的视频;
[0009]根据所述视频中每个视频帧的帧信息生成所述每个视频帧的帧索引信息,并根据所述每个视频帧的帧索引信息生成所述视频对应的帧索引文件;
[0010]将所述帧索引文件和所述视频存储到视频存储系统中。
[0011]结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述根据所述视频中每个视频帧的帧信息生成所述每个视频帧的帧索引信息,包括:
[0012]对于所述视频中的每一视频帧,从当前帧的帧信息中获取所述当前帧的帧类型和时间戳;
[0013]根据所述当前帧的时间戳,确定所述当前帧的时间偏移量;将所述视频中位于所述当前帧之前的部分的容量确定为所述当前帧的数据偏移量;
[0014]将所述当前帧的所述帧类型、所述时间戳、所述时间偏移量和所述数据偏移量组成所述当前帧的帧索引信息。
[0015]结合第一方面的第一种可能的实现方式,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,当所述视频的类型为实时视频时,所述方法还包括:
[0016]从所述实时视频中获取所述实时视频的编码信息、解码信息及供应商标识;
[0017]将所述编码信息、解码信息及所述供应商标识添加到所述当前帧的帧索引信息中;或者,将所述编码信息、解码信息及所述供应商标识添加到所述帧索引文件中。
[0018]结合第一方面的第一种可能的实现方式,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述将所述当前帧的所述帧类型、所述时间戳、所述时间偏移量和所述数据偏移量组成所述当前帧的帧索引信息之后,还包括:
[0019]在所述当前帧的帧类型为P帧或B帧时,获取所述当前帧的关键帧位置,将所述关键帧位置添加到所述当前帧的帧索引信息中,所述关键帧位置为位于所述当前帧之前最近的I帧的位置;
[0020]和/或,在所述当前帧中包含用户标记信息时,获取所述用户标记信息及所述用户标记信息的长度,将所述用户标记信息及所述用户标记信息的长度添加到所述当前帧的帧索引信息中。
[0021]结合第一方面,本发明实施例提供了上述第一方面的第四种可能的实现方式,其中,所述方法还包括:
[0022]接收待存储的图片,将预设数量的图片组成图片组;
[0023]获取所述图片组中每个图片的标识及每个图片在所述图片组中的位置;
[0024]将每个所述图片的标识及位置组成所述图片组对应的图片索引文件;
[0025]将所述图片索引文件和所述图片组存储到所述视频存储系统中。
[0026]结合第一方面,本发明实施例提供了上述第一方面的第五种可能的实现方式,其中,所述将所述帧索引文件和所述视频存储到视频存储系统中,包括:
[0027]从所述视频中获取所述视频的视频标识,在视频存储系统中存储所述视频标识、所述帧索引文件和所述视频的对应关系,所述视频存储系统包括分布式文件系统、存储服务器和第三方存储设备。
[0028]第二方面,本发明实施例提供了一种视频搜索方法,所述方法包括:
[0029]接收用户的视频播放请求,所述视频播放请求包括所述用户欲播放视频的视频标识和视频帧信息,所述视频帧信息包括以下一种或多种:视频帧的时间戳、时间偏移量和数据偏移量;
[0030]根据所述视频标识、所述视频帧信息和视频存储系统存储的帧索引文件,从所述视频存储系统存储的视频中获取所述视频帧信息对应的视频帧的数据;
[0031]将获取的所述视频帧的数据提供给所述用户。
[0032]结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,所述将获取的所述视频帧的数据提供给所述用户,包括:
[0033]从所述帧索引文件中获取所述视频帧的供应商标识、编码信息、帧类型和时间戳;
[0034]将所述供应商标识、编码信息、帧类型和时间戳组成视频帧头;
[0035]将所述视频帧头和所述视频帧的数据组成视频帧数据包,将所述视频帧数据包发送给所述用户。
[0036]结合第二方面的第一种可能的实现方式,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,所述将视频帧头和所述视频帧的数据组成视频帧数据包之后,还包括:
[0037]获取所述视频帧的解码信息并添加到所述视频帧数据包中;以及在若所述视频帧的帧类型为P帧或B帧,则从所述帧索引文件中获取所述视频帧的关键帧的位置,根据所述关键帧的位置,获取所述关键帧的数据,将所述关键帧的数据添加到所述视频帧数据包中。
[0038]第三方面,本发明实施例提供了一种视频存储装置,所述装置包括:
[0039]获取模块,用于获取待存储的视频;
[0040]生成模块,用于根据所述视频中每个视频帧的帧信息生成所述每个视频帧的帧索引信息,并根据所述每个视频帧的帧索引信息生成所述视频对应的帧索引文件;
[0041]存储模块,用于将所述帧索引文件和所述视频存储到视频存储系统中。
[0042]结合第三方面,本发明实施例提供了上述第三方面的第一种可能的实现方式,其中,所述生成模块包括:
[0043]获取单元,用于对于所述视频中的每一视频帧,从当前帧的帧信息中获取所述当前帧的帧类型和时间戳;
[0044]确定单元,用于根据所述当前帧的时间戳,确定所述当前帧的时间偏移量;将所述视频中位于所述当前帧之前的部分的容量确定为所述当前帧的数据偏移量;
[0045]组成单元,用于将所述当前帧的所述帧类型、所述时间戳、所述时间偏移量和所述数据偏移量组成所述当前帧的帧索引信息。
[0046]结合第三方面的第一种可能的实现方式,本发明实施例提供了上述第三方面的第二种可能的实现方式,其中,当所述视频的类型为实时视频时,所述装置还包括:
[0047]第一添加模块,用于从所述实时视频中获取所述实时视频的编码信息、解码信息及供应商标识;将所述编码信息、解码信息及所述供应商标识添加到所述当前帧的帧索引信息中;或者,将所述编码信息、解码信息及所述供应商标识添加到所述帧索引文件中。
[0048]结合第三方面的第一种可能的实现方式,本发明实施例提供了上述第三方面的第三种可能的实现方式,其中,所述装置还包括:
[0049]第二添加模块,用于在所述当前帧的帧类型为P帧或B帧时,获取所述当前帧的关键帧位置,将所述关键帧位置添加到所述当前帧的帧索引信息中,所述关键帧位置为位于所述当前帧之前最近的I帧的位置;和/或,用于在所述当前帧中包含用户标记信息时,获取所述用户标记信息及所述用户标记信息的长度,将所述用户标记信息及所述用户标记信息的长度添加到所述当前帧的帧索引信息中。
[0050]结合第三方面,本发明实施例提供了上述第三方面的第四种可能的实现方式,其中,所述装置还包括:
[0051]图片存储模块,用于接收待存储的图片,将预设数量的图片组成图片组;获取所述图片组中每个图片的标识及每个图片在所述图片组中的位置;将每个所述图片的标识及位置组成所述图片组对应的图片索引文件;将所述图片索引文件和所述图片组存储到所述视频存储系统中。
[0052]结合第三方面,本发明实施例提供了上述第三方面的第五种可能的实现方式,其中,所述存储模块,用于从所述视频中获取所述视频的视频标识,在视频存储系统中存储所述视频标识、所述帧索引文件和所述视频的对应关系,所述视频存储系统包括分布式文件系统、存储服务器和第三方存储设备。
[0053]第四方面,本发明实施例提供了一种视频搜索装置,所述装置包括:
[0054]接收模块,用于接收用户的视频播放请求,所述视频播放请求包括所述用户欲播放视频的视频标识和视频帧信息,所述视频帧信息包括以下一种或多种:视频帧的时间戳、时间偏移量和数据偏移量;
[0055]获取模块,用于根据所述视频标识、所述视频帧信息和视频存储系统存储的帧索引文件,从所述视频存储系统存储的视频中获取所述视频帧信息对应的视频帧的数据;
[0056]提供模块,用于将获取的所述视频帧的数据提供给所述用户。
[0057]结合第四方面,本发明实
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1