Author Archives: Multimedia Mike

Master Spreadsheet

Steven Zakulec (MultimediaWiki user Dashcloud) has performed an amazing service and tested every single sample in the MPlayer repository against FFmpeg. Can you even imagine? He has provided a spreadsheet (~87 KB, OpenOffice Calc format) that details which samples work or not given a particular SVN revision of the FFmpeg repository. I think this information needs to get into a searchable & maintainable online database soon so it does not go stale.

Fine Storage Box

Thanks to my multimedia collection hobby I have a ton of CD-ROMs that I need to store efficiently. I’m partial to storing the bare CDs in a very particular type of plastic & cloth CD envelope. But for storing large amounts of CDs, the best method I presently have is simply to stuff them alphabetically into sturdy shoe boxes.

While scavenging someone else’s trove of discarded computer miscellany, I happened upon a box that appears to have the absolute perfect form factor for storing 3.5″ floppy discs:


Floppy Dom Perignon

click for larger images

Floppy Dom Perignon

Now if only I had something that perfect for the 120mm form factor.

Tarantula

Robert and Reynaldo are working on a multimedia investigation utility called Tarantula. The goal, as I understand it, is to be able to analyze frames from a video stream to determine more about their properties, e.g., RGB15 vs. RGB16, upside-down orientation, and other parameters. Sounds like the start of something useful.

The project made me realize that I would like a simple tool that could load a file and allow me to treat it as various different types of PCM. Actually, I can’t believe that there aren’t already a number of waveform editors out there, even for Linux, that can probably do just that. It might make some of my multimedia investigations simpler.

Studying Xbox Multimedia

…at least, that’s what I would like to do. I bought a used Xbox game nearly 2 years ago with the intention of opening up the disc and studying the contents for interesting multimedia formats. I picked up a few more titles some months ago because I heard these games had some unique multimedia targets. Today, close to 5 years after the Xbox’s initial launch, I tried to examine the disc contents. I ran into a few problems.

I had always heard that Xbox discs have a standard DVD-video structure at the front in order to accommodate the eventuality that the disc may be placed into a standard DVD player. Sure enough, treating the disc like a DVD shows a 13-second, totally X-treme Xbox video followed by a still screen instructing the user, in several languages, to play the disc in the proper game console.

If you use standard CD/DVD system tools to study the Xbox disc, it will be reported as having 6,992 2048-byte sectors, a little over 14 megabytes of DVD-video data. This page on Xbox-Linux describes the Xbox DVD filesystem (XDVDFS) format. However, the markers discussed in that document (“MICROSOFT*XBOX*MEDIA”) do not occur in this 14-megabyte data segment. I imagine the game data starts immediately after this segment. As the document explains, the Xbox DVDs have a fraudulent TOC which tells standard DVD-ROM drives that the disc is much shorter than it actually is. Trying to seek past that point manually just results in an unceremonious EOF.

A brief perusal of BitTorrent sites reveals that many people have absolutely no trouble ripping Xbox games for the purpose of distribution. How do they do it? Apparently, by modding an Xbox, running Linux on it, logging into the Xbox, loading a game disc into the Xbox’s drive, FTP’ing to another computer, and reading the raw game sectors from the disc using the Xbox’s drive, which apparently uses a different set of rules for reading. Not being in possession of an Xbox and having no desire to invest in one at this time, I am at a bit of a loss to study these discs, unless there is a solution I am overlooking.

Based on the filesystem format doc, I am quite confident I could write a FUSE module for browsing the filesystem in short order, based largely on my gcfuse code.