My PVR System

Introduction

This is a log and description of my research and construction of my Linux based PVR.

Requirements

Nice to have:

Software

Operating System

I selected Fedora Core 2 because:

PVR Software

I have selected MythTV. It was my selection because:

Xine Configuration

xine-hd is supplied with my card so I wanted first to get this up and running becuase 1) it is much easier than MythTV and 2) would let me know that my capture card and graphics card drivers were working OK. At first I didn't have a video card capable of using XvMC so it was only defaulting to xv (XVideo) which is much more CPU intensive. Here are some figures:

Resolution xv XvMC
720p 32% 13%
1080i 40% 19%

The first step when setting up xine is to fill in the channels.atsc file. I did this by running the following command:

$ dtvscan /dev/dtv > ~/.xine/channels.atsc.

I don't know why, but dtvscan can sometimes find channels that are not there, fill in incorrect attributes for channels found, and even miss channels altogether. After running this for the first time you will need to verify each channel and fill in or correct any missing data. How do you know what to expect. Well you can go to the following web sites:

The format of the channels.atsc file is as follows:

There are six fields per line of text separated by colons. These fields are:

Field Comment
Channel name  
Additional info I don't know where xine displays this information
Channel number major.minor like 4.1
Station Frequency
Program number  
Disabled 0 to enable channel 1 to disable

Here is my ~/.xine/channels.atsc file for the North Dallas area.

MPlayer Configuration

Here is the script that I am currently using to run mplayer.

mplayer -fs -vo xvmc -cache 8192 -ao alsa -vc ffmpeg12mc $*

MythTV Configuration

The MythTV configuration was by far the most difficult part of this whole operation. I started the configuration process following Jarod Wilson's excellent MythTV setup instructions. My capture card drivers support FC2, but not yet FC3 (you can if you know what you're doing) so I followed his earlier FC2 instructions. I think that if I had a older more main stream analog capture card then Jarod's instructions would have worked perfectly and it would only have taken me a half a day to be up and running. Unfortunately I have a new HDTV tuner card and therefore I had to use more recent versions of a lot of the various software packages which means that there weren't prebuilt RPM's that I could just grab with apt-get. In the end I wound up:

  1. Compiling a more recent 2.6.9 version of the kernel with the appropriate patches provided by pcHDTV. This was done by following the instructions provided by David George.
  2. Getting the latest MythTV from the head of CVS.
  3. Getting the latest MPlayer (1.0pre6) tarball.

Notes:

  1. I was unable to rip DVD's until I manually created /video/mythvideo.

DVD Ripping

So far DVD ripping is far from perfect. I've tried a couple of DVD's and all of them have failed to rip. I can rip selected chapters, but whenever I try to rip an entire CD I get the following error displayed in the /video/mythdvd/temp/mtd.log file:

18:11:51: job thread beginning to rip dvd title
18:18:59: Error: DVDPerfectThread read failed for 286 blocks at 1752018
18:19:00: job failed: job dvd 1 1 0 0 -1 /video/mythvideo/MovieTitle
18:21:18: a client socket has been closed

What really sucks is that mythfrontend doesn't catch this error and it appears as if the DVD rip succeeds. From what I can tell this is just a bad read caused by a scratch, but I can play this DVD in my DVD player just fine and the DVD doesn't appear to have an unusual amount of scratches.

Hardware

System

This was one of the most difficult components to research. I wanted a small reasonably quiet system with 2 PCI and 1 AGP slots and onboard audio. I selected the FIC Condor because it met these requirements, fit within my size requirements, and was affordable.

CPU

Although I don't need a particularly fast CPU I selected a faster one because I expect to be transcoding video files and want to eliminate as much time that I may be waiting for this operation to complete as possible.

From what I've read the older Northwood's run cooler and are even faster than the Prescott's at the same clock speed. I need a Socket 478 CPU 800 MHz FSB CPU. Because cooler also means quieter I went with these.

Drive

Fry's had a great deal on a 160GB hard drive for $59 so I picked one up. After the OS is installed the video partition is only 139GB which leaves us with an approximate 16.8 hours of recording time assuming all of the content is 720p or 1080i. My plan is to transcode the recordings offline down to 480p to increase capacity. My system has space for a second drive which I may add at a later time.

RAM

Single DDR 400 (PC3200) 512MB chip. DDR PC3200 • CL=3 • UNBUFFERED • NON-ECC • DDR400 • 2.6V • 64Meg x 64

Input Video

The pcHDTV HD-3000 card was one of the few (if only) with good active Linux support. I almost went with the Fusion III, but at the time it only had support for Australia's DTV format.

Output Video

I spent quite a bit of time researching and playing with different cards. After trying a nVidia geforce MX400 and a MX4000 I finally settled on a FX 5200. Only the 5200 had hardware MPEG2 playback. It has hardware MPEG2 support if xdpyinfo reports the following extension: XVideo-MotionCompensation.

Antenna

The previous owners of my house had a small antenna in our attic. It was not good enough to pick up all of my desired stations so I purchased a 10' mast and mounted it outside. There was one channel that was around 65% signal strength so I bought a new better antenna, but there was only a marginal 3-5% improvement. To find out what kind of antenna you should buy visit AntennaWeb.org.

Location

My current TiVo device is a Sony SAT-T60 DirecTV receiver. AFIK it is fan-less, but even the hard drive is enough to bother me at times. I knew that the only way that I would be pleased was if the device had no drive and no fan which is pretty much impossible. Instead I opted to put my PVR on the opposite side of the wall which located it in my kitchen.

Cost

Item Description Mfr. Model Linux Driver Price*
Barebones system Case/Motherboard FIC Condor VL67 Yes $ 254.03
CPU 3 GHz Socket 478 P4 Intel Pentium 4 N/A $ 170.50
Drive (160 GB) Hard Drive Western Digital WD1600J N/A $   59.00
RAM 512 MB DDR 400 (PC3200) Crucial CT6464Z40B N/A $   99.58
DVD Drive DVD±R/DVD±RW Sony DRU-710A  Yes $   80.00
NIC Onboard Intel 82562EZ Onboard N/A Yes  $        -  
Audio Onboard Realtek ALC202A Onboard N/A  Yes  $        -  
Remote Universal remote Radio Shack 15-2116 N/A  $   34.63
Input video card HDTV capture card pcHDTV HD-3000 Yes $ 196.64
Output video card nVidia GeFORCE FX 5200 PNY FX 5200 Yes $   86.49
Antenna UHF Antenna Channel Master 3016 N/A $   30.00
Antenna hardware Mount and 10' mast Radio Shack 15-885B N/A $   36.99
Total       $ 1047.86

*All prices include shipping and tax.

TODO List

Before the system can go online The following must be completed:

Miscellaneous Links

Summary

I didn't put together the cheapest system, and I also didn't do it solely to save on Cable/Satellite costs. At $47.79 for my DirecTV this system will take 22 months to pay for itself.

What I don't like about my system: