Byte.com Logo Byte.com
February 9, 2004

I’ve been an ardent proponent of server-based digital media for a long time. Way back in 1999, technology finally reached the point where I could migrate my music collection from CDs to a server, with the result chronicled here . Once that was accomplished, I naturally begin work on moving my video collection to a home server as well.

In the millenial year 2000, I found that creating a video server was impossible on nearly every front. My home network couldn’t handle the bandwidth. I didn’t have decent client devices to play stored video. And my server didn’t have the storage capacity to hold my entire video catalog.

I’m happy to report that at the outset of 2004, all of these problems have vanished, and it’s now completely feasible to store your entire video collection on a home server. This article is going to tell you how to do this, step by step, in a simple and easy fashion.

In order, you’ll learn how to rip your DVD content to your hard drive, convert that content to the super-efficient DivX format, and how to play those videos using off-the-shelf players, over either a wired or wireless network.

The methods I’m describing here aren’t necessarily for everyone. This article intends to provide a simple and straightforward solution for folks who want the benefits of a jukebox, but don’t want to invest days and weeks learning how to use complex tools. You might want more. Check the disclaimer to see if you should take the path less traveled.

Grabbing the Content

Those DVDs stacked up in your entertainment center have digitized video stored in an encrypted MPEG-2 format. The actual size of the movie varies depending on length, screen size, and compression settings, but most feature films clock in somewhere between 3 and 5 Gigabytes.

No doubt your Windows PC is able to see those files without any trouble. If you insert a standard title into your PC’s DVD drive, you’ll see something like the listing shown here.


Directory listing of Erin Brockovich

By convention, the MPEG-2 video is stored in VOB files in the VIDEO_TS folder. Everything else on this particular DVD is software and other fluff for PC users. For the purposes of the home server, we’re only interested in the video content.

Grabbing that data off of a DVD is a bit problematic. Yes, your PC can easily read those files, but unfortunately the MPEG-2 content has been encrypted so that it can only be played through a licensed piece of hardware.

Fortunately, there are a few excellent programs that are able to bypass this protection, allowing you to decrypt the data and copy it to your PC simultaneously. The program I recommend for this purpose is called DVD Decrypter. It’s a completely free piece of software for Win32 PCs, and you can download it here.

A couple of notes about DVD Decrypter. First, if your PC is in the Win9X train, you will also need to download ASPI drivers for your DVD-ROM. (You can get these from the Adaptec ASPI download site.) Second, it is illegal to distribute this program in the United States! Yes, that’s right, it is not legal to sell software that accesses the DVD content that you paid good money for. A more detailed discussion of this can be found in the DMCA Sidebar

Ripping your DVD

Installing DVD Decrypter is a straight-ahead process, and I won’t go into any of the details here. Once you have the program installed, start it up, and select the Mode menu option. Set the mode to the IFO setting. This is the most straightforward way to pull the correct VOB files from the DVD.


Selecting IFO mode in DVD Decrypter

The real excitement comes when you are ready to rip the content from your first CD. After you start DVD Decrypter, place your DVD in your DVD drive. Depending on the packaging of your DVD, you may be asked to install software that ships with the DVD - just say no! This software won’t help you in the ripping process.


DVD software installer

DVD Decrypter should automatically detect the presence of the DVD in your drive. If it doesn’t, you can select the appropriate drive using the drop-down box labeled Source. After it finds the DVD content, DVD Decrypter looks through the various programs on the DVD, and selects the longest one. There are rare occasions when this not the actual movie, but 99 times out of 100 this is what you should select. (I’ll tell you how to verify that you got the correct program later in this section.)


DVD Decrypter selects the longest program

At this point, I usually click on the Destination icon and change the destination directory to the location I prefer. All that’s left after that is to click the bottom icon showing the DVD to Hard Drive picture, and the ripping process starts.

Ripping the disk is really not much more than just copying the files from your DVD drive to your hard drive, so the process will go pretty quickly, especially if you have a nice high-speed DVD-ROM. The figure below shows what things look like while the extraction is in process. If you love details, be sure to turn on the log window so you can get the works.


The DVD Rip in progress

Verifying Your Rip

Once DVD Decrypter finishes its work, you will have a nice collection of files in your destination directory. You should have one IFO file, a collection of VOB files that are each up to 1 GByte in size, and a text file. A sample of that is shown here.


The results of the rip process

DVD Decrypter created the text file to describe what’s in the various streams you’ve captured. The IFO file and the VOB files are decrypted copies of what was on the DVD. Before we move on to the encoding phase, you’ll want to verify that these VOB files do actually contain the contents of the movie as you expect to see it.

