Hardware Requirements

General Requirements for a MythTV setup

I thought the Wiki might benefit from a slightly more verbose section on general hardware requirements than that found in the MythTV documentation, so here it is.

As you probably know, Linux will run on pretty much anything, although at the time of writing I believe MythTV is only designed to run on x86 (and, more recently, x86-64) processors such as those made by Intel and AMD, so firstly you'll need a computer with one of those, which shouldn't be too difficult! At this point you may want to refer to the HardWare/Cooling Quietly How To which contains some information on keeping your processors cool and quiet. You'll need to make sure that the motherboard for your desired Myth box will be able to support things like large hard drives and lots of DMA traffic (some older VIA chipsets have very buggy DMA transfers which make them highly unstable when running MythTV).

You will need as many of these as the number of shows you want to record and watch simultaneously. (That is, you can record as many shows simultaneously (or which overlap) as you have cards, unless you're using one (or two) of them to watch LiveTV.) A lot of people settle for 1 or 2 of them. Some have an on-board sound digitizer, so you don't need a loopback cable and (an extra) soundcard. Myth Frontend only machines don't need one of these.

Depending on your needs you will want one with S-Video out (normal TV), SVGA (monitor) or DVI-D / DVI-I (projector/LCD/plasma/HDTV screens). The PVR350 has a TV-Out built in. Quite a few motherboards have TV-out on-board nowadays, though the quality varies.

You need a separate one for each grabber card, if it doesn't have an on-board sound digitizer. Nowadays most motherboards have built-in sound'cards'. Be sure the card is full duplex if you want to record and playback using the same card. The PVR350 has it's own audio-out.

Whilst the basic hardware configuration is simple, with this being the world of PC hardware and Linux, there are a million and one options that you may wish to take into account.

Most MythTV users seem to prefer hardware capture devices such as the Hauppauge PVR-250 and 350 TV cards (or digital DVB cards), which do all of the capture and compression on board. This means your CPU doesn't have to compress the TV stream itself, making the basic CPU requirements very low indeed. (e.g. A K2/266MHz system can use a PVR-350 to record one stream while simultaneously using it to watch such a recording.) People who use "dumb" capture cards (i.e. those without onboard compression) have to compress the TV stream in software using either MPEG-4 or RTjpeg, and so will require free CPU time in order to watch and record TV. Here are some rough guidelines taken from mythtv.org as regards software encoding:

A PIII/733MHz system can encode one video stream using the MPEG-4 codec using 480x480 capture resolution. This does not allow for live TV watching, but does allow for encoding video and then watching it later.

A developer states that his AMD1800+ system can almost encode two MPEG-4 video streams and watch one program simultaneously.

A PIII/800MHz system with 512MB RAM can encode one video stream using the RTjpeg codec with 480x480 capture resolution and play it back simultaneously, thereby allowing live TV watching.

A dual Celeron/450MHz is able to view a 480x480 MPEG-4/3300kbps file created on a different system with 30% CPU usage.

A P4 2.4GHz machine can encode two 3300Kbps 480x480 MPEG-4 files and simultaneously serve content to a remote frontend.

An important addendum applies to all of you wishing to use HDTV with a PCHDTV card. Playback of HDTV is *very* computationally intensive, and requires a Pentium class processor of at least 1.3GHz or equivalent in conjunction with a graphics card with accelerated drivers, according to the documents at http://www.pchdtv.com. Pretty much any system built in the last two years with an nVidia graphics card will be fine.

One of the most perplexing decisions facing a newcomer is the mystical frontend/backend configuration, which I'll attempt to explain here. MythTV actually comes in two parts; a backend server which handles all the complicated stuff (control of the TV cards, commercial detection, file serving to frontends, the program database) and a frontend which is the bit you (hopefully) see on your screen, which handles the display of the interface, decoding and playback of audio/video streams and user interaction (such as remote controls). Most people first opt for a combined frontend/backend, which means running the frontend and backend software on the same machine. Other configurations are a single backend and multiple remote frontends, and multiple backends connected to multiple frontends. If this all sounds confusing, read on.

Combined backend/frontend
Here you run Myth Backend and Myth Frontend in tandem on a single machine, to which we can also attach additional frontends. This is the simplest setup, but has a few disadvantages:

If this box is living in a social area, such as under the TV, you're probably going to have to jump through a few hoops to get it nice and quiet.

Again, you're probably going to want this box as appliance-like as possible, which usually means a pretty case that isn't too huge. This will limit your ability to expand the box without moving to separate frontends and backends

There is a limit to the number of TV cards a single computer is able to hold

Separate backend and frontend
Here, all we do is take our backend software and throw it into some box out of sight - under the stairs seems a popular location. Since Myth Backend does all the hard work, all the equipment for that hard work (TV cards, MySQL server, 30 terabyte RAID array) will also reside in this computer. In one fell swoop we've removed most of the hot and noisy components from under our TV and placed them somewhere they won't be noticed, so we can concentrate on making our frontend as pretty and as quiet as possible. All that needs to be done is that the frontend and backend need to be networked together, and a few minor configuration changes are made to the way Myth operates, and we're all set. We can also connect as many additional frontends as we have capacity for if you wish to show your recorded TV shows elsewhere in the house. Again however, there are disadvantages:

Setting up two machines and networking them all up will incur additional cost and complexity

We've still only got a single machine that can accept a limited number of TV cards

Which brings us on to...

Multiple backends
Whilst most households are content with a single backend with one or two TV cards, if you want to provide TV to alot of frontends simultaneously, you're going to require a large amount of TV cards which your single backend won't be able to support. Here we simply add more backends into the fray, and again network them up in such a way that all the Myth machines can talk to one another. This essentially provides you with TV that is limited pretty much only by your wallet!

Of course, it is also possible to mix and match a bit. My personal setup consists of two combined backend/frontends (one runs with a PVR-250, the other with a DVB card) and a single "dumb" frontend which is primarily used for watching recorded content.

Advanced configurations can include making discless (as in no hard drive) frontends which can boot over the network which makes for a very quiet machine, and storing/loading content from machines that have nothing to do with MythTV whatsoever. Again to cite my own example, the Myth Backend boxes store all of the TV content, but the database lives on my Debian file server, as does all of my music and video content. Shares have been set up via NFS or Samba so that the backend machines can access the files from the file server, and pass them along to the frontends.

As you can see, given enough machines to play with, MythTV can be expanded to do pretty much anything!

Now that we've covered what Myth is capable of in terms of expandability, I'll delve into the more specific questions concerning types of hardware in the following sections: