一种基于帧结构特性的监控视频修复方法
阅读说明:本技术 一种基于帧结构特性的监控视频修复方法 (A kind of monitor video restorative procedure based on frame structure features ) 是由 梁效宁 许超明 何丽萍 朱星海 于 2019-08-30 设计创作,主要内容包括:本发明公开了一种基于帧结构特性的监控视频修复方法,其特征在于包括以下步骤:S100:加载并读取磁盘首扇区的内容;S200:解析磁盘管理页中与监控视频相关的各个域并获取各个域的值,包括页大小、数据页管理项项数、数据页管理项偏移地址、磁盘首次录入监控视频的日期时间;S300:解析数据页,数据页包含数据页描述信息、数据页管理表、数据页帧管理表以及监控视频;S400:解析监控视频的帧数据;S500:获取并播放监控视频。(The invention discloses a kind of monitor video restorative procedure based on frame structure features, it is characterised in that the following steps are included: S100: loading and the content of the sector reading disk head;S200: each domain relevant to monitor video and obtaining the value in each domain in parsing disk management page, the date-time including page size, data page management item item number, data page management item offset address, disk typing monitor video for the first time;S300: parsing data page, data page include data page description information, data chunk management table, data page frame management table and monitor video;S400: the frame data of monitor video are parsed;S500: obtaining and plays monitor video.)
技术领域
本发明属于电子数据恢复与取证领域,涉及一种监控视频的修复方法,尤其涉及一种基于帧结构特性的监控视频修复方法。
背景技术
目前市场的视频监控机厂家有很多,针对每个厂家的监控机数据存储结构都有其特定的数据存储方式。本专利针对基于帧结构特性的监控视频修复提出有效的方法,从而保证提取出来的视频数据完整、清晰、全面。
现有技术中,没有一种基于帧结构特性的监控视频修复方法,且现有技术在视频数据的展示存在如下弊端:
1.无法快速识别监控机数据录制磁盘中的视频数据。
2.数据分析能力不够,对于数据的分类不够明确,视频数据展示困难。
3.提取的视频数据存在展示画面不够清晰的问题。
综上所述,急需一种操作方便、视频数据提取效率高、视频播放效果好的监控视频修复方法。
发明内容
本发明针对现有技术的不足问题,提出了一种基于帧结构特性的监控视频修复方法:通过解析监控视频的磁盘管理页的数据结构、磁盘数据页的数据结构及磁盘数据页视频帧的数据结构,找到并提取视频数据,从而生成可播放的视频,达到提取监控视频的目的。
为便于描述,本发明可能包含如下术语:
管理页:用于视频监控数据存储介质(磁盘、U盘等)中管理整个存储结构数据的空间;
页:存储监控视频的存储介质空间,页大小在监控视频的存储介质的0号扇区中进行定义;
块:视频存储的基本单位,将数据页划分为大小相等的区间,块大小为0x1000字节;
图像序列:这里指的是一系列连续的I帧、P帧、B帧组成的视频帧数据;
GOP(group of pictures):指的是两个I帧之间的间隔;
GOP起止标识:GOP起始标识为0x06200000,GOP结束标识为0x03600000。
视频帧起止标识:视频帧起始标识为0x57130000,视频帧结束标识为0x58130000。
视频数据结束标识:GOP图像序列中视频数据结束标识为0x02600000.
本发明申请包括以下步骤:
S100:加载并读取磁盘首扇区的内容,包括以下步骤:
S101:寻址磁盘的首扇区;
S102:读取当前扇区的内容,并判断当前扇区的第0x0C字节至0x12字节的内容是否等于厂家标识,如果是,则执行步骤S103,否则,更换另一磁盘,执行步骤S101;
S103:读取当前扇区第0x3C地址开始的连续0x10字节内容,作为所述磁盘的录制监控机的UUID,执行步骤S200;
S200:解析所述磁盘管理页中与监控视频相关的各个域并获取各个域的值,包括页大小、数据页管理项项数、数据页管理项偏移地址、所述磁盘首次录入监控视频的日期时间;
S300:解析数据页,所述数据页包含数据页描述信息、数据页管理表、数据页帧管理表以及监控视频;
S400:解析监控视频的帧数据;
S500:获取并播放监控视频。
优选地,所述厂家标识为ACSII格式存储的字符uware_v,表示所述磁盘为宇视科技的监控视频的磁盘。
优选地,所述步骤S200包括以下步骤:
S201:解析并获取页大小,用以确定各个数据页起止地址:以所述磁盘的起始地址0x00为磁盘管理页的首地址,向后偏移0x78字节并连续读取8字节的内容,作为以小端格式存储的所述页大小;
S202:解析并获取数据页管理项项数:以所述磁盘的起始地址0x00为磁盘管理页的首地址,向后偏移0x68字节并连续读取4字节的内容,作为以小端格式存储的所述数据页管理项项数;
S203:解析并获取磁盘页管理项内容的偏移地址:以所述磁盘的起始地址0x00为磁盘管理页的首地址,向后偏移0x6C字节并连续读取4字节的内容,作为以小端格式存储的所述磁盘页管理项内容的偏移地址;
S204:解析并获取所述磁盘首次录入监控视频的日期时间:以所述磁盘的起始地址0x00为磁盘管理页的首地址,向后偏移0x88字节并连续读取4字节的内容,作为以小端格式存储的所述磁盘首次录入监控视频的Unix时间戳的日期时间;
S205:解析并获取磁盘总字节数及实际使用磁盘总字节数,结合步骤S102、步骤S201至步骤S204,解析并获取所述磁盘管理页的数据结构如下表一所示:表一:磁盘管理页的数据结构
S206:根据所述磁盘页管理项内容的偏移地址及所述数据页管理项项数,寻址并解析各个数据页管理项内容,其中,
磁盘页管理项内容包括一个磁盘管理页的管理项及多个磁盘数据页的管理项;
第一项为磁盘管理页的管理项,第二项及之后各项为磁盘数据页的管理项;
磁盘管理页的管理项及各个数据页管理项顺序存储且每一数据页管理项字节长度均为0x80字节,数据页管理项记录监控视频的描述信息,包括监控视频的数据页开始时间、数据页结束时间、通道号、数据页使用的总块数,其中,
以字节长度为0x80的当前数据页管理项的起始地址为首地址,向后偏移0x1C字节并连续读取4字节的内容,作为以小端格式存储的当前通道号;
以字节长度为0x80的当前数据页管理项的起始地址为首地址,向后偏移0x20字节并连续读取4字节的内容,作为以小端格式存储的当前数据页开始时间;
以字节长度为0x80的当前数据页管理项的起始地址为首地址,向后偏移0x24字节并连续读取4字节的内容,作为以小端格式存储的当前数据页结束时间;
以字节长度为0x80的当前数据页管理项的起始地址为首地址,向后偏移0x28字节并连续读取4字节的内容,作为以小端格式存储的当前数据页使用的总块数。
优选地,所述步骤S300包括以下步骤:
S301:解析并获取数据页描述信息,包括数据页中监控视频的管理项开始时间、管理项结束时间、数据页管理表的项数、通道号、数据页占用的总块数及数据页中存储监控视频的通道名称;数据页描述信息存储于数据页内第一扇区,其中,
以当前数据页的起始地址为首地址,向后偏移0x20字节并连续读取4字节的内容,作为以小端格式存储的Unix时间戳的当前管理项开始时间;
以当前数据页的起始地址为首地址,向后偏移0x24字节并连续读取4字节的内容,作为以小端格式存储的Unix时间戳的当前管理项结束时间;
以当前数据页的起始地址为首地址,向后偏移0x1C字节并连续读取4字节的内容,作为以小端格式存储的当前通道号;
以当前数据页的起始地址为首地址,向后偏移0x2C字节并连续读取2字节的内容,作为以小端格式存储的当前数据页管理表的项数;
以当前数据页的起始地址为首地址,向后偏移0x2E字节并连续读取2字节的内容,作为以小端格式存储的当前数据页占用的总块数;
以当前数据页的起始地址为首地址,向后偏移0x40字节并连续读取0x0C字节的内容,作为以ASCII码格式存储的数据页占用的数据页中存储监控视频的当前通道名称;
S302:解析并获取数据页管理表:以当前数据页的起始地址为首地址,向后偏移0x800字节并连续读取0x1800字节的内容,作为数据页管理表的内容,其中,数据页管理表的项数由步骤S301获取,各项的字节长度均为0x18字节,各项均包含每帧管理项开始时间、每帧管理项结束时间及帧使用的总块数,
以字节长度为0x18的当前项的起始地址为首地址,连续读取4字节的内容,作为以小端格式存储的每帧管理项开始时间;
以字节长度为0x18的当前项的起始地址为首地址,向后偏移0x04字节并连续读取4字节的内容,作为以小端格式存储的每帧管理项结束时间;
S303:解析并获取数据页帧管理表:以当前数据页的起始地址为首地址,向后偏移0x2000字节的内容为数据页帧管理表的内容,并连续读取0x1800字节的内容,作为数据页管理表的内容,其中,数据页管理表的项数由步骤S301获取,各项的字节长度均为0x20字节,数据页帧管理表包含监控视频相对于当前页起始地址的页内偏移、步骤S302所述帧使用的总块数及步骤S302所述每帧管理项开始时间;
S304:根据步骤S303所获取的监控视频相对于当前页起始地址的页内偏移,寻址并获取监控视频;
S305:根据步骤S301至S304,解析并获取磁盘数据页的数据结构如下表二所示:
表二:磁盘数据页的数据结构
优选地,所述步骤400包含以下步骤:
S401:解析GOP图像序列头结构:以当前数据页的起始地址为首地址,向后偏移0x200000字节的内容为数据页GOP图像序列头结构的起始地址,寻址并解析GOP图像序列头结构:
GOP图像序列头结构的字节长度为0x18字节,依次包括4字节长度的GOP开始标识、4字节长度的GOP开始时间及0x10字节长度的预留字节,其中,GOP开始时间为当前GOP图像序列录制的开始时间;
S402:解析GOP图像序列中视频帧头结构和视频帧起止标识:以当前GOP图像序列头结构的起始地址为首地址,向后偏移0x18字节的内容为视频帧头结构的起始地址,寻址并解析视频帧头结构:
视频帧头结构的字节长度为0x18字节,依次包括4字节长度的帧起始标识、0x0E字节长度的未知数据、2字节长度的片字节数及4字节长度的帧数据的序号;
S403:解析GOP图像序列中视频结束标识及GOP总字节数:以当前GOP图像序列头结构的起始地址为首地址,向后查找GOP结束标识,GOP结束标识前4字节的内容为GOP总字节数,其包含GOP图像序列头结构、视频帧头结构、视频帧起止标识、视频帧数据及视频数据结束标识的各个字节数之和,不包含GOP总字节数及GOP结束标识的两个域的字节数;
S404:根据步骤S401至步骤S403,解析并获取所述磁盘数据页视频帧的数据结构如下表三所示。
表三:磁盘数据页视频帧的数据结构
优选地,所述GOP开始标识为0x06200000,所述GOP结束标识为0x03600000,所述视频帧起始标识为0x57130000,所述视频帧结束标识为0x58130000,所述视频数据结束标识为0x02600000。
优选地,所述步骤S500的具体步骤为:
S501:处理各个数据页的全部GOP图像序列:去掉GOP图像序列头结构、视频帧头结构、视频帧起止标识及视频结束标识;
S502:提取各个GOP图像序列中的视频数据,用以组合为一个视频并对其命名,生成可播放的视频。
本发明具有以下有益效果:
1、针对存储视频监控的磁盘进行结构解析,方便提取出磁盘中所有的重要数据。
2、针对提取出来的数据,精确分析出各部分结构的管理信息,根据管理信息,对视频数据按照通道、时间进行提取并形成视频文件。
3、针对视频文件中帧结构进行处理,保证视频播放画面完整、清晰。
4、用户操作非常简单,可视化展示逻辑清晰,直观明了,不用担心监控数据提取恢复结果难以展示的问题。
附图说明
图1为本发明所提供的方法的总流程图;
图2为本发明一个实施例中解析各个域并获取各个域的值的具体流程图;
图3为本发明一个实施例中解析数据页的具体流程图;
图4为本发明一个实施例中解析监控视频的帧数据的具体流程图。
具体实施方式
本发明针对宇视科技的视频监控作为实施例。下面结合附图和实施例对本发明作进一步阐述。
图1示出了本发明所提供的方法的总流程图。
如图1所示,本发明的方法包括以下步骤:
S100:加载并读取磁盘首扇区的内容,包括以下步骤:
S101:寻址磁盘的首扇区;
S102:读取当前扇区的内容,并判断当前扇区的第0x0C字节至0x12字节的内容是否等于厂家标识uware_v,如果是,表示该磁盘为宇视科技的监控视频的磁盘,执行步骤S103,否则,更换另一磁盘,执行步骤S101;
S103:读取当前扇区第0x3C地址开始的连续0x10字节内容,作为磁盘的录制监控机的UUID,执行步骤S200;
S200:解析磁盘管理页中与宇视科技的监控视频相关的各个域并获取各个域的值,包括页大小、数据页管理项项数、数据页管理项偏移地址、磁盘首次录入宇视科技的监控视频的日期时间;
步骤S200包括以下步骤:
S201:解析并获取页大小,用以确定各个数据页起止地址:以磁盘的起始地址0x00为宇视科技的磁盘管理页的首地址,向后偏移0x78字节并连续读取8字节的内容,作为以小端格式存储的页大小;
S202:解析并获取数据页管理项项数:以磁盘的起始地址0x00为宇视科技的磁盘管理页的首地址,向后偏移0x68字节并连续读取4字节的内容,作为以小端格式存储的数据页管理项项数;
S203:解析并获取磁盘页管理项内容的偏移地址:以磁盘的起始地址0x00为宇视科技的磁盘管理页的首地址,向后偏移0x6C字节并连续读取4字节的内容,作为以小端格式存储的磁盘页管理项内容的偏移地址;
S204:解析并获取磁盘首次录入宇视科技的监控视频的日期时间:以磁盘的起始地址0x00为宇视科技的磁盘管理页的首地址,向后偏移0x88字节并连续读取4字节的内容,作为以小端格式存储的磁盘首次录入宇视科技的监控视频的Unix时间戳的日期时间;
S205:解析并获取磁盘总字节数及实际使用磁盘总字节数,结合步骤S102、步骤S201至步骤S204,解析并获取磁盘管理页的数据结构如下表一所示:
表一:磁盘管理页的数据结构
S206:根据磁盘页管理项内容的偏移地址及数据页管理项项数,寻址并解析各个数据页管理项内容,其中,
磁盘页管理项内容包括一个磁盘管理页的管理项及多个磁盘数据页的管理项;
第一项为磁盘管理页的管理项,第二项及之后各项为磁盘数据页的管理项;
磁盘管理页的管理项及各个数据页管理项顺序存储且每一数据页管理项字节长度均为0x80字节,数据页管理项记录监控视频的描述信息,包括监控视频的数据页开始时间、数据页结束时间、通道号、数据页使用的总块数,其中,
以字节长度为0x80的当前数据页管理项的起始地址为首地址,向后偏移0x1C字节并连续读取4字节的内容,作为以小端格式存储的当前通道号;
以字节长度为0x80的当前数据页管理项的起始地址为首地址,向后偏移0x20字节并连续读取4字节的内容,作为以小端格式存储的当前数据页开始时间;
以字节长度为0x80的当前数据页管理项的起始地址为首地址,向后偏移0x24字节并连续读取4字节的内容,作为以小端格式存储的当前数据页结束时间;
以字节长度为0x80的当前数据页管理项的起始地址为首地址,向后偏移0x28字节并连续读取4字节的内容,作为以小端格式存储的当前数据页使用的总块数。
S300:解析数据页,数据页包含数据页描述信息、数据页管理表、数据页帧管理表以及监控视频,步骤S300包括以下步骤:
S301:解析并获取数据页描述信息,包括数据页中监控视频的管理项开始时间、管理项结束时间、数据页管理表的项数、通道号、数据页占用的总块数及数据页中存储监控视频的通道名称;数据页描述信息存储于数据页内第一扇区,其中,
以当前数据页的起始地址为首地址,向后偏移0x20字节并连续读取4字节的内容,作为以小端格式存储的Unix时间戳的当前管理项开始时间;
以当前数据页的起始地址为首地址,向后偏移0x24字节并连续读取4字节的内容,作为以小端格式存储的Unix时间戳的当前管理项结束时间;
以当前数据页的起始地址为首地址,向后偏移0x1C字节并连续读取4字节的内容,作为以小端格式存储的当前通道号;
以当前数据页的起始地址为首地址,向后偏移0x2C字节并连续读取2字节的内容,作为以小端格式存储的当前数据页管理表的项数;
以当前数据页的起始地址为首地址,向后偏移0x2E字节并连续读取2字节的内容,作为以小端格式存储的当前数据页占用的总块数;
以当前数据页的起始地址为首地址,向后偏移0x40字节并连续读取0x0C字节的内容,作为以ASCII码格式存储的数据页占用的数据页中存储监控视频的当前通道名称;
S302:解析并获取数据页管理表:以当前数据页的起始地址为首地址,向后偏移0x800字节并连续读取0x1800字节的内容,作为数据页管理表的内容,其中,数据页管理表的项数由步骤S301获取,各项的字节长度均为0x18字节,各项均包含每帧管理项开始时间、每帧管理项结束时间及帧使用的总块数,
以字节长度为0x18的当前项的起始地址为首地址,连续读取4字节的内容,作为以小端格式存储的每帧管理项开始时间;
以字节长度为0x18的当前项的起始地址为首地址,向后偏移0x04字节并连续读取4字节的内容,作为以小端格式存储的每帧管理项结束时间;
S303:解析并获取数据页帧管理表:以当前数据页的起始地址为首地址,向后偏移0x2000字节的内容为数据页帧管理表的内容,并连续读取0x1800字节的内容,作为数据页管理表的内容,其中,数据页管理表的项数由步骤S301获取,各项的字节长度均为0x20字节,数据页帧管理表包含监控视频相对于当前页起始地址的页内偏移、步骤S302帧使用的总块数及步骤S302每帧管理项开始时间;
S304:根据步骤S303所获取的监控视频相对于当前页起始地址的页内偏移,寻址并获取监控视频;
S305:根据步骤S301至S304,解析并获取磁盘数据页的数据结构如下表二所示:
表二:磁盘数据页的数据结构
S400:解析监控视频的帧数据,步骤400包含以下步骤:
S401:解析GOP图像序列头结构:以当前数据页的起始地址为首地址,向后偏移0x200000字节的内容为数据页GOP图像序列头结构的起始地址,寻址并解析GOP图像序列头结构:
GOP图像序列头结构的字节长度为0x18字节,依次包括4字节长度的GOP开始标识0x06200000、4字节长度的GOP开始时间及0x10字节长度的预留字节,其中,GOP开始时间为当前GOP图像序列录制的开始时间;
S402:解析GOP图像序列中视频帧头结构和视频帧起止标识:以当前GOP图像序列头结构的起始地址为首地址,向后偏移0x18字节的内容为视频帧头结构的起始地址,寻址并解析视频帧头结构:
视频帧头结构的字节长度为0x18字节,依次包括4字节长度的帧起始标识0x57130000、0x0E字节长度的未知数据、2字节长度的片字节数及4字节长度的帧数据的序号;此外,帧结束标识为0x58130000。
S403:解析GOP图像序列中视频结束标识及GOP总字节数:以当前GOP图像序列头结构的起始地址为首地址,向后查找GOP结束标识0x03600000,GOP结束标识0x03600000前4字节的内容为GOP总字节数,其包含GOP图像序列头结构、视频帧头结构、视频帧起止标识、视频帧数据及视频数据结束标识0x02600000的各个字节数之和,不包含GOP总字节数及GOP结束标识的两个域的字节数;
S404:根据步骤S401至步骤S403,解析并获取磁盘数据页视频帧的数据结构如下表三所示。
表三:磁盘数据页视频帧的数据结构
S500:获取并播放监控视频。
步骤S500的具体步骤为:
S501:处理各个数据页的全部GOP图像序列:去掉GOP图像序列头结构、视频帧头结构、视频帧起止标识及视频结束标识;
S502:提取各个GOP图像序列中的视频数据,用以组合为一个视频并对其命名,生成可播放的视频
通过本发明提供的方法,解决了现有技术中尚无一种基于帧结构特性的监控视频修复方法的技术问题。
应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。