To do this, I like to use another great piece of free software, the VLC media player from Videolan.org. Follow the links from Videolan.org home page, download and execute the install package, and you’re in business. Once you’ve done that, just start the player, and one by one drag the VOB files from their target directory right onto the VLC control panel. I usually do a quick check to make sure that I’ve got a series of VOB files that start at the beginning of the movie, end with the credits, and appear to have some reasonable content in the middle. A typical view of the process is shown below.


The VLC Media Player in use

MPEG-2 Bad, MPEG-4 Good

So at this point, you have the files in MPEG-2 format, they’re on your PC, and they’re playable on your PC. Aren’t you done?

The answer is no, you probably aren’t. Given the realities of network bandwidth and hard drive cost, MPEG-2 storage is still probably not quite right for your home jukebox. Just as an example, let’s look at the numbers for Just Married, one of the finest movies of 2003. After ripping this movie to my hard drive, I see that the four VOB files take up 3,761,000,000 bytes.

Using a calculator shows us that this 95 minute movie must have a bit rate of approximately 5.28 Mbps - probably not reasonable for an 802.11b network. Even under ideal circumstances when there is only one stream active on the network, it would be tough to keep up that kind of throughput. Put the network under only a moderate load, add in typical impairments to reception, and you’re just not going to be able to watch Ashton Kutcher and Brittany Murphy gallivant around Europe without lots of breakups and pauses. No fun.

The second problem is one of simple economy. I have perhaps 100 DVDs that I want to store on my hard drive. At a price point of roughly $1/GByte, MPEG-2 storage of my collection is probably going to set me back close to $500, and will mandate an array of big drives, complicating my server setup.

Fortunately, there is a readily available solution to this problem. The MPEG-4 video standard, ratified in 1999, provides a video codec that can compress data much more effectively than MPEG-2, albeit at some increase in the required CPU power. Fortunately, CPU power is something most of our desktops have plenty of.

Packaging MPEG-4 Streams: DivX

The most common way to store and distribute MPEG-4 video is using what is known as the DivX format. This format encapsulates an MPEG-4 video stream and an audio stream in an AVI file. AVI files are widely supported on a wide variety of platforms, and generally all you need to play DivX video is a DivX video codec and the appropriate audio codec, usually MP3 but sometimes AAC.


The DivX player

The DivX codec used to create these AVI files is built and supported by DivXNetworks, a company that grew out of the original hacks and Open Source projects that gave birth to DivX. DivXNetworks not only creates codecs and other software tools, they also have a certification program for hardware manufacturers. There is a lot of good information and support on their web site at www.divx.com.

Typical MPEG-4 streams created with DivX codecs will be only perhaps 30% of the size of the originals. This reduces network throughput down to something under 2 Mbps, which makes it much more likely that I can ship movies over my 802.11b network. It also reduces the cost of storing movies on my hard drive down closer to the $1 range, making it more palatable.

I should point out that squeezing DivX video down to radically reduced sizes is a popular activity. A common goal is to be able to store an entire movie on a single CD. In this article I’m always assuming that you want to store your DVDs at archival quality, so I won’t be trying to explore the outer reaches of size reduction. When my DivX file is squeezed down to 20-25% of the size of the original MPEG-2 video, I find the quality to be noticeably degraded.

Using Dr. DivX to Create MPEG-4 streams

Start poking around on the web for advice on how to convert MPEG-2 video to DivX format and you’ll quickly realize that everyone and his brother has a different notion of how to skin this cat. Unfortunately, when you start browsing through the tutorial and how-to guides, you’ll see that there is a fairly steep learning curve associated with most of the packages out there.

For those of you who are looking at this conversion simply as a means to an end, I will recommend the use of a tool that doesn’t have quite as many bells and whistles, but will do a great job on nearly all of your video conversions. Dr. DivX is the conversion tool sold by DivXNetworks that fills the bill quite nicely.

The Dr. DivX page on the DivX.com site has information about Dr. DivX, as well as links to download and purchase the program. Please note that you can use the program on a trial basis for 15 days to see if it meets your need. I definitely recommend the trial run before purchasing Dr. DivX.

Downloading and installing Dr. DivX is a straightforward process, and I won’t provide any additional details here. The procedure will install both the DivX codec and the app on your PC, and will optionally install a DivX player. (I don’t see any reason to install the DivX player, so I don’t recommend that option.)

Dr. DivX has one additional requirement that you might not have on your PC, which is an AC3 decoder. This software is required to decode the audio in your captured DVD VOB files. There is a free package called AC3Filter available on its SourceForge project page at ac3filter.sourceforge.net. This is an option-free install which simply makes the AAC encoded audio understandable to Dr. DivX.

With the software installed on your PC, it’s now a pretty simple set of steps to turn that ripped MPEG-2 data into a tightly packed DivX file.

Step 1: Selecting the Input

When you first start Dr. DivX, you’ll be presented with the screen shown here.


Dr. DivX opening screen

