首页 · 快讯 · 正文

佳能R6存在结构体碎片恢复方法

佳能R6算是佳能的一代神机,市场占有率相当高。常见的恢复案例也很多,这次来说下一个比较特殊的案例,三条丢失视频文件,两条是存在结构体碎片的,我们一起来看看.

故障存储: 32G卡, FAT32文件系统

故障现象:

根据客户描述,误操作删除导致三条视频素材丢失,两条较小的可能有个两分钟,一条大的约10分钟出头。因为是不同的人操作摄像机所以当事人并不清楚视频丢失,而是在拍摄完几条后对比数据时才发现丢失了三条素材。

故障分析:

FAT32删除后会对FAT表清0,目录项仅做删除标识,起始簇指针和大小并不清0。但是有一点能确定,佳能全系列是100%存在碎片的,并不连续存放,这个涉及到预览小视频和原始大视频排队写入的问题,这里就不细说了,感兴趣的可以看看我们之前的案例介绍。不连续存放,普通软件是无法恢复的,因为普通恢复软件只会通过定位起始簇指针然后读取目录项中长度来恢复文件,可以说文件头对了,但是后边数据区全是错的。

客户在找到我们之前已经使用了别的恢复软件进行扫描,但是没有发现,后又辗转找了几家当地的恢复公司,得到的结果是全部覆盖无法恢复。还好客户开始处理前听从朋友的建议,先做了一个镜像文件。分析原始镜像,因为MP4类文件会记录拍摄时间,所以通过搜索时间进行定位,发现至少有两条记录和客户描述的时间高度吻合。这证明数据可能还是存在的!

故障处理:

我们使用CHS零壹视频恢复程序专业版(标准版/高级版)来进行扫描

STEP1:选择镜像文件,扫描大类选择高清视频,小类选择 Canon佳能_MP4。

STEP2:等待扫描完成。 可以看到程序已经自动解析出摄像机拍摄时间、品牌、总速率、音视频编码等参数,程序会根据这些参数建立查找模型,进行精确定位。

STEP3: 查看结果,果然发现了客户需要的两条素材。结果对比发现这两条时间不长的素材,结构体元文件都存在碎片。

什么是结构体元文件呢?这个涉及到视频的编码和解码的一些常识,下边来简单说下:

多媒体一类文件,无论那种格式都需要在解码的时候让播放器(或者编辑软件)获取一些视频的元数据(比如时长、总速率、视频编码、音频编码),这些元数据是播放器解码时的重要参考信息。有了这些信息支撑,播放器才能进一步去解码更底层的视频流和音频流,才能做好多个流之间的同步匹配。在MP4、MOV、3GP这一类QT结构文件中他们的结构体元文件我称之为----“moov元文件”。

MP4类元文件使用的是苹果的QT类封装结构,其优点是可以扩展、支持64位寻址(可以保证单一文件做到足够大,同时解码开销很小。但是有一个致使缺点,容错性极差,我说的这个容错并不是解码级而是结构级。比如相对TS包来讲,TS包的结构可以在前边包都有问题的情况继续向后解析,但是MP4却不行,moov元文件如果有问题整个文件就变成了非法文件,播放器直接就拒了,更不用说去做深入解码的操作了!

moov元文件不连续存放就会导致很多视频专业恢复软件无法有效发现,从而认为数据已经丢失,这个也是之前客户用过不同的视频恢复软件没有发现的原因。

下边截图是其中一条素材的结构体元文件碎片区结束和开始,上下两个碎片位于不同的LBA偏移值:

上碎片的结束处是另一个文件数据区起始,这也间接证明了我们之前说的排队写入,我们来想一下这条素材产生的结构体碎片的原因,假设此素材为A,另一素材为B。那么排队写入是以下这种方式:1、A文件请求写入,传来了相应的簇块组,这个时候摄像机管理程序应答请求允许写入A文件的簇块组。

2、在1还没有写完或者是快要写完的时候,传来了B文件的写入请求。此时管理程序会优先写完1

3、1写完成后,再来继续2的写入请求。

……

如此重复,直到所有写请求都完成。可能难以理解,为什么不调节成连续的写入请求呢,比如先写完A再写B,这样的话因为是连续存放,IO的速度会很快。但是现实中不太容易做到,因为所有的请求对于管理程序或者操作系统而言是平等的。这个涉及到了计算机操作系统、硬件底层的设计理念,也超出了我们这个案例的范畴,所以就不多说这些了,总之排队写入在现实中是大量存在的,特别是我们所处的这个云时代,到处都是客户端,所有的数据都是在排队或者处于经要排队的阶段!

对比发现实际上碎片不多就两个,之前遇到这类问题,我们的方案就是手工重组,略微麻烦,因为定位这些需要时间,还需要确认上下碎片的关联性,另外重组也需要提取再连接碎片。现在直接使用CHS零壹视频恢复程序专业版(标准版/高级版)直接扫描就可以解决这个问题,下图就是丢失的两条素材(预览画面做了打码处理):

STEP4:还有一条大的素材没有发现,怀疑是否结构体是否彻底覆盖了,毕竟后续拍了好几条视频,所以重点在L5级中查找,L5级是CHS零壹视频恢复程序根据音视频帧特征深入查找和判断的帧级数据,并不借助于moov元数据,所以重点查看这个级别的文件,找出认为符合条件的。可以看到程序共发现16个文件,容量约9.67G,根据客户说的时长,这个摄像机是AVC编码,选择至少要大于2G的文件,然后下一步进行修复即可。

STEP5:修复L5级文件,这个工作可以交给CHS零壹视频恢复高级版的修复模块来完成,或者使用CHS视频修复程序QT版也可以,具体方法就不赘述了,参考别的案例。

最后在这些文件中成功找到了客户要一条不到10分钟的重要视频文件,修复程序完成的使命就是根据样本文件重建L5级文件的moov元文件,至此数据恢复工作完成!

这就是佳能R6 MOOV结构体存在碎片以及被覆盖的恢复方法,大家在遇到此类问题时,可以和我们联系。

CHS实验室官方QQ群I:11391767  QQ群II: 758414867   客服QQ:490476236   微信:151 3508 5893