解决拍摄过程断电造成的文件损坏
2008-10-25 17:35:11 来源:WEB开发网首先,我考虑是否这个文件的“文件头”有问题。“文件头”是指记录文件属性信息的一些数据,包括文件名、创建时间、修改时间、访问时间、文件大小、文件属性等等一些信息。
用WinHex打开这个PIC001.ASF,发现这个文件的前部,从偏移量0到258536的数据居然全部是零,这是不正常的。
每个文件都应有自己的“文件头”,从偏移量0开始的若干字节,应当是标示这个文件属性信息的一系列数据。于是我用MP4又拍了两段视频,分别命名为“样本1.ASF”和“样本2.ASF”,用WinHex查看,果然如此。不管文件大小,这两个ASF视频的前部数据除了少数不相同外,大部分完全相同,这也就是我们说的“文件头”。
完好视频“样本1.ASF”和“样本2.ASF”的图示。其中,用阴影标注的区域是ASF文件的“文件头”。既然发现了问题所在,就有对策了。
首先,将PIC001.ASF的文件开头为00的区域全部“剪切”掉(一定要用“剪切”功能)。然后将“样本1.ASF”的“文件头”的数据复制下来,“粘贴”(一定要用“粘贴”功能)到PIC001.ASF文件的最开头,即偏移量为0处。为保险起见,最好另存为一个新文件,取名为AAA(如果存盘后是一个无后缀格式的文件AAA,要在其后加上ASF的后缀格式,使其变成ASF文件)。
接着使用暴风影音播放器打开AAA.ASF,发现不再提示“无法渲染此文件”,说明对损坏文件加上文件头后,播放器可以识别了,但还不能正常播放,它显示的视频时间长度也不对,还是“样本1.ASF”的时间长度。这没关系,由于这时候的AAA.ASF己具备了一个ASF文件的基本属性,就可以用Fixvideo视频修复软件对AAA.ASF进行修复了。经过修复,损坏的文件终于可以正常播放了。
强补一剂:加强修补法
若此时经修复后,视频文件仍不能正常播放,可以试试后面的方法。观察Fixvideo修复文件时的显示,如果有问题会在处理窗口中显示:“错误偏移: XX”等内容。记住这个偏移量,然后再用WinHex打开被修复文件,试着将这个偏移量处的错误值进行一下修改,数值为“00~FF”之间的十六进制数值。保存后再用Fixvideo试试,直到正常为止。当然这个过程比较繁琐一些,对有多个偏移量值的错误就更麻烦。不过,一般情况下,Fixvideo是可以将这些错误自动修正的。
高手传经:视频文件的文件头至关重要
回过头看,分析我的MP4为什么不能播放这段视频,因为文件头完全损坏了,MP4根本不识别,所以显示“无文件”。但资源管理器却有一个PIC001.ASF文件,是由于MP4的视频目录下的文件格式默认为ASF格式(尽管它还不是一个完整的ASF文件)。将它传到电脑上,尽管我的视频播放器早已经设置了对ASF文件的关联,但它却是一个无关联(即无后缀格式)的文件,说明这个文件已严重损坏,播放器根本不能识别。
通过以上分析,可见“文件头”对一个视频文件是多么重要。正是由于文件头的缺失,造成了这个文件既不能播放,又不能被一般的视频修复软件修复。而WinHex可以深入文件内部进行数据修改,因此可以有效地解决一些普通修复软件不能处理的问题。
实际上我们也可以用WinHex对其它格式的视频文件进行如此修复。若保证被修复文件的文件头基本完好,就可选用众多的视频修复软件进行自动修复了。
更多精彩
赞助商链接