You’re going to be converting video files, so select the “Video File” button. This will present you with a standard Windows File Open dialog. You will then want to navigate to the folder where you stored the VOB files ripped from your DVD.

You should see a list of VOB files with a name in the format VTS_XX_N.VOB, where N starts at 1 and works its way up by steps of one. Simply select the first VOB file as your input. Dr. DivX will automatically pull in all the VOB files in that sequence.

Dr. DivX will then pop up a dialog that offers you the opportunity to exclude any of the VOB files from the input to this session. You should assume that all files are part of your input and pass on this option. Dr. DivX will then do a bit of processing on the input before moving on.


Dr. DivX offering you the chance to exclude files

Step 2: Selecting the Audio Track

The next screen is the audio selection dialog. Most DVDs have several audio tracks, and Dr. DivX needs to know which one you want to include in the AVI file.


Dr. DivX audio input dialog

In general the first track is the one you will be using, but it’s good to preview it here before moving on. The play button lets you hear the actual content of the audio track, and you can use the slider to find a spot in the soundtrack where there is some dialog. The most common mishap that can occur here is the inadvertent selection of the wrong language.

After you’re comfortable that you have the correct track, click the Next button and move on to the next step.

Step 3: Output Configuration

The next dialog is labeled “Choose Output”, but it’s really more of a preliminary configuration step. The first thing to observe in this dialog is that it asks you to select a certification level. This selection is designed to make sure that you create a DivX file that can be played on your output device. All of the playback scenarios discussed here will work on the Home Theater setting, so choose that.


Dr. DivX Output Configuration dialog

In the section of the dialog labeled “Encode the DivX Video to:” you have a couple of options. I recommend that you select the “Make a Quality file” drop down box and select the “High” option.

The Profile Output of the dialog shows you at this point what parameters have been chosen by default for this encoding. You will have the option to change all these in the next couple of dialogs, which you will reach by clicking the “Next” button.

Step 4: Basic Settings

You’re now on the Encode Video dialog, which implies that you are ready to go - but this is a bit misleading. You should go ahead and select your output file name at this point, but don’t click the Encode button yet! There are a couple additional screens of configuration you need to go through before completion.

At this point, instead of pressing the Encode button, click the “Modify Settings” button. This will provoke a warning from Dr. DivX, which you will have to acknowledge. It’s true that modifying things in these advanced settings can hose up the process, but you are only going to make a couple of small changes.


Dr. DivX Basic Settings dialog

Clicking the “Modify Settings” button brings up two additional windows: the Basic Settings dialog and a Preview window. The Basic Settings dialog provides an opportunity to modify the resizing and cropping recommended by Dr. DivX. In general I’ve found that you should leave these settings alone - Dr. DivX does a good job of selecting the appropriate values. (Although in a couple of instances I’ve found that the Good Doctor recommended resizing and as a result fouled up the aspect ratio.)

The Preview Window gives you an excellent opportunity to do a sanity check on your video, allowing you to see if all the recommendations are correct. Simply click on the Play button and see what plays back. You should see the video you expect, with the audio track you selected, properly synchronized and cropped.

The Basic Settings dialog also allows you to change the encoding frequency of your MP3 output. I frequently change the recommended 128 Kbps setting to 160 Kbps.


Dr. DivX Preview window

You have just one final step before the encoding starts. Click on the “Advanced Settings” button to bring up the final dialog.

Step 5: Advanced Settings

The final dialog you will see before encoding is the Advanced Settings dialog. There are a lot of options here, but I’ve found that you can ignore most of these without too much effect on the final output. I change just a couple of things here. First, the dropdown box that specifies the Variable Bitrate mode will default to 2-pass. Change this to 1-pass.

The second change is in the Bit Rate, just above the drop down box. I will typically increase the value here to be at least 30-40% greater than that recommended by Dr. DivX. For example, on a typically sized video, Dr. DivX will frequently recommend a bit rate of 1000 or 1100 Mbps. I’ll usually bump that up to 1500 Mbps.


Dr. DivX Advanced Settings dialog

These changes I’ve suggested will be anathema to many experienced video hackers, but I think the difference is one of motivation. Dr. DivX is set up to do a good job of minimizing the output file size, but I think it does so at the expense of quality. I’m not concerned about getting my DVD to fit on a single CD, all I want it is an excellent quality copy on my hard drive.

I’ve found that if I let the DivX codec do its thing in 2-pass mode, I see far too many encoding artifacts, regardless of the suggested bit rate. The single pass method may not be optimal, but it has the advantage of producing the high-quality output I want. In most cases the copy is indistinguishable from the orginal DVD.

At this point, you’re ready to set the process in motion. Press the “Encode” button, and you’ll see Dr. DivX cogitate a bit before starting the encoding process. Once it starts, you should sit back, relax, and wait.


