[ogg-dev] Fixing ogg vorbis corruption caused by bad metadata
adam at rosi-kessel.org
Wed Jun 17 17:34:02 PDT 2009
I have over 1,000 ogg vorbis files that are no longer playable or
editable. I believe the main cause was a MediaMonkey plugin that
automatically fetched album art and added it to the header. The plugin
itself just uses the generic MediaMonkey metadata facility, but
something happened -- perhaps when the album art bitmap image was too
large -- that caused the files to no longer work. Unfortunately, I don't
I have noticed a handful of unresolved threads about ogg corruption on
various message boards, so I suspect I am not alone in having, for one
reason or another, unplayable oggs.
I have tried rewriting the files with oggz-sort (both last release and
latest from git) and also with hogg reconstruct (including latest
version built from source). I have also tried dumping the files with
oggz-dump and swapping in either packetno 1 or 1,2 or 1,2,3 from a known
good ogg file, replacing the serialnos, and then recreating the ogg with
oggz-dump -r. None of these changes work. vlc will "play" the file, but
all I hear is silence.
In a few instances, I have had ogg files in this state where they played
but I couldn't edit the metadata with any tool. hogg reconstruct fixed
those files so they seem to be fully working again, but most of my
corrupted files don't fall into this category.
oggz-validate reports on an example file:
serialno 1225743615: Terminal header page contains non-header packet
after attempting to splice in good headers, on the same file:
serialno 1225743615: Terminal header page has non-zero granulepos
I have posted a couple of sample files, one before and one after running
through oggz-sort, here:
I'm not sure if all of my files have the same problem, so I can share
others if it would be helpful.
I'd appreciate any assistance/suggestions in fixing these files. I don't
see any reason why the corruption should extend beyond just the metadata
part of the file, but I could of course be wrong.
More information about the ogg-dev