2000-02-09

LinuxVCR

The LinuxVCR project attempts to build a complete system to record, view and archive TV programs and other video material in an easily manageable way. The system would replace a conventional VCR in the livingroom at a videophile-affordable price, and it would be controllable anywhere through the net as well as from the old VCR remote.

This system is supposed to replace a VCR in your living room. It should be more flexible and as easy to use and not overly pricey.

The complete system consists of a number of building blocks for which there are separate projects developing Linux support. These projects are in different stages of developement, and the most important job of the LinuxVCR project is to follow the work of these groups, collect information of them and support their work by contributing ideas and features supporting the LinuxVCR project needs.

The project is currently not much more than this page. I am only planning for now, gathering information about different silent casing and cooling solutions. Later I will test them and begin building a test machine. After that comes software developement with the actual hardware.

Building blocks

The fully functional LinuxVCR system would consist of the following building blocks. This outline of the system is evolving as the Linux support for different products gets better and new products emerge.

Computer system
A Linux computer with adequate processing and IO performance and silent casing.
Hard drive storage
For daily TV programme recording, enough hard drive capacity should be included.
Removable storage
For archieving programs, DVD-RAM probably is the best solution.
Codec
MPEG or MJPEG encoder hardware for real time compression and playback. Possibly Matrox RT2000 (for hardware MPEG-2 encoding), Marvel G400-TV (for lower price with hardware MJPEG encoding) or ATI all-in-wonder (for hardware MPEG-2 decoding).
Remote control
To really replace the VCR in my living room, it must be easy to control with a small device you can easily carry around.
Software
The software to control the VCR operations should be able to control grabbing the TV programmes with timer controls, coding and storing them, playing them back with easy controls and archieving the in the removable storage.

Computer system

The standard computer hardware does not have to be the latest and greatest, as the LinuxVCR is planned to utilize hardware video compression anyways. I believe the standard ATA-33 or -66 disk interface with reasonably current hard drives is fast enough to stream the video to and from the disks. Also the processor performance should not mean too much.

On the software side, the Linux kernel version is the most important part. Otherwise any standard Linux distribution should be enough. The kernel drivers the LinuxVCR project needs will most probably be in the developement stage for some time, and therefore the kernels used are the most recent bleeding edge developement versions. As the project starts while the kernel 2.3 series is in it's code-freeze state, this series and the upcoming 2.4/2.5 are the main developement plattform. No software will be back-ported to 2.2 kernels nor will the system be tested with them.

One important thing to look at is the physical casing of the computer. In a livingroom environment, the case should fit into the environment and it should not emit too much noise. Low-noise solutions or remote installations need to be evaluated:

I have now received a LapPower Whisper system casing, with some kind of very low noise drum fan - 24dB total system noise level while hard disk seeks they say. It was kind of expencive, but we'll see if it really is something we could use. The whisper system includes a regular 200W HIPPO power with a fan. The drum fan is meant to circulate air inside the chassis. It is installed on top of the case blowing air towards slot1/slota processor. There is a separate box inside the chassis for 3.5" hard drive. The drive is installed in the box with no screws or other attachments whatsoever - just pushed to its place in between soft styrofoam cushions. This is probably to prevent resonation and noise from carrying to the casing. Air flow is directed from the drum fan to inside this box also.

I h ave not been able to switch it on yet so I cannot confirm the noise level.

I have no more information in English about the Whisper system and I do not know yet the real manufacturer of the case. It's sold at www.lappower.se (Swedish) and www.lappower.fi (Finnish).

Another interesting cooling technology is the Arctic Circle cpu cooler by Montac. I received a couple, but have not tested them either. This is a quite quiet fan anyway, and might be a better and cheaper solution than the LapPower casing. Because the cooler is quite powerful, I think I can make it even more quiet by driving it with lower voltage and still get enough cooling for non-overclocked or underclocked cpu.

While I am very fond of AMD Athlon, the first models manufactured with 250nm technology dissipate a lot of power. I believe it is best to at least wait for the 180nm models. Also I would like to see what kind of effect underclocking has to power dissipation.

Hard drive storage

Hard drives are used in the project to store the daily time-shifted TV programming, so there should be enough room for your weekly TV series and movies. Hard disk space is cheap today, and it is easy to build a 120GB IDE system under $2000. The project should concentrate on assuring the biggest disks (IDE, SCSI) on the market are supported and easily configurable to a Linux system. Also the RAID (MD) features of the Linux kernel should be followed closely.

Video files will be huge in size, so it is important that the big file support in Linux filesystems (ext3) and libraries (64 bit file operations) as well as in applications stabilizes.

Removable storage

For more permanent storage, a DVD-RAM disk or some other removable media could be used. The project should follow closely for driver and software support for DVD-RAM devices and ways to manage the archived materials. Also easy splitting of movie files to two or three CD-ROM disks should be supported as CD-ROM is currently by far the cheapest removable media.

For the initial test equipment, I believe I will not be purchasing a DVD-RAM drive. Instead, for now I will be using a CD-RW drive for archieving movies, and a cheap DVD-ROM drive for reading movie DVD's. By the way, before purchasing a DVD drive, check out the list of boycotted region locked DVD drives.

Codec

The realtime frame grabbing and stream encoding needs special hardware. Affordable MPEG-2 hardware is just coming available with Matrox RT2000. Matrox Marvel G400-TV could be used for MJPEG encoding. Which solution would be the best for LinuxVCR is to be determined.

For Windows, the G400-TV already comes with complete software package that can be used as a programmable VCR. The project has a good example there what to build and what to improve. Also before driver support for linux, it is good to be able to test different compression ratios and picture qualities, so that we can plan the storage space and disk performance.

The windows software also shows that this is exactly the job the G400-TV was created for, and it really includes everything we need. More information at Matrox and reviews at 3DHardware.

But- do we want more? More quality, more compression? MPEG-2? Matrox RT2000 (see professional video tools at Matrox site). With the price tag of $1300, it might be a bit overkill for this project, but somebody might think it is worth it. Also it is not exactly meant to be used just to replace your home VCR - the software bundle and the lack of TV tuner tell you it is for video editing really. It does not fit in perfectly, you need separate tuner, and probably the driver support will not be as good as I hope it will be with G400-TV.

The idea behind requiring hardware compression comes from the fact that high cpu clock frequencies are needed for real-time MPEG-2 encoding, but they need powerful cooling solutions and this would increase the noise level. But with the upcoming 180nm Athlon processors this might not be a problem any more, and we might be able to encode MPEG-2 streams in real time with CPU. Therefore cards like ATI all-in-wonder 128 could be good solutions. ATI is a wonderful card as it is the only consumer device that includes MPEG-2 playback acceleration. This way it might be possible to encode MPEG-2 stream on CPU and still view a movie at the same time!

Remote control

To really replace the traditional VCR, the LinuxVCR must be as easily controllable as VCR ever has been. With remote controller, with simple play/stop/scan functions. The infrared interface available as an extension to desktop computers can be used as remote receiver, and the project should develope drivers for Linux for them, as well as to compile a database of remote codes.

Software

Besides all the driver projects for different components of the system, the system needs some kind of central controller program to take care of the user interface functions and timed recording of TV programmes.

Interesting software:

In addition to software directly involved in VCR functionality, we probably should include stuff like DVD playback and others, so that the whole system could be used with one easy user interface and also so that it could be controlled by just one IR remote. Software of interest for such subsystems would include:


Jaakko Hyvätti/Jaakko.Hyvatti@iki.fi/+358 40 5011222