Dr. DivX encoding

How long will you have to wait? That depends on the speed of your system. If your machine is a high-end P4 with a 2.5GHz CPU, you may well be able to encode near real time, which means you’ll have a complete AVI file in a couple of hours. A lower speed Celeron may only be able to encode 5-10 frames per second, which means you probably want to kick this process off just before you go to bed.

Eventually it will complete, and you are ready to view your encoded masterpiece. How do you do this? Read on.

The Payoff - Watching Your Movies

Ultimately the goal is for you to be able to sit back in your home theater, browse through your collection of videos, pull one up, and watch it in all its glory. Unfortunately, this is the weak link in the entire chain - you are wandering into uncharted territory here. But, there’s plenty of fun to be had as an early adopter, so I’ll lay out the options and you can decide where to go.

Right now there are three different categories of solutions for your DivX home theater viewing. They are, in no particular order:

  • The high-end media PC
  • The dedicated appliance
  • The home-brew solution

Each of these have their merits and disadvantages. I’ll take a look at the options here and let you decide for yourself.

An XP Media Center PC

You probably noticed in 2003 that Microsoft was pushing something called Windows XP Media Center Edition. Media Center PCs combine special hardware and software to create a box that fits nicely into your living room. Ideally, this PC is quiet, unobtrusive, operable via remote control, and connects to your TV and sound system.

The Media Center PC is more than capable of playing DivX videos, and is probably powerful enough to act as a server to other systems around your house. You can find out a little bit more about this version of XP at Microsoft’s Media Center portal.

When it comes to managing your home video collection, Media Center claims to have just what you need. Right out of Microsoft’s mouth:

Media Center is a full-screen interface that helps you access more entertainment with less effort. Using the Media Center remote control and Media Center interface, you can access your entertainment using just one remote and a handful of common commands. From your favorite chair, use the Media Center remote control to browse TV Program Guide listings for shows to watch and record. Browse thumbnail images of your music, photos, and videos to find entertainment easily. Sort choices by artist, show or album title, or genre. While you browse your entertainment choices, the Now Playing window keeps your currently playing media selection in view and within easy reach. You can also access Media Center while sitting at your desk using a mouse and keyboard.


Media Center PC

Now, I have to give full disclosure here and let you know that I don’t have a Media Center PC, so I can’t comment on whether the software is really particularly friendly. All I can say for sure is that the underlying technology for playing DivX videos is there in Windows Media Player, so you aren’t going to have any problems there. I can also say that Media Center PCs are manufactured specifically for the purpose of recording and playing video, so Microsoft has put a lot of work into the user experience.

Sounds great, what’s the downside? I really see only two downsides to the Media Center PC. First is price. This is an expensive box. At a time when desktop PCs are getting really cheap, manufacturers such as Dell, HP, and Gateway see the Media Center PC as a way to sell a system for a nice high price. Expect to see something well above the $1000 mark, with an average system probably going for $1500. (XP Media Center machines can be had for under $1000, but I haven’t seen an XP Media Center 2004 machine going for that price.)

The second downside of the Media Center PC is simple packaging. This is still a PC. The manufacturers have done a lot to make this thing fit into your media room, but they can’t change the fact that it’s a PC. It’s big, generates a lot of heat, and requires all the PC handholding and maintenance.

The KiSS DP-500

The KiSS DP-500 is in the dedicated appliance category. Basically, the DP-500 combines a basic DVD/CD/MP3 player, a DivX decoder, and a network interface to create a nice, dedicated, media hub. When combined with server software running on your PC, the KiSS has the following notable capabilities:

  • Playback of DivX encoded video across the network (or from your CD or DVD)
  • Playback of MP3 files across your network
  • Browsing through JPG format photos across the network
  • Access to Internet radio stations using the Shoutcast format

In addition, there is a fairly active KiSS user community, which provides a lot of peer-level help.


The KiSS DP-500

I was pretty excited when KiSS announced the DP-500, and quickly worked to get my hands on one. This machine does not have much distribution in the US right now, so you will have to work a bit to find one, but armed with Google and a credit card you should be in business soon.

The KiSS box installs in your media environment exactly as a DVD player would, with the additional requirement of adding a network connection. No wireless support is built into the box, but I had success in both a wired configuration and using a wireless bridge.

KiSS uses a Linux kernel in their box, so it would be plausible to use SMB to access files directly from my Windows host, but unfortunately they did not take this avenue. So instead, you have to install a piece of software on your Windows server that feeds files of all kinds to the Kiss player. This PC-Link software is incredibly feature devoid, offering virtually nothing in the way of help for organization and categorization of media.


PC-Link software

On the plus side, since PC-Link has little to do except pump bytes out onto the network, it coexists with your other server-side applications pretty well. It would have been nice had it been installable as a service, so you don’t have to log in to your PC to activate it. Better yet, it would have been nice to be written in Java, so it wasn’t tied to Windows servers. However, there are a few third-party replacements


The KiSS Main Menu

Playing DivX videos on the KiSS player couldn’t be simpler. From the main menu you select the Video menu, then you are presented with a list of Videos from your server. Pick the one you want to see, and it starts playing on your TV just as if you were watching a DVD.


The KiSS Video Menu

There isn’t much you can do while watching a DivX video on the Kiss machine. The biggest headache is the fact that you can’t set bookmarks - so if you want to switch between programs, you had better write down the current time in the video. And although you can get a static on-screen display of info about the current video, you don’t get an on-screen view of the current position, so you need to pick that up off the front panel.


The KiSS video info screen

All in all, KiSS gives you a pretty good experience, and makes the home video jukebox a reality. But that doesn’t mean the experience is perfect. There are some pretty big problems with KiSS, and they are bad enough that they mean I can only recommend this device with some serious reservations.

The first big problem with the KiSS player is its stunning lack of features. This is a very bare-bones experience, and it is going to hamper your ability to enjoy the sysytem. Critical features that are missing in network play include:

  • Decent browsing features for movies - no hierarchies, sorting, thumbnails, etc. You had better be happy looking at a single continuous list of movies.
  • Bookmarks or other way to save your current position within a movie.
  • The ability to retard or advance the audio track when synch problems crop up.
  • More than rudimentary subtitle support.
  • Aspect ratio and screen position adjustments of a movie as it is being played.

As an example of the poorly implemented UI, you only have one way to navigate through a list of videos: pushing the up and down button on your controller. If you have 100 videos, and you want to watch number 100, you get to push the down button 99 times. That’s right, there’s no page down feature, and there’s no repeat on the remote control.

Naturally, there are similar lists of missing features for the music and photo features as well, but those are topics for another article.

The second big problem with the KiSS player is simple: firmware bugs. For a product that has been out for close to year, and is up to version 2.7.4 of its firmware, this is a pretty unstable product.

My KiSS player has lots of annoying little habits, such as powering down in the middle of a movie, falling apart when asked to fast forward or fast reverse, locking up when navigating menus too quickly. Menus sometimes break, items disappear, and other inexplicable problems crop up. KiSS tech support was not helpful when it comes to these problems. Just as an example, when I describe the exact process by which I make a DivX file, I would expect the support crew there to be able to comment on whether that file could in fact be played by the KiSS DP-500. But no such luck - they say that they can’t help with encoding problems.

So how can you know if a stream is valid for your KiSS player? Apparently you try to play it, and if the box crashes, it’s not valid! This is another bone of contention on my part. I would think that a polished product would display some sort of error message when confronted with input it doesn’t like. That might help the debug process a bit, don’t you think?

KiSS is ambitious, and has a neat product. I’m confident that in 2004 somebody will market a similar product that is rock-solid, does what it is supposed to do, and take KiSS’s market away from them.

Play@TV

When I first saw the specs for the Play@TV NMP-400, I was sure it was the media player of my dreams. Like the KiSS DP-500, it supports server-based playback of movies, photos, and music. The Play@TV box eliminates the DVD drive though, which significantly reduces the price of the box, and also cuts way back on its size. The Play@TV box is an attractive, little unit that looks nice while remaining quiet and unobtrusive. You wouldn’t have any trouble putting this in your media center.


The Play@TV Unit

The NMP-400 not only looks nice on my shelf, it also cuts down on cable clutter by having a PCMCIA slot available for wireless use. I can plug an 802.11b card into the NMP-400 and get immediate access to my wireless network without the need for an external box, as with the KiSS DP-500. Nice.

Unlike the KiSS unit, Play@TV has features galore on both the server and client side - it really meets my expectations. The Media Organizer on my server lets me import and categorize my movies from all over my hard drive, or even all over my network. I can add information to each movie such as directory, actors, release date, and so on. The organizer will extract thumbnails from the move that are used in the menus on the client. All quite nice. I can even use the organizer to watch the movie on my PC, although that’s a bit superfluous.


Info on the current movie

Just as an example, the screen shot above shows the type of info I can see during the playback of a move on the NMP-400. A nice on-screen display showing how long the movie is and where I am in the current view. Just what I was hoping for in the Kiss DP-500.

The folks at Play@TV have a much better handle on the presentation of your movies, videos, and photos. In each case you have a lot of nice choices of how to sort titles, use thumbnails, create playlists, and more. And despite the fact that unit appears to have been entirely engineered in Korea, the US localization is excellent.


The Play Media Organizer

Given all this, it is with a very heavy heart that I have to say the PLay@TV NMP-400 is complete unacceptable as a client for your home video jukebox. The simple reason for this is that the NMP-400 does not support DivX or any other MPEG-4 movie format - it requires an MPEG-2 stream.


Play@TV Advertising Materials

I’m a little bitter about this shortcoming. The Play@TV is clearly advertised as supporting DivX. (See the capture above taken directly from their web page.) But immediately after pulling up the help file, I ran into some text that was clearly taking me into an unhappy area:

Note: What is a codec? Here, the word codec refers to software that implements an encoding/decoding process when digital content is stored (encoded and compressed) and played (decoded and decompressed) on your PC. Because Play@TV depends on your PC’s ability to play such encoded content, you will need codecs installed on your PC that are appropriate for your content. As an example, popular codecs for digital video include MPEG1, MPEG2, and WMV.

What’s worse, I see much later in the document that Play@TV specifies requirements of a P4 CPU running at over 2.4 GHz for even MPEG-2 files. This is just crazy, all the CPU on my server should have to do is shovel bits onto the network!

After doing some more digging, it turns out that the whole enterprise is a giant hack built around the slightly anemic player. Since it can only support MPEG-2 streams, everything on the PC has to be transcoded. In other words, when I am viewing a DivX movie, it is being decoded on my PC, then recoded as an MPEG-2 stream. And Yes, Virginia, that does take a lot of CPU power.

It gets worse, of course. Even if you were willing to watch content ripped straight from your CD, you would still be in trouble. That 5 Mbps stream just won’t fit very well on your network, so the Play@TV server software has to transcode it down to a smaller size, and possible do some frame dropping, in order to make it through your narrow-pipe 802.11b. (And despite the presence of a PCMCIA slot, forget about 54 Mbps 802.11g - that’s not supported either.)

Finally, even if you swallowed hard, bought 3X the disk space, and connected your client player via a wired network, you would still not be out of the woods. The first time you tried to fire up two clients at the same time your PC would be completely out of gas. (Unless you have a liquid-nitrogen cooled 5 GHz P4.)

I feel bad getting snookered by these folks, but at the same time I have to admit that the Play@TV box gives me some optimism. If the engineering team in Korea would just add a DivX decoder chip to the motherboard of this device, it would be my dream machine. Somebody will ship that machine in 2004, and I hope it’s these guys.

Hacked Xbox

A general purpose PC is in many ways the ideal client device for playing DivX movies. The problem is just that a desktop PC is not really cut out for life in your living room. If only someone made a cheap PC that had enough power to play movies, connected directly to your TV, could operate without a keyboard, ran silently, and had some decent playback software.

Well, as it turns out, there is is such a device. It’s your garden-variety Xbox, made by Microsoft, after just a few very minor alterations performed by you at your kitchen table.


The Microsoft Xbox

The Xbox is currently priced at $179, and has nearly all the attributes I rattled off as key requirements for my movie jukebox client. It’s just missing one thing: the ability to execute any third-party software.

The problem is that Microsoft has locked down the Xbox by shipping it with a BIOS that will only execute code with Microsoft’s digital signature attached to it. If you’re a game vendor and want to ship programs that work with the Xbox, you have to climb all the way into bed with the mighty menace from Redmond. And when you leave for work in the morning, you are definintely required to leave a few bills on the nightstand.

None of this would be a problem if Microsoft would license some nifty media software for the Xbox, but so far that hasn’t happened. In order for Microsoft to make a profit on their way-underpriced hardware, they need you to buy games. Lots of games. If that Xbox just sits on your shelf so you can watch “Just Married” every night, they’re going to have to eat a couple hundred dollars of lost revenue, and that business model is so 1998 it hurts.

But fortunately for you, the world is full of hackers (in the traditional sense) who have made circumventing the Xbox BIOS their life’s mission. In a nutshell, an Xbox mod chip allows you to replace the BIOS in the Xbox. Once you can replace the BIOS, you can load software of your own.


Xbox Media Player Main Menu

There are scads of programs that can be loaded into a modded Xbox, but the one I’m interested in is called Xbox Media Player (XBMP). This is a free piece of software that has a really nice mix of features for music, photos, and movies.

Probably the best part about using XBMP is that it doesn’t require any server-side software. The XBMP team ported SAMBA to the Xbox, so they are able to browse shares on your server. This is really great for a multi-client setup as it adds very little load to the server.

You can set up arbitrary menuing systems for your movies using folders on your server and entry points on the Xbox. Organizing things is a bit labor-intensive, but there’s no limit to how far you can take your configuration.

XBMP even has some menu niceties, such as the ability to pull thumbnails down from the Internet Movie Database. It lets you set bookmarks in a movie, see exactly where you are in the film, and so on. It has a complete set of controls for adjusting image formatting, audio playback delay, the works.


XBMP access to the Internet Movie Database

If you could buy Xbox Media Player as a commercial Xbox app for under $100, it would be the hands-down winner for my video jukebox client. Unfortunately, you can’t, so putting together an XBMP system is only suitable for the serious hobbyist.


A typical setup screen in XBMP

I don’t know the legal status of Xbox mod chips, but they are fairly easy to purchase. Installing one is not for the faint-hearted, and a misstep or two in the process can result in you being the owner of $200 of scrap electronics. You can buy a pre-modded Xbox for less than $300, and perhaps that’s the best path for the cautious to take.

Once you have your modded Xbox, acquiring and installing the software is another adventure all in itself. Authors of programs such as XBMP are apparently legally prohibited from distributing binaries of their programs. These programs have to be built with Microsoft’s Xbox SDK, and you can be sure that said SDK has specific prohibitions against software that requires a modded Xbox.

Still, it’s worth noting that the Xbox solution currently offers the best set of features for a low-end device. If you’re the adventurous type you might have some fun getting the Xbox up and running as a media player. (Just don’t come to me for support, please!)

Conclusion

The goal of creating a home video jukebox is certainly a noble one, and we are just now on the leading edge of its possibility. The first two pieces of the puzzle, ripping and encoding, are mature enough that this article can give you cookbook steps towards creating DivX files on your server.

DivX should be the correct format for this venture - it compresses well enough to not place too many demands on your hard disk space and your network, and it is within reach of cheap client players. In a few years DivX might be supplanted by H.264 (aka MPEG-4 Part 10 or AVC,) but that is not yet visible over the horizon.

The client player situation is still a bit murky. If you’re sitting on a giant pile of Microsoft stock and money means nothing, don’t think twice about buying a Media Center PC. You’ll be happy. The rest of us have to make some compromises, which in my mind lead to three alternatives:

  • A cheap PC in a small form factor. Put some time into engineering noise and form factor issues, and then use Windows Media Player to stream video across the network to your TV.
  • The KiSS DP-500. A nice looking component, you just have to put up with a few bugs and an annoying dearth of features and usability.
  • A modded Xbox. Not only does it play your DivX files, you can game with it as well. Keep a quarter in your pocket at all times so you call your lawyer after Jack Valenti and Bill Gates break down the door and haul you off to jail.

Resources

  • DVD Decrypter Web Site This is a great piece of free software. It reads the VOB files from your DVD and decrypts them at the same time. There are a lot of programs that do this, but few that are as friendly and well-designed.
  • Adaptec ASPI driver download site If you’re using a Windows 9X PC, you will probably need ASPI drivers to allow DVD Decrypter (or other ripping software) to access your DVD drive. With Windows XP (and perhaps 2K) you may able to avoid the installation of these drivers.
  • Videolan.org The VideoLAN project has quite a few different pieces of work in progress, but the one I’m interested in here is their media player. It’s a free player that runs under just about every O/S you can name, allowing you to easily preview and inspect DVD content.
  • DivX.com The home page of DivXNetworks, the company that sells and supports the most popular codec for the DivX format. There is generally very good information on this page, particularly in the support forums.
  • Dr. DivX Page The page on the DivXNetworks web site where you can download a trial copy of Dr. DivX. At this time, you get a 15-day trial run with a full feature set. Thats plenty of time to experiment with this great video encoding tool.
  • DivX.com How-to Guides A nice informative set of documents describing various aspects of the video encoding and decoding process. At a minimum you should browse through “The Official DivX Guide”.
  • AC3Filter home page Home page for the free AC3Filter package. This DirectShow filter allows programs such as Dr. DivX to decode the AAC streams encoded in your DVD VOB files.
  • Microsoft’s XP Media Center page Microsoft has a nice page here describing how much you’re going to enjoy your XP Media Center PC. This page has links to some of the vendors selling Media Center PCs.
  • KiSS Technology home page KiSS Technology makes the DP-500 networked video player discussed in this article, as well as a wide variety of other digital media products.
  • Kaleidescape If it’s too much trouble to create this system on your own, you can now buy a hard-disk based system from Kaleidescape. It sucks in your DVDs and commits them to a hard drive. The base system can hold 160 DVDs, and will only set you back $27,000!
  • Home site for Play@TV The English language page for the Korean company that makes Play@TV. I didn’t cover it in the article, but they also make a package that lets you control your PC via a remote control, with the goal of making sort of a poor-man’s version of the Windows Media Center PC. If the software is as good as what I saw for the NMP-400, this might be a nice product.
  • Leadman Electronics Leadman is the US distributor for the Play@TV. You can use their site to locate dealers.

DMCA Sidebar

This appeared in Byte.com as a sidebar

The DCMA, MPAA, Your DVDs, and Ethics

Traditionally, copyright law in the United States has been fairly liberal in what it allows a consumer to do with a purchased work protected by copyright. Some of these freedoms are written down, others are the result of various legal decisions. Collectively they are known as fair use.

