1

I recently had an unseekable WMV file. ASFTools fixed it using the "Lost Chunks" feature which was suggested in the selected answer.

What does the "Lost Chunks" function do? What did it fix? What are "chunks"? I originally tried the "Make Seekable" function, but that did not work, so what is the difference between the two?

I'm very much interested in the technicalities so don't be afraid to get detailed if the answer requires it.

2

WMV is really just another name for ASF. That format, like many multimedia formats, contains its data in pieces of various types. Some formats call these packets, some call them segments. ASF, like RIFF before it, calls them chunks. There are several types of chunks, the main one being the data chunk, which holds the encoded streams. There may be several data chunks in the file, mixed in with other chunk types.

The other chunks can contain metadata, DRM info, text data and so on. WMV includes one called (I believe) the index chunk which holds information about where the data chunks are located in the file.

If the index chunk is corrupted or missing the file can usually be played but perhaps not seeked, or may seek randomly into the middle of GOPs. Programs like ASFTools and Steeper attempt to re-index the file by locating the data chunks and building a new index chunk if they can't locate a misplaced one.

Chunks of various types begin with unique identifying headers -- byte sequences called tags -- that can be found by scanning the file. This allows a repair program to potentially reconstruct a minimally playable file from a partially corrupt one by examining the full set of chunks.

| improve this answer | |
  • What's a GOP? So, the program scanned the bytes of the file for specific byte sequences that tag the start and end of chunks? – user24601 Jun 1 '15 at 18:01
  • Group Of Pictures - a sequence that starts with a complete frame and contains difference frames -- data that describes the difference (deltas) from preceding and following frames. If you 'jump into' the middle of the sequence you don't have enough information to completely decode where you landed. You have to wait for an I frame or key frame to get you right again. And yes, a repair program can find data chunks by scanning for the tags that start a chunk header. That header holds the length of the chunk (there is no end tag). Once you find any valid chunk you can follow the chain of chunks. – Jim Mack Jun 1 '15 at 18:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.