Basic requirements for a MythTV setup

As you probably know, Linux will run on pretty much anything. MythTV relies on the FFmpeg codecs for any video handling, which are heavily optimized for the x86 architecture. Due to this, modern 64-bit processors from AMD and Intel are the preferred basis for a MythTV system. Older 32-bit AthlonXPs and Pentium 4s, low power VIA systems, and the increasingly common ARM systems, should be avoided.

Video capture card

All recording through MythTV is performed by the backend. The backend can handle as many tuners as you can physically fit in the system, and if that is not enough, you can run multiple backends located on additional hardware to expand your capabilities. Each simultaneous recording and Live TV session requires a tuner input. If you want to have padding on back-to-back recordings, you need additional tuners. Note that only one backend is needed on the network, and additional PCs can be configured as frontends with no local capture card.

Some users will have access to IPTV based off the FreeBox model, for which MythTV can use a virtual network tuner. Most users will need some form of digital tuner. North American users need ATSC whereas European, Australian, Japanese and South American users need DVB. Both IP and digital television makes use of streams compressed by the broadcaster. MythTV merely copies this data to disk for pristine, lossless quality.

For users with no access to digital broadcasts, or broadcasts restricted by encryption, analog capture devices are needed. Cheap capture devices are called framegrabbers, and require independent capture and software encoding of audio and video. Very cheap ones cannot capture audio, meaning they must be used with a separate sound card. These are nothing but a hassle to deal with. The recommended type is a hardware encoder. These will output compressed MPEG files similarly to how the digital tuners behave.

Sound card

Performance issues

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.

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

A Pentium Celeron 600 MHz with a Hauppauge PVR-150 can record and playback MPEG-2 material simultaneously.

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

System architecture

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:

backend server - handles all the complicated stuff (control of the TV cards, commercial detection, file serving to frontends, the program database)

frontend - 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 mythbackend and mythfrontend 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 mythbackend 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 multiple frontends simultaneously, you're going to require a large number 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!

Advanced configurations can include making diskless (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 mythbackend 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: