|
摘要:国内某企业的跨年晚会使用高清设备拍摄,此设备在后台对数据实体进行数字化保存并在最后进行封装,其中一台设备在拍摄时由于突然断电原因导致只生成了数据实体,没有进行有效封装,导致无法播放、无法编辑!
故障文件:文件长度大约110G
分析过程:
经过分析确定文件为QT结构,让客户传一个正常的样本,最终确定为QT结构。此结构为苹果专属的一个容器结构,所谓的容器基本上意义就是不关心音频、视频的编码(当然也有内部支持的编码,这里只是从容器本身概念做对比),只要按照容器的结构进行封装,最终播放器就可以按结构进行解码!
这个文件只生成了数据实体部分,最终封装没有完毕,导致容器结构不完整,从而导致播放器、编辑器(视频编辑软件)无法解码。
知道了原因就可以制定修复方案了,通过对数据底层进行分析,发现生成的数据实体部分是比较完整的。
写了一个小的分析程序,得到了以下分析结果,知道了视频编码为高清非压缩的APCS,音频编码为高清非压缩的LPCM(16声道),这也是为何生成的文件如此“硕大”的原因!全部是非压缩的编码,导致了最终占用空间比压缩的要高很多!
虽然视频比较大,但是结构还是比较简单的只有视频和音频两个BOX,通过分析最终得到了底层视频的规律,音频由于使用24位编码基本上全是实体没有规律可循但可以通过模糊判断得出结果。这样制定方案完毕,下一步就是开启修复了!
修复过程:
对整个损坏文件进行底层搜索视频块并确定出结果,另外音频通过模糊算法判断,经过对客户样本文件和截取的3G文件进行验证,最终确定了算法的稳定性!最终3G的截取文件成功可以在苹果官方播放器QUICKTIME中播放(QUICKTIME会对视频文件进行比较严格的校验,所以只要通过QUICKTIME能播放那么后续编辑也是没有问题的)。
最终通过修复小程序重新建立了QT结构,然后发给客户进行远程连接,连接后完美修复这个110G的视频文件。
由于涉密原因,修复好的播放画面就不在截图了!
总结:
通过这次修复,对于QT结构有了更深入的了解,从底层是可以完全重建容器结构的,这也为开发修复程序提供了基础!
大家在遇到类似于扩展名为MOV、MP4、3Gp之类的断电导致文件无法播放的,在使用其它软件修复后存在无法播放或者有画面没有音频的情况,可以和我们联系! |
|