Video Digital Recorder

Introduction

Video Cassette Recorders (VCR's) are very nice, but they do have some limitations. Video cassettes only last a few years, a copy of a copy looks like crap, and the cassettes themselves take up a lot of space. In addition, programming the VCR is a bit of a pain, and even so the programming capabilites are pretty limited. A Video Digital Recorder solves all of these problems and is a lot more useful. After checking out some off the shelf options like Tivo and UltimateTV I decided that they weren't worth the price, especially the subscription price.

Issues

Building a VDR from scratch would cost a little more initially, but more than make up the money by not having to pay for a subscription service. Windows isn't cheap, flexible, or stable enough to do what I want, so the entire system will be based on Linux. Desired functionality includes:

In case you are wondering, a VCD is a poor man's DVD. A DVD CD can store several hours of high quality audio and video, in multiple languages, and can also include a lot of extra stuff like alternate endings, cut scenes, and more. A VCD can store about two hours of decent quality audio and video on a normal CD, and can also be played on most stand alone DVD players. CD writers are very inexpensive now, and DVD writers are getting cheaper every day. My VDR will not be able to create VCD's or DVD's, but since it is hooked up to my local network I can easily transfer content to a machine that can save video to a CD-R or DVD-R.

The hardware I finally settled on initially stores content in a format called MJPEG. This added another function I wanted, which is to automatically convert content from MJPEG to MPEG2 when the VDR isn't busy. This is to save space on the hard disk, which will give me the 24 hours of storage I want. Another feature that I want to investigate is audio and video streaming, which would allow me to WATCH content as well as record it from remote locations. But first things first. :-)

For the longest time I had the hardware issues solved, and was saving shows with a Linux program called cron. It got the job done but wasn't exactly easy to use. So at long last I decided to get around to creating the actual VDR application, but I checked out the existing possibilities first. I found MythTV, which is a nice little hunk of software except for the fact that support for MJPEG hardware is currently broken. Therefore MythTV is pretty useless unless you have a very fast computer, which means you might as well not bother with the MJPEG hardware. After trying for many days I could not get MythTV working good enough with my hardware. I think writing my own simple application would be faster than fixing MythTV, but until then MythTV is barely usable for me.

Details

OK, let me say first off that this project combines many different aspects of Linux, which is always in a constant state of flux. The good news is that most things covered here are pretty stable. The bad news is that even so, there is no way to guarantee that you can reproduce everything I have done. In particular, getting the TV display working is especially challenging. If you find this information useful or that the information can be improved, please let me know.

Conclusion

So now I have a computer hooked up to my television, and it is so convenient to surf the web, check my email, or work on something the moment there is a commercial or nothing good is on that the only time I ever flip over to the regular TV is when the computer is recording something. In addition, I have a DVD player and music station, all of which I can control from the couch with either a standard remote or a wireless keyboard. If I forget to mark something to be recorded all I have to do is pull up a web browser and it will be recorded.


Mail James This document was last updated January 18, 2003. James Bearden is not responsible for all information accessible from this web page. Links to the rest of the Internet point to material maintained by many other people and organizations. Please read the following disclaimer before use of this WWW page.