CN102325244A - 按时间快速定位录像的方法、录像存储控制装置及定位装置 - Google Patents
按时间快速定位录像的方法、录像存储控制装置及定位装置 Download PDFInfo
- Publication number
- CN102325244A CN102325244A CN201110265837A CN201110265837A CN102325244A CN 102325244 A CN102325244 A CN 102325244A CN 201110265837 A CN201110265837 A CN 201110265837A CN 201110265837 A CN201110265837 A CN 201110265837A CN 102325244 A CN102325244 A CN 102325244A
- Authority
- CN
- China
- Prior art keywords
- video recording
- frame
- frame information
- video
- memory space
- 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
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明公开按时间快速定位录像的方法,录像时,分配录像存储空间和索引里的录像记录,录像记录中记录录像存储空间名称、录像开始时间、录像开始偏移、I帧信息开始偏移,在录像存储空间中从录像开始偏移位置顺序写入帧数据,若为I帧,从I帧信息开始偏移位置倒序写入I帧信息,结束时在录像记录中记录录像结束时间、录像大小、I帧信息大小;定位录像时,根据待定位录像的时间点,找索引里含时间点的录像记录,获取录像存储空间名称和I帧信息开始偏移,读到录像存储空间的I帧信息开始偏移位置,倒序读I帧信息,匹配时间点,定位到I帧信息中I帧文件偏移的录像位置。本发明还公开按时间快速定位录像的装置。本发明可提高按时间定位录像的速度。
Description
技术领域
本发明涉及数据存储技术,尤其涉及按时间快速定位录像的方法、录像存储控制装置及定位装置。
背景技术
录像的目的在于事后对录像进行查看分析,其中一个很重要的需求就是按时间定位到希望查看的时间点,目前一般在录像前,先要预留出录像的存储空间,并且创建索引文件。
预留出录像的存储空间,是指根据用户实际需要,预先分配磁盘的一部分空间用于存储录像数据,可以有效预防由于磁盘空间不足引起的问题。存储的录像数据包括录像和索引文件,其中,索引文件中各条录像记录与各个录像一一对应。索引文件一般占用的空间很小,可以根据实际情况估计一个容量值即可。
录像存储空间的容量以及录像存储空间的数量也是根据用户的实际需要进行预先设定,例如:假设磁盘是40G,想全部用于录像,为方便管理,可以将磁盘的容量等分,每个录像存储空间设定为256M,则录像存储空间的个数=(40G-索引文件大小)/256M。然后用直接调用操作系统的API接口,创建这么多录像存储空间,每个录像存储空间的内容初始化时写为0。
录像前,预先创建索引文件,索引文件包含多条录像记录,每条录像记录的内容均为0,当有录像请求时,将内容为0的录像记录分配给所述录像请求来记录录像的信息。录像记录的条数根据预分配的索引文件的大小和每条录像记录的大小而定,即索引文件的大小等于索引文件中每条已记录录像信息的录像记录的大小乘以录像记录的条数,依此来确定录像记录条数并预先创建空白录像记录。例如:若索引文件的容量最大支持10000条录像记录,那么索引文件就会有10000条录像记录,每条录像记录的内容初始均为0.
当有录像请求时,分配有空余容量的录像存储空间,同时,在索引文件中按顺序分配一条空白的录像记录。所述录像记录在录像开始时记录录像存储空间名称、录像开始时间。
录像时,编码设备传输过来的帧数据就可以写入上述分配的录像存储空间中。待录像完成后,在索引文件里的录像记录中记录录像结束时间。
其中,录像存储空间名称为预分配的录像存储空间的名称。一个预分配的录像存储空间存储一个或多个录像,因此,当一个录像存储空间存储多个录像时,记录所述多个录像信息的录像记录的录像存储空间名称是相同的,均为所述录像存储空间的名称。
按时间定位到希望查看的时间点时,先根据所述时间点查找到索引文件里包含该时间点的录像开始时间和录像结束时间形成的时间段,再根据所述时间段找到索引文件里对应的录像记录,根据录像记录中的录像存储空间名称读取对应的录像存储空间,即根据录像的封装格式将录像一帧帧地解析出来,将解析出来的I帧的时间戳与希望查看的时间点进行对比,才能定位成功,即定位到与用户希望查看的时间点相同或最接近的时间点的I帧。
录像的数据结构,如图6所示,可以看到,录像是由各种类型的帧数据组成的,例如I帧、B帧、P帧等等,其中,I帧是关键帧,只有参考该类型帧,播放器才能把其它类型的帧数据解析成完整的录像图像。
如图6所示,在一段录像中,一帧帧的数据是连在一起的,且每一帧的大小不是固定的。播放时,必须要找到I帧才能播放,定位的过程,其实就是找I帧的过程。如果要找到I帧,只能一个字节一个字节地判断,以找到I帧的标识字段。当录像比较大时,搜索I帧的时间会比较长,从而导致按时间定位录像的速度比较慢。
发明内容
有鉴于此,本发明提出一种按时间快速定位录像的录像存储控制方法,可提高按时间定位录像的速度。
本发明的另一目的是提出一种按时间快速定位录像的录像定位方法,可提高按时间定位录像的速度。
本发明同时提出了一种按时间快速定位录像的录像存储控制装置,可提高按时间定位录像的速度。
本发明还提出了一种按时间快速定位录像的录像定位装置,可提高按时间定位录像的速度。
为达到上述目的,本发明实施例的技术方案是这样实现的:
一种按时间快速定位录像的录像存储控制方法,写入录像时,包括以下步骤:
S1、分配有空余容量的录像存储空间,在索引文件中分配空白的录像记录,在所述录像记录中记录录像存储空间名称、录像开始时间、录像开始偏移、I帧信息开始偏移;
S2、判断是否接收到帧数据,若是,在所述录像存储空间中从录像开始偏移位置开始顺序写入帧数据,然后执行步骤S4,否则,执行步骤S3;
S3、判断是否已停止录像,若是,在录像记录中记录录像结束时间、录像大小、写入的帧数据中所包含的I帧信息大小,否则,执行步骤S2;
S4、判断所述帧数据中的任意帧是否为I帧,若是,在所述录像存储空间中从I帧信息开始偏移位置开始倒序写入该I帧信息,返回执行步骤S2,否则,执行步骤S2;所述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帧信息;
时间匹配模块,用于倒序读取I帧信息,读取所述I帧信息中的任意一条时,判断该条I帧信息中的时间点与待定位录像的时间点是否匹配,若匹配,请求定位模块定位,否则,判断是否还有I帧信息,若有,读取下一条I帧信息;
定位模块,用于定位到I帧信息中I帧文件偏移所指示的录像存储空间位置。
本发明的有益效果为,通过索引文件里的录像记录中记录的I帧信息开始偏移,读取到录像存储空间的对应I帧信息位置,通过I帧信息中的I帧文件偏移迅速地定位到录像存储空间的对应位置,可极大地提高按时间定位录像的速度。
附图说明
图1为本发明实施例的写入录像的方法流程图;
图2为本发明实施例的写入录像的方法流程图;
图3为本发明实施例的按时间定位录像的方法流程图;
图4为本发明实施例的录像存储控制装置结构图;
图5为本发明实施例的录像定位装置结构图;
图6为本发明实施例的录像的数据结构示意图;
图7为本发明实施例的录像存储空间的内容示意图;
图8为本发明实施例的索引文件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下通过具体实施例并参见附图,对本发明进行详细说明。
相对于现有技术,本发明在写入录像数据时于索引文件里的录像记录中不仅记录了录像的开始时间和结束时间,而且还记录了录像开始偏移、录像大小、I帧信息开始偏移、I帧信息大小;
同时,预分配的录像存储空间不仅写入了录像的帧数据,而且写入了录像的I帧信息,I帧信息包括I帧文件偏移和I帧时间点;
从而在按时间定位录像时,可以利用索引文件里的录像记录中记录的I帧信息开始偏移读取到录像存储空间的对应I帧信息位置,从所述I帧信息位置倒序读取I帧信息,将I帧信息中的时间点与待定位录像的时间点进行对比,找到最接近待定位录像的时间点的I帧信息,通过I帧信息中的I帧文件偏移迅速定位到录像存储空间对应的录像位置,极大地提高了按时间定位录像的速度。
如图7所示,本发明中预分配的录像存储空间用于存放编码设备传输过来的帧数据和所述帧数据的I帧信息。
所述I帧信息如图7所示,包括I帧文件偏移和I帧时间点,从录像存储空间的末尾开始倒序记录。每个I帧信息的大小是一样的。其中,I帧文件偏移记录的是该I帧视频数据在预分配的录像存储空间中的录像位置。例如:预分配的256M录像存储空间中的某条I帧信息的I帧文件偏移为10M,从所述I帧到下一个I帧,录像移动了1M,则下一条I帧信息的I帧文件偏移为11M,通过此信息,可定位到256M录像存储空间的11M位置,即通过I帧文件偏移可以方便地定位到录像存储空间的对应位置。
索引文件的结构如图8所示,索引文件中各个录像记录中记录的内容包括:录像存储空间名称、录像开始时间、录像结束时间、录像开始偏移、录像大小、I帧信息开始偏移、I帧信息大小。
一个录像存储空间中包含1个或多个录像,针对所述录像中的任意录像,开始录像时,在索引文件里的录像记录中记录该录像的录像存储空间名称、录像开始时间、录像开始偏移、I帧信息开始偏移,待录像结束时,在录像记录中记录该录像的录像大小、I帧信息大小、录像结束时间。
录像存储空间名称与预分配的录像存储空间一一对应,若一个录像存储空间中包含多个录像,则与所述多个录像对应的录像记录中的录像存储空间名称是相同的。
例如,一个256M的录像存储空间1.mp4中包括录像A和录像B,在录像记录A中记录的内容为:录像存储空间名称=1.mp4,A录像开始时间、A录像开始偏移、A的I帧信息开始偏移、A录像结束时间,A录像大小,A的I帧信息大小。录像记录B中记录的内容为:录像存储空间名称=1.mp4,B录像开始时间、B录像开始偏移、B的I帧信息开始偏移、B录像结束时间,B录像大小,B的I帧信息大小。
与录像存储空间中任意录像对应的录像记录中,记录的录像大小为该录像写入录像存储空间的帧数据大小。同样,I帧信息大小为该录像写入录像存储空间的I帧信息大小。录像大小和I帧信息大小的初始化值均为0M。
录像开始偏移,指录像在预分配的录像存储空间的开始位置。一个录像存储空间往往可能会录多个录像,有了录像开始偏移,就可以知道多个录像中的任意录像是从这个录像存储空间的什么位置开始录像的。
I帧信息开始偏移,指I帧信息在预分配的录像存储空间中的开始位置。
在录像存储空间中从录像开始偏移位置开始顺序写入帧数据,从I帧信息开始偏移位置开始倒序写入I帧信息。录像开始偏移的初始化值为录像存储空间的开始位置,即为0M位置,I帧信息开始偏移的初始化值为录像存储空间的末尾位置。
与录像存储空间中任意录像对应的录像记录中,录像开始偏移等于上一次的录像开始偏移加上上一次的录像大小,I帧信息开始偏移等于上一次的I帧信息开始偏移减去上一次的I帧信息大小。
以一个预分配大小为256M的录像存储空间为例,录像存储空间的内容结构如图7所示,若在图中所示的256M录像存储空间中写入第一个录像的帧数据和I帧信息,则该录像的录像开始偏移为0M,I帧信息开始偏移为256M,该录像的帧数据从0M位置开始顺序写入,I帧信息从256M位置开始倒序写入。假设第一个录像录制结束,帧数据已写入100M,I帧信息已写入20M,则在同一录像存储空间中继续写入第二个录像时,第二个录像的录像开始偏移为100M,帧数据将从录像存储空间中100M的位置继续顺序写入,其I帧信息开始偏移则为256M-20M=236M,因此,I帧信息将从录像存储空间中236M的位置继续倒序写入。
录像开始时间和录像结束时间的格式根据用户需要设定,可精确到秒,比如,2011-7-512:59:59,也可精确到毫秒。
若一次将要写入录像存储空间的帧数据和I帧信息容量没有超过该录像存储空间的容量,写入录像的流程如图1所示,包括以下步骤:
步骤101:分配有空余容量的录像存储空间,在索引文件中分配空白的录像记录。
当有录像请求时,先分配一个有空余容量的录像存储空间用于写入请求录像的录像帧数据和I帧信息,用户可按实际需要进行分配,例如,可按录像存储空间剩余容量从小到大的顺序来分配录像存储空间,假设有两个预分配的256M的录像存储空间1.mp4和2.mp4,1.mp4已经写满,按顺序下一个录像存储空间是2.mp4,且2.mp4还有空余的容量,2.mp4中上一个录像的结束位置在2.mp4的200M位置,那么就可以将录像存储空间2.mp4分配给当前的录像请求。
而且,本发明中不会将正在录像的录像存储空间分配给当前的录像请求,也就是说,一个录像存储空间不能同时用于两个或两个以上录像的信息的写入。
步骤102:在所述录像记录中记录录像存储空间名称、录像开始时间、录像开始偏移、I帧信息开始偏移。
若录像是所述录像存储空间的第一个录像,则录像开始偏移的初始值为0M,I帧信息开始偏移的初始值为该录像存储空间的末尾位置,表示I帧信息从该录像记录的末尾开始记录。
若录像不是所述录像记录的第一个录像,则录像开始偏移为上一次的录像开始偏移加上上一次的录像大小,I帧信息开始偏移为上一次的I帧信息开始偏移减去上一次的I帧信息大小。
步骤103:判断是否接收到帧数据,若是,执行步骤105,否则,执行步骤104。
步骤104:是否已停止录像,若是,执行步骤108,否则,执行步骤103。
如果用户停止录像,码流就会终止,接收不到帧数据了,此时,需要判断是否已经停止录像,才能退出录像过程。
步骤105:在所述录像存储空间中从录像开始偏移位置开始顺序写入帧数据。
直接调用系统文件操作的API接口即可将帧数据写入录像存储空间,一般的linux和windows系统都有该功能接口。
优选地,为了防止在录像突然结束而没有记录录像大小,从而导致下一次录像时帧数据不知道从录像存储空间的何处开始写入的问题,步骤105进一步包括,写入所述帧数据的任意一帧时,更新录像记录中的录像大小。即当前录像大小=上一次的录像大小+当前写入的一帧数据的大小。
步骤106:判断所述帧数据中的任意帧是否为I帧,若是,执行步骤107,否则,执行步骤103。
步骤107:在所述录像存储空间中从I帧信息开始偏移位置开始倒序写入该I帧信息,执行步骤103。
在录像存储空间中写入帧数据和I帧信息时,由于帧数据已经从前往后顺序写了,一般无法预料录像什么时候停止,即无法预料一次录像的帧数据会写到哪里结束,因此,只能从后往前写入I帧信息,当录像存储空间中的帧数据和I帧信息相遇时,再换另外一个预分配的录像存储空间,这样可以最大程度地利用磁盘空间。
优选地,为了防止在录像突然结束而没有记录I帧信息大小,从而导致下一次录像时I帧信息不知道从录像存储空间的何处开始写入的问题,步骤107进一步包括,写入所述I帧信息的任意一条时,更新录像记录中的I帧信息大小。即当前I帧信息大小=上一次的I帧信息大小+当前写入的一条I帧信息的大小。
步骤108:在录像记录中记录录像结束时间、录像大小、写入的帧数据中所包含的I帧信息大小。
从上述步骤101~108可知,若一次将要写入录像存储空间的帧数据和I帧信息容量没有超过该录像存储空间的容量,则不断地重复执行步骤103~107,直到帧数据接收完毕,在所述录像记录中记录录像结束时间、录像大小、I帧信息大小。
若一次将要写入录像存储空间的帧数据和I帧信息容量超过该录像存储空间的容量,写入录像的流程如图2所示,包括以下步骤:
步骤201~208,同本发明实施例的步骤101~108。
步骤209:判断录像记录中的录像大小与I帧信息大小之和是否等于录像存储空间的容量,若不等于,执行步骤203,若等于,执行步骤210。
步骤210:在所述录像记录中记录录像结束时间、录像大小、I帧信息大小,执行步骤201.
从上述步骤201~210可知,若一次写入录像存储空间的帧数据和I帧信息容量超过该录像存储空间的容量,则当写入的帧数据和I帧信息容量等于所述录像存储空间容量时,在所述录像记录中记录录像结束时间,对于超出所述录像存储空间容量的帧数据和I帧信息,相当于重新开始一个新的录像的写入,即重新分配一个有空余容量的录像存储空间,并在索引文件里重新分配一条空白的录像记录,开始新的一次将超出的帧数据和I帧信息写入另一录像存储空间的过程。
按时间定位录像的流程如图3所示,包括以下步骤:
步骤301:根据待定位录像的时间点,查找索引文件里包含所述时间点的时间段的录像记录。
索引文件里每个录像记录都记录了录像开始时间和录像结束时间,每个录像记录的录像开始时间和录像结束时间形成一个时间段,将所述时间段与待定位录像的时间点进行对比,直到找到包含待定位录像的时间点的时间段,从而也就找到了对应的录像记录。
步骤302:获取所述录像记录中的录像存储空间名称和I帧信息开始偏移。
录像记录中的录像存储空间名称,就是与录像记录对应的录像所属的录像存储空间的名称,I帧信息开始偏移指所述录像在该录像所属的录像存储空间写入I帧信息的开始位置。
步骤303:读取与所述录像存储空间名称对应的录像存储空间并定位到该录像存储空间的I帧信息开始偏移位置。
例如,若录像存储空间名称为1.mp4,I帧信息开始偏移位置为230M,读取录像存储空间1.mp4,并定位到1.mp4的230M位置。
步骤304:倒序读取I帧信息,读取所述I帧信息中的任意一条时,判断该条I帧信息中的时间点与待定位录像的时间点是否匹配,是,执行步骤306,否,执行步骤305。
所述I帧信息中的时间点与待定位录像的时间点匹配的方法包括:取待定位录像的时间点之前的I帧信息,将所述I帧信息中的时间点以及待定位录像的时间点均转换为数值,取所述I帧信息的时间点的数值与待定位录像的时间点的数值之差的最小值所对应的I帧信息。
也就是说,匹配是指I帧信息中的时间点与待定位录像的时间点相同,或I帧信息中的时间点最接近待定位录像的时间点、且位于待定位录像的时间点之前。因为相邻的I帧之间可能存在B帧、P帧,待定位录像的时间点有时可能无法恰好与I帧的时间点相同,这时,为了保证待定位录像的时间点的录像能够看到,只能查找位于待定位录像的时间点之前、与待定位时间最接近的时间点了。
步骤305:判断是否还有I帧信息,是,执行步骤304,否,提醒定位失败,执行步骤308。
步骤306:定位到I帧信息中I帧文件偏移所指示的录像存储空间位置。
同一条I帧信息中的I帧文件偏移是与所述I帧的时间点一一对应的,I帧文件偏移指示所述I帧在录像存储空间中的录像位置,因此,通过I帧信息中的I帧文件偏移,就可定位到录像存储空间的对应录像位置。
步骤307:提醒定位失败。
步骤308:定位结束。
其中,步骤305和步骤307为优选步骤,用于应对意外的发生,对于解决本发明的技术问题而言并非是必不可少的,可省略。
本发明实施例的录像存储控制装置结构如图4所示,一种按时间快速定位录像的录像存储控制装置,包括:索引控制模块401、帧数据存储控制模块402、I帧信息存储控制模块403,其中:
索引控制模块401,用于为当前的录像请求分配一个有空余容量的录像存储空间,并在索引文件里分配一条空白的录像记录,在所述录像记录中记录录像存储空间名称、录像开始时间、录像开始偏移、I帧信息开始偏移。请求帧数据存储控制模块402判断是否接收到帧数据;
接收帧数据存储控制模块402发送的停止录像信息,记录录像结束时间、录像大小、I帧信息大小。
帧数据存储控制模块402,用于判断是否接收到帧数据,当接收到帧数据时,在录像存储空间中从录像开始偏移位置开始顺序写入帧数据,判断所述帧数据中的任意一帧是否为I帧,若是,请求I帧信息存储控制模块403写入该条I帧信息,否则,继续判断是否接收到帧数据;
当没有接收到帧数据时,判断是否已停止录像,若是,通知索引控制模块401,否则,继续判断是否接收到帧数据。
I帧信息存储控制模块403,用于接收帧数据存储控制模块402的I帧信息写入请求,在录像存储空间中从I帧信息开始偏移位置开始倒序写入该条I帧信息,请求帧数据存储控制模块402继续判断是否接收到帧数据。
优选地,所述帧数据存储控制模块402,进一步用于在写入所述帧数据的任意一帧时,将所述任意一帧的帧数据大小发送给索引控制模块401;
所述I帧信息存储控制模块403,进一步用于在写入该条I帧信息时,将该条I帧信息的大小发送给索引控制模块401;
所述索引控制模块,用于接收帧数据存储控制模块402发送的所述任意一帧的帧数据大小,更新录像大小为上一次的录像大小加上所述任意一帧的帧数据大小。接收I帧信息存储控制模块403发送的I帧信息大小,更新I帧信息大小为上一次的I帧信息大小加上接收到的该条I帧信息大小。
优选地,所述I帧信息存储控制模块403,进一步用于判断录像记录中的录像大小与I帧信息大小之和是否等于录像存储空间的容量,若是,请求索引控制模块401记录录像结束信息,否则,请求帧数据存储控制模块402继续判断是否接收到帧数据;
所述索引控制模块401,接收到I帧信息存储控制模块403的记录录像结束信息的请求,记录录像结束时间、录像大小、I帧信息大小;
所述帧数据存储控制模块402,接收到I帧信息存储控制模块403的继续判断是否接收到帧数据的请求,继续判断是否接收到帧数据。
本发明实施例的录像定位装置结构如图5所示,一种按时间快速定位录像的录像定位装置,包括:索引读取模块501、时间匹配模块502、定位模块503,其中:
索引读取模块501,用于根据待定位录像的时间点,查找索引文件中包含所述时间点的时间段的录像记录,获取所述录像记录中的录像存储空间名称和I帧信息开始偏移,读取与所述录像存储空间名称对应的录像存储空间并定位到该录像存储空间的I帧信息开始偏移位置,请求时间匹配模块502读取I帧信息。
时间匹配模块502,用于倒序读取I帧信息,读取所述I帧信息中的任意一条时,判断该条I帧信息中的时间点与待定位录像的时间点是否匹配,若匹配,请求定位模块503定位,否则,判断是否还有I帧信息,若有,读取下一条I帧信息。
定位模块503,用于定位到I帧信息中I帧文件偏移所指示的录像存储空间位置。
所述时间匹配模块502,进一步用于在判断没有I帧信息时,提醒定位失败。
利用上述按时间定位录像的方法、装置,不用对录像数据进行帧解析,就可按时间定位到与待定位时间匹配的录像存储空间位置,提高了按时间定位录像的速度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (11)
1.一种按时间快速定位录像的录像存储控制方法,其特征在于,写入录像时,包括以下步骤:
S1、分配有空余容量的录像存储空间,在索引文件中分配空白的录像记录,在所述录像记录中记录录像存储空间名称、录像开始时间、录像开始偏移、I帧信息开始偏移;
S2、判断是否接收到帧数据,若是,在所述录像存储空间中从录像开始偏移位置开始顺序写入帧数据,然后执行步骤S4,否则,执行步骤S3;
S3、判断是否已停止录像,若是,在录像记录中记录录像结束时间、录像大小、写入的帧数据中所包含的I帧信息大小,否则,执行步骤S2;
S4、判断所述帧数据中的任意帧是否为I帧,若是,在所述录像存储空间中从I帧信息开始偏移位置开始倒序写入该I帧信息,返回执行步骤S2,否则,执行步骤S2;所述I帧信息包括I帧文件偏移和I帧时间点。
2.根据权利要求1所述方法,其特征在于,所述步骤S4之后进一步包括:
判断录像记录中的录像大小与I帧信息大小之和是否等于录像存储空间的容量,若不等于,执行步骤S2,若等于,在所述录像记录中记录录像结束时间、录像大小、I帧信息大小,执行步骤S1。
3.根据权利要求1所述方法,其特征在于,所述步骤S2进一步包括:写入所述帧数据的任意一帧时,更新录像记录中的录像大小为上一次的录像大小加上当前写入的一帧数据的大小;
所述步骤S4进一步包括:写入所述I帧信息的任意一条时,更新录像记录中的I帧信息大小为上一次的I帧信息大小加上当前写入的一条I帧信息的大小。
4.一种按时间快速定位录像的录像定位方法,其特征在于,按时间定位录像时,包括以下步骤:
根据待定位录像的时间点,查找索引文件中包含所述时间点的时间段的录像记录,获取所述录像记录中的录像存储空间名称和I帧信息开始偏移,读取与所述录像存储空间名称对应的录像存储空间并定位到该录像存储空间的I帧信息开始偏移位置,倒序读取I帧信息;
读取所述I帧信息中的任意一条时,判断该条I帧信息中的时间点与待定位录像的时间点是否匹配,若是,定位到I帧信息中I帧文件偏移所指示的录像存储空间位置,否则,读取下一条I帧信息,直至所有I帧信息读取完毕。
5.根据权利要求4所述的方法,其特征在于,所述读取下一条I帧信息之前还包括:判断是否还有I帧信息,若没有,提醒定位失败,若有,读取下一条I帧信息。
6.根据权利要求4所述的方法,其特征在于,所述I帧信息中的时间点与待定位录像的时间点匹配,包括:
取待定位录像的时间点之前的I帧信息,将所述I帧信息中的时间点以及待定位录像的时间点均转换为数值,取所述I帧信息的时间点的数值与待定位录像的时间点的数值之差的最小值所对应的I帧信息。
7.一种按时间快速定位录像的录像存储控制装置,其特征在于,包括:索引控制模块、帧数据存储控制模块、I帧信息存储控制模块,其中:
索引控制模块,用于为当前的录像请求分配有空余容量的录像存储空间,并在索引文件中分配空白的录像记录,在所述录像记录中记录录像存储空间名称、录像开始时间、录像开始偏移、I帧信息开始偏移,请求帧数据存储控制模块判断是否接收到帧数据,接收帧数据存储控制模块发送的停止录像信息,记录录像结束时间、录像大小、以及I帧信息大小;
帧数据存储控制模块,用于判断是否接收到帧数据,当接收到帧数据时,在录像存储空间中从录像开始偏移位置开始顺序写入帧数据,判断所述帧数据中的任意一帧是否为I帧,若是,请求I帧信息存储控制模块写入该条I帧信息,否则,继续判断是否接收到帧数据;当没有接收到帧数据时,判断是否已停止录像,若是,通知索引控制模块,否则,继续判断是否接收到帧数据;
I帧信息存储控制模块,用于接收帧数据存储控制模块的I帧信息写入请求,在录像存储空间中从I帧信息开始偏移位置开始倒序写入该条I帧信息,请求帧数据存储控制模块继续判断是否接收到帧数据。
8.根据权利要求7所述的装置,其特征在于,所述帧数据存储控制模块,进一步用于在写入所述帧数据的任意一帧时,将所述任意一帧的帧数据大小发送给索引控制模块;
所述I帧信息存储控制模块,进一步用于在写入该条I帧信息时,将该条I帧信息的大小发送给索引控制模块;
所述索引控制模块,用于接收帧数据存储控制模块发送的所述任意一帧的帧数据大小,更新录像大小为上一次的录像大小加上所述任意一帧的帧数据大小;接收I帧信息存储控制模块发送的I帧信息大小,更新I帧信息大小为上一次的I帧信息大小加上接收到的该条I帧信息大小。
9.根据权利要求7所述的装置,其特征在于,所述I帧信息存储控制模块,进一步用于判断录像记录中的录像大小与I帧信息大小之和是否等于录像存储空间的容量,若是,请求索引控制模块记录录像结束信息,否则,请求帧数据存储控制模块继续判断是否接收到帧数据;
所述索引控制模块,接收到I帧信息存储控制模块的记录录像结束信息的请求,记录录像结束时间、录像大小、I帧信息大小;
所述帧数据存储控制模块,接收到I帧信息存储控制模块的请求,继续判断是否接收到帧数据。
10.一种按时间快速定位录像的录像定位装置,其特征在于,包括:索引读取模块、时间匹配模块、定位模块,其中:
索引读取模块,用于根据待定位录像的时间点,查找索引文件中包含所述时间点的时间段的录像记录,获取所述录像记录中的录像存储空间名称和I帧信息开始偏移,读取与所述录像存储空间名称对应的录像存储空间,并定位到该录像存储空间的I帧信息开始偏移位置,请求时间匹配模块读取I帧信息;
时间匹配模块,用于倒序读取I帧信息,读取所述I帧信息中的任意一条时,判断该条I帧信息中的时间点与待定位录像的时间点是否匹配,若匹配,请求定位模块定位,否则,判断是否还有I帧信息,若有,读取下一条I帧信息;
定位模块,用于定位到I帧信息中I帧文件偏移所指示的录像存储空间位置。
11.根据权利要求10所述的装置,其特征在于,所述时间匹配模块,在判断是否还有I帧信息之后进一步包括:若没有I帧信息,提醒定位失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110265837.5A CN102325244B (zh) | 2011-08-26 | 2011-08-26 | 按时间快速定位录像的方法、录像存储控制装置及定位装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110265837.5A CN102325244B (zh) | 2011-08-26 | 2011-08-26 | 按时间快速定位录像的方法、录像存储控制装置及定位装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102325244A true CN102325244A (zh) | 2012-01-18 |
CN102325244B CN102325244B (zh) | 2014-02-19 |
Family
ID=45452907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110265837.5A Active CN102325244B (zh) | 2011-08-26 | 2011-08-26 | 按时间快速定位录像的方法、录像存储控制装置及定位装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102325244B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077200A (zh) * | 2012-12-27 | 2013-05-01 | 深圳市赛为智能股份有限公司 | 一种音视频存储索引方法及装置 |
CN103279530A (zh) * | 2013-05-31 | 2013-09-04 | 携程计算机技术(上海)有限公司 | 时间序列数据的组合查询缓存的建立方法、方法及系统 |
CN103581626A (zh) * | 2013-11-04 | 2014-02-12 | 浙江宇视科技有限公司 | 一种视频监控系统及其视频存储信息记录方法 |
CN103702053A (zh) * | 2014-01-16 | 2014-04-02 | 深圳英飞拓科技股份有限公司 | 录像存储和检索方法及系统、监控系统 |
CN103780877A (zh) * | 2013-12-26 | 2014-05-07 | 深圳市华仁达技术有限公司 | 基于h264编码的海量视频数据的存储及检索方法 |
CN104240741A (zh) * | 2013-06-07 | 2014-12-24 | 杭州海康威视数字技术股份有限公司 | 视频录像中进行视频打点及查找的方法和视频录像设备 |
CN104361029A (zh) * | 2014-10-24 | 2015-02-18 | 成都亿盟恒信科技有限公司 | 一种双重索引的视频循环存储和快速检索的方法 |
CN104766618A (zh) * | 2015-04-22 | 2015-07-08 | 北京锤子数码科技有限公司 | 多媒体文件录制方法及系统、多媒体文件播放方法及系统 |
CN105338297A (zh) * | 2014-08-11 | 2016-02-17 | 杭州海康威视系统技术有限公司 | 一种视频数据存储及回放系统、装置和方法 |
CN105681714A (zh) * | 2016-02-26 | 2016-06-15 | 北京金山安全软件有限公司 | 一种视频拍摄方法、装置及电子设备 |
US20160212422A1 (en) * | 2015-01-16 | 2016-07-21 | Hangzhou Hikvision Digital Technology Co., Ltd. | Systems, Devices and Methods for Video Coding |
CN106937160A (zh) * | 2017-03-28 | 2017-07-07 | 青岛海信电器股份有限公司 | 一种针对终端的录制文件在快进快退时的显示方法和装置 |
CN106951183A (zh) * | 2017-02-27 | 2017-07-14 | 南京杰迈视讯科技有限公司 | 一种高效可靠的网络摄像机数据存储方法 |
CN103744892B (zh) * | 2013-12-23 | 2017-08-15 | 浙江宇视科技有限公司 | 一种录像锁定的方法和装置 |
WO2018137366A1 (zh) * | 2017-01-25 | 2018-08-02 | 杭州海康威视数字技术股份有限公司 | 一种硬盘数据存储方法及装置 |
CN109120885A (zh) * | 2017-06-26 | 2019-01-01 | 杭州海康威视数字技术股份有限公司 | 视频数据获取方法及装置 |
CN110139157A (zh) * | 2019-05-16 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 一种精确定位播放方法、装置、设备及介质 |
CN110874416A (zh) * | 2018-09-04 | 2020-03-10 | 深圳云天励飞技术有限公司 | 一种图像特征值存储方法、装置和电子设备 |
CN112579820A (zh) * | 2019-09-27 | 2021-03-30 | 浙江宇视科技有限公司 | 时间跳变的录像数据处理方法、装置、介质及电子设备 |
CN114979533A (zh) * | 2022-05-18 | 2022-08-30 | 青岛海信移动通信技术股份有限公司 | 一种视频录制方法、装置及终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980390A (zh) * | 2005-12-07 | 2007-06-13 | 联合信源数字音视频技术(北京)有限公司 | 支持精确定位的音视频媒体数据组织实现方法 |
CN101076111A (zh) * | 2006-11-15 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 一种获取视频流中关键帧段定位信息的方法 |
US20080104644A1 (en) * | 2006-10-31 | 2008-05-01 | Sato Youhei | Video Transferring Apparatus and Method |
US20090106288A1 (en) * | 2006-11-21 | 2009-04-23 | Bailiang Yang | Method and system for supporting media data of various coding formats |
CN101420577A (zh) * | 2008-11-07 | 2009-04-29 | 武汉烽火网络有限责任公司 | 一种多媒体数据的存储方法及精确定位回放位置的方法 |
-
2011
- 2011-08-26 CN CN201110265837.5A patent/CN102325244B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980390A (zh) * | 2005-12-07 | 2007-06-13 | 联合信源数字音视频技术(北京)有限公司 | 支持精确定位的音视频媒体数据组织实现方法 |
US20080104644A1 (en) * | 2006-10-31 | 2008-05-01 | Sato Youhei | Video Transferring Apparatus and Method |
CN101076111A (zh) * | 2006-11-15 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 一种获取视频流中关键帧段定位信息的方法 |
US20090106288A1 (en) * | 2006-11-21 | 2009-04-23 | Bailiang Yang | Method and system for supporting media data of various coding formats |
CN101420577A (zh) * | 2008-11-07 | 2009-04-29 | 武汉烽火网络有限责任公司 | 一种多媒体数据的存储方法及精确定位回放位置的方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077200A (zh) * | 2012-12-27 | 2013-05-01 | 深圳市赛为智能股份有限公司 | 一种音视频存储索引方法及装置 |
CN103279530B (zh) * | 2013-05-31 | 2016-07-27 | 上海携程商务有限公司 | 时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统 |
CN103279530A (zh) * | 2013-05-31 | 2013-09-04 | 携程计算机技术(上海)有限公司 | 时间序列数据的组合查询缓存的建立方法、方法及系统 |
CN104240741A (zh) * | 2013-06-07 | 2014-12-24 | 杭州海康威视数字技术股份有限公司 | 视频录像中进行视频打点及查找的方法和视频录像设备 |
CN104240741B (zh) * | 2013-06-07 | 2017-06-16 | 杭州海康威视数字技术股份有限公司 | 视频录像中进行视频打点及查找的方法和视频录像设备 |
CN103581626A (zh) * | 2013-11-04 | 2014-02-12 | 浙江宇视科技有限公司 | 一种视频监控系统及其视频存储信息记录方法 |
CN103744892B (zh) * | 2013-12-23 | 2017-08-15 | 浙江宇视科技有限公司 | 一种录像锁定的方法和装置 |
CN103780877A (zh) * | 2013-12-26 | 2014-05-07 | 深圳市华仁达技术有限公司 | 基于h264编码的海量视频数据的存储及检索方法 |
CN103702053A (zh) * | 2014-01-16 | 2014-04-02 | 深圳英飞拓科技股份有限公司 | 录像存储和检索方法及系统、监控系统 |
CN105338297A (zh) * | 2014-08-11 | 2016-02-17 | 杭州海康威视系统技术有限公司 | 一种视频数据存储及回放系统、装置和方法 |
CN105338297B (zh) * | 2014-08-11 | 2019-03-12 | 杭州海康威视系统技术有限公司 | 一种视频数据存储及回放系统、装置和方法 |
CN104361029A (zh) * | 2014-10-24 | 2015-02-18 | 成都亿盟恒信科技有限公司 | 一种双重索引的视频循环存储和快速检索的方法 |
CN104361029B (zh) * | 2014-10-24 | 2018-04-06 | 成都亿盟恒信科技有限公司 | 一种双重索引的视频循环存储和快速检索的方法 |
US20160212422A1 (en) * | 2015-01-16 | 2016-07-21 | Hangzhou Hikvision Digital Technology Co., Ltd. | Systems, Devices and Methods for Video Coding |
US10575009B2 (en) * | 2015-01-16 | 2020-02-25 | Hangzhou Hikvision Digital Technology Co., Ltd. | Systems, devices and methods for video coding |
CN104766618A (zh) * | 2015-04-22 | 2015-07-08 | 北京锤子数码科技有限公司 | 多媒体文件录制方法及系统、多媒体文件播放方法及系统 |
CN104766618B (zh) * | 2015-04-22 | 2018-01-23 | 北京锤子数码科技有限公司 | 多媒体文件录制方法及系统、多媒体文件播放方法及系统 |
CN105681714A (zh) * | 2016-02-26 | 2016-06-15 | 北京金山安全软件有限公司 | 一种视频拍摄方法、装置及电子设备 |
WO2018137366A1 (zh) * | 2017-01-25 | 2018-08-02 | 杭州海康威视数字技术股份有限公司 | 一种硬盘数据存储方法及装置 |
CN106951183A (zh) * | 2017-02-27 | 2017-07-14 | 南京杰迈视讯科技有限公司 | 一种高效可靠的网络摄像机数据存储方法 |
CN106937160B (zh) * | 2017-03-28 | 2019-12-24 | 青岛海信电器股份有限公司 | 一种针对终端的录制文件在快进快退时的显示方法和装置 |
CN106937160A (zh) * | 2017-03-28 | 2017-07-07 | 青岛海信电器股份有限公司 | 一种针对终端的录制文件在快进快退时的显示方法和装置 |
CN109120885A (zh) * | 2017-06-26 | 2019-01-01 | 杭州海康威视数字技术股份有限公司 | 视频数据获取方法及装置 |
CN110874416A (zh) * | 2018-09-04 | 2020-03-10 | 深圳云天励飞技术有限公司 | 一种图像特征值存储方法、装置和电子设备 |
CN110874416B (zh) * | 2018-09-04 | 2022-06-24 | 深圳云天励飞技术有限公司 | 一种图像特征值存储方法、装置和电子设备 |
CN110139157A (zh) * | 2019-05-16 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 一种精确定位播放方法、装置、设备及介质 |
CN110139157B (zh) * | 2019-05-16 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 一种精确定位播放方法、装置、设备及介质 |
CN112579820A (zh) * | 2019-09-27 | 2021-03-30 | 浙江宇视科技有限公司 | 时间跳变的录像数据处理方法、装置、介质及电子设备 |
CN112579820B (zh) * | 2019-09-27 | 2023-03-24 | 浙江宇视科技有限公司 | 时间跳变的录像数据处理方法、装置、介质及电子设备 |
CN114979533A (zh) * | 2022-05-18 | 2022-08-30 | 青岛海信移动通信技术股份有限公司 | 一种视频录制方法、装置及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN102325244B (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102325244A (zh) | 按时间快速定位录像的方法、录像存储控制装置及定位装置 | |
US6021250A (en) | Coded data control device | |
CN100551043C (zh) | 一种快进快退播放视频数据的方法和流媒体服务器 | |
US8571755B2 (en) | Distributed vehicle event recorder systems having a portable memory data transfer system | |
CN101872639B (zh) | 在数字硬盘录像机上存储及检索图片数据的方法及装置 | |
CN105120321A (zh) | 一种视频搜索方法、视频存储方法和相关装置 | |
KR20010001197A (ko) | 사용자 프로파일을 이용한 비디오 분할 시청 시스템 | |
CN101568023A (zh) | 一种自动编排节目单的方法及装置 | |
CN101272470A (zh) | 定时记录管理装置、定时记录管理方法和记录器 | |
US6236663B1 (en) | Information reproduction apparatus and information reproduction method | |
CN111797172B (zh) | 数据迁移方法、装置、设备、分布式系统及存储介质 | |
CN101753936B (zh) | 一种视频监控系统的存储空间的配置方法和视频服务器 | |
CN101477575A (zh) | 一种多媒体信息存储和播放方法及其装置 | |
CN103546698A (zh) | 一种移动终端录制视频保存方法和装置 | |
CN102802025A (zh) | 视频-声音文件更新系统和视频-声音文件更新方法 | |
CN106371950B (zh) | 一种实现raid级别转换的方法及装置 | |
US20130064523A1 (en) | Video server, video recording method and method for controlling rebuilding process | |
CN101902556A (zh) | 一种数字电视机顶盒的数据块分区定位方法 | |
CN103761194A (zh) | 一种内存管理方法及装置 | |
CN101589381B (zh) | 再现内容的方法和设备 | |
US8369684B2 (en) | Data processing apparatus and data processing method | |
EP2109315B1 (en) | Video server and file management method | |
CN100525420C (zh) | 记录方法和记录装置 | |
US20080075424A1 (en) | Methods for a digital video recorder to use other storage, program and tuner resources | |
CN102446527A (zh) | 记录设备、成像记录设备、记录方法和程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |