我正在使用WMWriterAdvanced和WriteStreamSample函数将视频数据写入ASF文件,如果在写入样本期间出现电源故障,则导致我丢失了大约已经写入此文件的最后20秒。在使用ASFView检查文件后,我注意到最后500个数据包只填充了零字节。据我所知,在停电期间可能会丢失一些数据,但似乎20秒的视频太多了。
为什么已经写入的样本已损坏,是否可以减少其数量?
答案 0 :(得分:0)
可能的原因是,在文件仍然被打开并被写入的情况下,内部文件缓冲区尚未刷新到磁盘,并且电源故障导致数据丢失以及结构/索引数据的一部分。损坏的文件结构可能是导致无法查看文件中存在的某些数据,但是与其他内容不正确链接的原因 - 因此意外地丢失了太多秒的数据。
由NTFS文件系统支持的文件通常在片段上有零,其中电源故障阻止数据到达持久性媒体。