2014-04-24 11 views
0

비디오 데이터를 ASF 파일에 쓰는 데 WMWriterAdvanced 및 WriteStreamSample 함수를 사용하고 있으며 샘플을 쓰는 도중 정전이 발생하면이 파일에 이미 기록 된 지난 20 초 동안 손실이 발생합니다 . ASFView로 파일을 검사 한 후에 나는 지난 500 패킷이 0 바이트로 채워져 있음을 발견했다. 전원 장애시 데이터가 손실 될 수 있음을 이해하지만 20 초 분량의 비디오가 너무 많은 것으로 보입니다.정전시 ASF 파일

왜 이미 작성된 샘플이 손상되어 그 양을 줄일 수 있습니까?

+0

아마도 디스크에 쓰여지지 않았기 때문에 실제 비트는 버퍼 또는 어딘가에 떠 다니고 실제 저장 매체에 커밋되기를 기다리고있었습니다. 20 초 분량의 비디오가 의미있는 것은 아닙니다. [email protected] 비디오는 20 초가 될 수 있으며, 4k @ 120fps처럼 20 초가 될 수 있습니다. –

+0

약 2MB의 데이터가 손실됩니다. 그것의 H264 10fps FHD 스트림. 그러나 데이터가 디스크에 쓰여진 것처럼 보입니다. 전원 장애 전후의 파일 크기가 변경되지 않았지만 마지막 2MB의 0 바이트가 있음을 알 수 있기 때문입니다. –

+0

은별로 의미가 없습니다. 인코더 응용 프로그램은 보통 길이의 파일을 생성하고 0으로 채웠습니다. 인코딩이 시작될 때, 정전이 있기 훨씬 전에, 그리고 파워가 폭발하기 전에 디스크에 최선을 다해야합니다. –

답변

0

파일을 열어서 쓰는 중 내부 파일 버퍼가 아직 디스크로 플러시되지 않았고 정전으로 인해이 데이터와 구조/인덱스 데이터의 일부가 손실되었습니다. 손상된 파일 구조는 파일에있는 데이터 중 일부라도 볼 수 없지만 나머지 콘텐츠와 부적절하게 연결되는 이유 일 수 있습니다. 따라서 예기치 않게 너무 많은 시간의 데이터가 손실됩니다.

일반적으로 NTFS 파일 시스템으로 백업 된 파일은 전원 오류로 인해 데이터가 영구 미디어에 도달하지 못하게하는 부분에 0을 갖습니다.

+0

HDD에 쓰기 캐싱이 비활성화되어 있으며 데이터 푸시를 시작하자마자 파일 크기가 커지는 것을 볼 수 있습니다 ... 그 이유는 어떻게 든 손상된 데이터의 양을 줄일 수 있습니까? 그것은 cctv 소프트웨어 때문에 나를 위해 중요합니다. –

+0

나는 여기서 데이터 손실이 불가피하다고 말한다. 파일을 직접 열거 나 관리하는 경우 [write-through mode] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa364218%28v=vs.85%)를 사용해보십시오. 29.aspx). 성능에 미치는 영향은이 부분적인 데이터 안전성에 가치가 거의 없으므로 나에게별로 의미가 없습니다. 제 생각에는 최선의 전략은 사용자 정의 형식 파일을 점진적으로 작성한 다음 ASF와 같은 잘 알려진 형식으로 마무리하는 것입니다. –

+0

나는 "사용자 정의 형식 파일을 점진적으로 작성한 다음 ASF로 마무리"하는 것이 나에게 좋은 해결책이라고 생각합니다. 도와 주셔서 감사합니다! –