Yes, calculating that results in VID5 but in reality it’s MPEG-4 part 2 (minus some parts). Paul has asked me to look at it some time ago, so I did (which is much better than implementing a decoder for it).
As I said already, this is essentially MPEG-4 part 2 with some insane parts being cut off (but not enough to turn it back into ITU H.263): there’s no support for special texture shapes, interlacing or even quarterpel motion compensation. There are still B- and S-frames to complicate things though. Bitstream format is cut down as well to remove most of the nonsense (or omgFFeatures if you have that view), so there are just frames containing basic header (or slightly less basic with GMC and S-frames) plus macroblock data. Macroblock data is almost identical to the expected format—they even still have sync pattern handling in MCBPC despite there being no need for that.
So on the one hard writing decoder for it is not that hard, as you can simply hack an existing decoder for that, and hard enough at the same time (because you either need to hack an existing decoder or implement it yourself and that ISO standard is not easy to comprehend and personally I decided not to touch S-frames at all and if the need arises I’m actually considering making a wrapper for xvidcore instead).
Meanwhile I still have MVS to document and lots of encoders to write to make use of my new palettiser (because so far I have just three codecs that can encode paletted formats—two of them are for AVI, one is GIF, and none are for MOV). So hopefully I’ll have something more interesting to write about next time.
Hello! I work with Hit Save, a video game preservation nonprofit. One of the projects I’ve been working on for the organization involves the preservation of video media, including trailers, and bonus content present on game discs. The.VID files on some GameCube discs have been a consistent point of frustration for me, as with no way to transcode them I was left with no choice but to capture the content I could access using Dolphin or original hardware and a capture card.
However this week a computer science professor reached out to me telling me he found progress being made on .VID with demuxing support in librempeg as well as a page of information about the codec on the multimedia.cx wiki. Using this as a starting point he was able to create to translate the video into something usable: https://github.com/niemasd/VID1-Video-Translator
Unfortunately, the script doesn’t work consistently at the moment. Some worked flawlessly, some output audio only, some output corrupted video, and some won’t even output audio. It seems there are additional quriks to the codec and/or container that are outside of his field of expertise.
While this is a setback, I am still delighted to have learned that people like you and Paul were working on solving Factor 5’s .VID codec as recently as this year. I’d love to talk more with you both about this project and if further work towards encoding is planned. Thanks for your hard work!
A lot of those sound like a demuxing problem. I think that if you share samples with Paul he can tell what goes wrong there (or you can try
librempegdirectly to see if it handles at least audio stream properly). Who knows, maybe we can improve its support (and there’s still Bink2 to tackle in some indefinite future…)Thanks for getting back to me so quickly! Would love to help facilitate collaboration on this to improve overall support! I can’t find a way to contact Paul directly, but Niema is going to try to reach out through GitHub. In the meantime, if you want to shoot me an email with any additional leads or suggestions you have, I’d be very grateful. Thanks again!
Hey, folks! I just created a GitHub Issue about it here:
https://github.com/librempeg/librempeg/issues/195
Hopefully we can communicate back-and-forth with Paul on there! I tried compiling the most recent librempeg source, and I was able to demux audio from almost all of the samples (so I think demuxing seems to be working for the most part), but there were indeed some where even audio was unable to demux properly. I can coordinate between Andrew and Paul as needed (probably on that GitHub Issue)
Looks like it’s been worked out. Hopefully you’ll be able to decode more if not all .vid files properly soon.