Self-Hosting Movies with MoviX
The exploitation of Linux potentialities on x86 platforms increased quite a lot in the last few years, but an entire field of applications seems to me to be extremely underdeveloped. I am referring to dedicated CD mini-distributions, namely Linux distributions that live on a CD, contain exactly the software needed to run some particular application and automatically start that application at the boot. That is, they use Linux only to provide us a background from which to run some application directly from CD.
Let me provide a concrete example. Suppose you keep your favorite audio/video files on CD in several formats, such as DivX, XviD, MP3, OggVorbis and so on. Typically, when you try to play your files on a PC different from your own, one of the following happens: the machine has no HD; no player on that machine is able to play your audio/video format; the codec you need is not installed; or everything is there, but the playback quality is poor even though you know with the hardware playback should be pretty decent.
Now, suppose that together with your files you also burned on the CD a minimal Linux system that is able to boot directly from CD. It would start automatically and play all of the CD files. This way the CD would be “self-sufficient”, you wouldn't have to worry about any codec hassle, and you could be pretty sure that all PC resources are devoted only to the playback. Actually, you even would be able to play your files on a diskless PC. And, of course, you could still play all CD files from your favorite OS when you want to do so.
As you might imagine, such a philosophy is not limited to audio/video playback. You can create dedicated Linux mini-distributions for basically any application, including gaming, text processing, multimedia editing, network broadcasting and so on.
Let me point out the main advantages of such mini-distributions:
No wasted HD space.
Ready to run every time you need it.
Runs even on a diskless PC.
Runs even where Linux is not present, helping Linux diffusion.
This idea of “live” CD distributions is not new. Many good examples of both big (DemoLinux, Knoppix) and small (LNX-BBC, Devil-Linux) distributions are available, especially those that are routering and firewalling oriented. But, I could find very few examples of such dedicated ones (see Resources).
In particular, a few months ago I looked on the Net for a Linux CD mini-distribution that is able to boot and play automatically all audio/video files on the CD. I was very surprised to find none. Therefore, my only chance to get one was to develop it myself, and so I started working on MoviX. Now, I am not a Linux guru and I know close to zero about multimedia playback, but the beauty of open source is you can put together tools developed by people who know much more than you and still create something new and useful. I put together my knowledge of Slackware management (I've been fond of Slackware since 1994) and the MPlayer (“the” multimedia player) and IsoLinux (an easy-to-use Linux CD bootloader) package I had recently found out on the Net and began building my distribution.
Initially MoviX consisted in a single Linux CD micro-distribution, but after a lot of feedback and requests from MoviX users, the project split into three different packages, as follows:
eMoviX: a CD Linux micro-distribution (~7MB) meant to be embedded in a CD together with audio/video files that is able to boot and play automatically all CD files.
MoviX: a CD Linux mini-distribution (~15MB) able to boot and launch a console interface to MPlayer.
MoviX2: a Linux mini-distribution (~30MB) containing a full installation of XFree86 4.2.0 and able to boot and launch gmplayer, the MPlayer GUI.
If you use MoviX or MoviX2, after the boot you can get rid of the boot CD and use the interface to play most audio/video CD/DVDs. In short, while eMoviX makes your CD self-sufficient, MoviX and MoviX2 are some kind of “Swiss Army Knife of multimedia”, able to make any PC a powerful multimedia station. And because MPlayer is such a good piece of software, you can achieve good playback even on a P200MMX.
The point I want to make in this article is that developing this kind of dedicated mini-distributions is not hard once you have a few guidelines. I hope to encourage the development of more such distributions by describing below the main steps I followed to build the MoviX packages. The only thing I assume is you are accustomed to kernel/modules configuration and compilation.