In the US we have usually felt that fair use included the right to copy materials for one’s own use. For example, back in the analog era I would copy my LPs to casette tape, allowing me to listen to my music in my car. Under the aegis of fair use, I’ve always presumed it was legal for me to copy my CDs and DVDs to my hard drive.

All this was fine until the US Congress passed the Digital Millenium Copyright Act (DMCA) in

  1. This act effectively made it illegal to circument copy protection mechanisms in order to access copyrighted material. This has been widely interpreted to mean that it is illegal to use programs such as DVD Decrypter to read DVDs that are your own personal property.

Well-known court cases over the past few years have shown that the DCMA is going to be used to prevent people from selling software that circumvents copy protection. But does that mean it’s illegal for me to use that software to copy my DVDs to my hard drive jukebox?

I don’t think so. The DMCA clearly says:

Nothing in this section shall affect rights, remedies, limitations, or defenses to copyright infringement, including fair use, under this title.

To me, that’s a slam dunk: I have the right to make copies of my CDs and movies for personal use. And I’m going to proceed with that thinking until Congress or the courts clearly demonstrate otherwise. (No, I’m not going to go to jail for the right to watch Lethal Weapon 4 on my laptop.) So in my personal, non-warranted, uneducated opinion, the personal copying described in this article should not give you even a twinge of guilt.

Where is the line?

The thing that worries the MPAA and other advocates for copying restrictions is a simple thing. Once we make it easy to copy DVDs for personal use, it’s just as easy to do so for illegal use. Once I have a 1GB copy of a classic move like Lost In Space, it’s an easy matter for me to give a copy to my son Joey as a really crummy birthday present. Or I could just send a copy of the original DVD to Joey, and he could watch the movie from his hard drive jukebox.

So let’s be clear about the lines. As long as you own the DVD, I believe it’s fine to keep a copy on your hard drive. If you don’t own the DVD, having a copy is theft. It’s theft just as clearly as if you went and pulled $20 out of Jack Valenti’s pocket. Just because it’s easy and hard to detect doesn’t make it okay.

Of course, I am not a lawyer, so my beliefs are not opinions you should stake your future one.

Doom9.net has a fairly interesting article discussing just this topic. And of course, the Electronic Freedom Foundation is all over the issue. Go to these sources for more information.

Video Jukebox Article Disclaimer

This wasn’t part of the Byte.com article, but is added here for completeness

When I showed an early copy of this article to correspondent Alexei K., his response was anything but positive. It was something along the lines of “Is this article paid for by DivX.com? Have you sold out completely?”

Alexei’s response is actually quite appropriate, taken from his point of view. You see, when it comes to video, Alexei is an enthusiast, an earlier adopter, a power-user, name your term.

Alexei wants to encode his video using the codec with the absolute best specs, and is willing to do a lot of research and investigation to determine what that is.

Alexei doesn’t want to pay for a somewhat good encoding package when there is free software that offers more power. He’s willing to spend a few hours learning how to use the package, and perhaps a few days tweaking it to do just what he wants.

And Alexei is really happy if he can do this without paying big bucks to a monopolistic vendor of O/S Software in Redmond, Washington.

Do you recognize yourself in this description? You might - video encoding is still fertile ground for the enthusiast. Jumping on board with Alexei can be an awful lot of fun, and if you have the time to spare, I say go for it.

But, if you all you care about is ripping, encoding, and watching your videos with a minimal amount of fuss, if you don’t want to spend hours reading How-to docs, and if you don’t want to do a lot of experimenting, tweaking, and fussing, then this article is right for you.

The important thing is that both approaches are valid - you choose the one that will give you the most enjoyment.

The Path Less Traveled

The home jukebox I described in this article will do a great job for most people. You can easily create archived copies of your DVDs and watch them with little fuss. But what do you do if you’re one of the 10% who wants more? What if you want to use a free codec that outperforms DivX? What if you want to do multi-pass encoding in order to squeeze every possible byte out of your videos?

I think the best place to start is doom9.org. Doom9 bills itself as “The definitive DVD backup resource,” and that’s not a bad description. The places you’ll want to visit are the Guides , an extensive set of how-to documents, the FAQs , with lots of details and short answers to questions, and most importantly, the Forum , where you can interact with other knowledgeable enthusiasts.

As Alexei knows, you will be able to find all the resources you need on this site to do the job, you won’t have to spend a penny on commercial software, and you’ll have an intimate understanding of the entire process. Most important, the 10% who populate this world do a great job of filtering the toolsets down to the rest to the other 90%. Easy to use tools like Dr. DivX evolve from powerful programs like VirtualDub. We all benefit as the cognoscenti do their work.


VirtualDub in action

Another site with good tutorials is DVD Digest . Read up, experiment, and enjoy!