MythTV is a project which allows you to turn a PC into a digital video recorder (or 'PVR') similar to a TiVo. A MythTV box will download program listings from the internet, and automatically record your favourite shows for you onto its hard drive whenever it sees them in the TV guide. You can watch one show while it's recording another, or watch a show from the beginning even while it is still being recorded. You can also 'pause live TV', just like they go on about in the TiVo adverts.
Please note - at the time of writing, MythTV was at version 0.14, so this w/u is based on that. (Update 2007 - I'm using 0.20 now and the stuff below is still broadly accurate. See the bottom of the writeup for more details).
MythTV has a friendly user interface designed to be navigated with just a few keys, or even a remote control. The main options are configuration, watching TV, making recordings, and watching recordings.
Various settings can be tweaked to alter MythTV's appearance and behaviour. For example, when you stop watching a recording, MythTV can be configured to go straight back to the main menu, or to ask you if you'd like to delete the recording.
You also have very fine control over more technical sides of Myth's behaviour, such as the resolution, bitrate, and so on of recorded files. These affect the recording quality and the amount of disk space it takes up.
When you watch 'live TV' via MythTV, it's actually delayed by a couple of seconds, as it gets recorded to disk and then played back to the screen. This means that you can hit 'pause', and MythTV carries on merrily recording, until you hit 'unpause', whereupon it starts playing back from where you paused, while still recording, in order that you don't catch up with yourself.
The TV mode also offers on-screen information about the program you're watching, from the TV guide, and behaves in general much like a modern digital set top box.
Sometimes when you choose the 'watch TV' option, Myth will inform you that 'all available encoders are in use', because it's already recording something. It does however suggest that you go to the 'watch recordings' menu, because recordings show up there as soon as they start, rather than when they finish, so you can watch whatever it's recording from the beginning.
MythTV offers a variety of ways to record programs. You can view a fairly standard TV listing, and choose programs from there. You can list all distinct programs, by program name. You can ask it to list all the 'new' programs that have not appeared in the program guide until recently. You can search through channel listings for keywords.
When you've found a program you want to record, by whatever means, MythTV offers various choices about how to record it. You can record a specific showing. You can record the program whenever it appears in this timeslot. You can record the program whenever it appears on this channel, or finally you can record the program whenever it appears on any channel. This should be enough flexibility for most situations - for example, I hardly ever seemed to catch Futurama when it was on regularly, so I want to record that whenever it's on anywhere, but I'm up to date with Angel so I only want to record the Tuesday night episodes, not the repeats that are shown at strange hours all over the place.
There's also various options about keeping the recordings - should MythTV keep recording The Simpsons whenever it's on, or should it only keep a maximum of three episodes? If the maximum is reached, should it stop recording new ones, or delete old ones to make room? There are also options to add minutes to the end or start of recording times, and so on. You get the idea - it's very configurable. If you can think of something useful you'd like it to do, it probably does it.
In case you really miss your old VCR, you can even program a recording manually, for a given channel at a given time.
The 'watch a recording' screen works pretty much as you'd expect - it presents a list of shows that MythTV has recorded for you, and you can choose what to watch. The video player has all the necessary features for fast-forwarding and rewinding and pausing and so on. It has an advert-skipping feature which sometimes works and sometimes doesn't, depending on whether your station is thoughtful enough to broadcast a nice blank screen for a few frames at either side of the ads. (I've given up on trying to make it work - the false positives, where it suddenly skips a few minutes of the actual show, are too irritating. I gather it works much better for North American users, where the transmissions switch to local broadcasters for advert breaks, making for a more obvious change.).
MythTV is an open source project and runs on the popular open source operating system, Linux, so the only costs are the hardware and your time.
There are actually two halves to MythTV - a server and a client. The server runs as a daemon and manages the tuner card (or cards), and makes the recordings. The client runs the user interface which connects to the server to tell it what to record, and to pull recordings off it for you to view. The client and the server can run on the same box, but they don't have to. You can also have many clients to one server, if you want. This would let you watch your MythTV recordings from various different clients, e.g. PCs in different rooms around the house. Different clients can watch different programs simultaneously.
In order to gather TV guide information, MythTV relies on XMLTV, another open source project. XMLTV grabs TV guide information from the internet and presents it in an XML form that MythTV understands. The source of the guide information varies depending on what country you live in - for example, the UK grabber looks at the Radio Times web site. According to the XMLTV web site, at the time of writing XMLTV has working grabbers for Canada, the USA, the UK, Germany, Austria, Finland, New Zealand, Spain, Italy, the Netherlands, Hungary, and Denmark.
MythTV requires a PC with some kind of video capture device. It supports the Hauppauge PVR range which have built in MPEG encoders to compress the video, or you can use an ordinary TV card coupled with a CPU fast enough to do the MPEG work (mine's an Athlon 2400+). If you want to get really fancy, Myth supports using multiple TV cards, to record different things at the same time, but of course the rest of your hardware will need to be able to keep up.
If your TV card can tune into the channels on your signal feed, all well and good. If you have an external tuner (digital cable in my case), you need some mechanism for MythTV to change channels on this external device. MythTV supports running an arbitrary external script to change channels, passing it a channel number, so if there is a way to control the device, MythTV can be made to support it. The solution in my case was a gadget called a 'red remote serial' made specifically to control Pace set top boxes from a computer. It has a serial plug on one end, and a little IR transmitter on the other, and when you send it commands, it emulates the set-top-box remote. It came with a little open-source program to communicate with it. Works like a charm.
A Linux-supported soundcard is also necessary, obviously. This shouldn't be a problem in these enlightened times, but you might be disappointed if you have a very modern motherboard with on-board sound.
If you want to use it with an ordinary TV then you're going to need a graphics card with TV out capability. Again, be aware that Linux support in this area varies by manufacturer - the word in the MythTV community is that nVidia cards are the thing to get. I followed this advice and mine works beautifully.
You probably also want some kind of remote control capability - LIRC is supposedly the thing to use, but I cheated and got an infra-red keyboard and trained a learning remote with it.
You also want a decent sized hard drive. Depending on how you have it set up, MythTV will store something like a gigabyte for an hour of TV.
Various plugins exist for MythTV giving it extra abilities, such as MythVideo for watching video files (i.e. those acquired from some source external to MythTV), MythDVD for ripping and watching DVDs, MythGame for playing games (such as MAME stuff), MythMusic for playing, yes, music, and so on.
MythTV is immature, complex software, and can be hard to configure. There's lots of things that can go wrong. I got mine working through sheer bloody-minded determination and about two weekends and a week of evenings spent tinkering with it. I am a professional geek but new to Linux. It's likely that a more experienced Linux user would have an easier time of things, and my external tuner made things harder than they would otherwise be, but there's still plenty of scope for trouble.
Update 2007 - Nowadays Myth isn't such hard work to set up. It's still immature, and there's still plenty of ways to make a hash of it, but it's not nearly as daunting as it once was. It's not just that Myth itself has improved: there is now much more support built-in to Linux for the various video-capture cards that are available, so you aren't likely to have so much trouble getting the OS to recognise your fancy hardware. I recommend using Ubuntu and the special Ubuntu Myth packages, which make it as straightforward as it's likely to be.
Euro 2004 is upon us, and it turns out that football is MPEG's worst nightmare. MPEG stinks at football, at least at the fairly modest bitrate I was using. The picture looked just dreadful. I tried doubling the bitrate and that helped a bit, but it must have hit some kind of bottleneck somewhere, because it started stuttering.
To alleviate this, I decided to invest in a hardware MPEG encoder - got a Hauppauge PVR-350. I had a fairly nightmarish time getting the thing working, but a fair part of that, as before, was due to my own inexperience with Linux hardware support. It is all configured and working now, though, and it provides broadcast quality results with zero processor hit, with no glitches or lagging or anything. It's great. Recommended. It does produce larger files but Myth can be configured to automatically compress them down to MPEG4, or to leave them alone, depending on the show. (So, I can tell it to compress Seinfeld down but leave the football alone, basically.)
Furthermore, I'm now running version 0.15. It has a few small extra features, all of which are positive enhancements, but nothing really drastic that I've noticed. It does seem a little less stable though, alas - I almost never had any stability problems before with 0.14 but I've had 0.15 die on me once or twice. No doubt these will all be worked out as development progresses - the development community seems very active and busy, which can only be a good thing.
It's up to version 0.16 now. Stability is back up again, so that's good. Also (and this only relevant to UK users), the Radio Times have started providing machine-readable listings data to XMLTV (simply because someone asked them nicely, as far as I can tell - I love the BBC), so the TV listings grabbing is much more reliable now than the old dodgy HTML-scraping of the past.
Further, I've now got an additional Myth client running on a hacked Xbox - very living-room friendly. Uses the Xbox DVD remote and everything, it's brilliant.
Version 0.17 now. The changelog is huge but in truth there's nothing major that seems to affect me personally. A few UI tweaks, various fixes for bugs I hadn't encountered anyway. It's stable, still, though.
Version 0.18.1! Seems fine. The big difference for me is that I no longer have cable TV in my new house, but instead, I have installed a digital terrestrial card. This means I can pick up a load of free-to-air channels on the Freeview service that operates in the UK. The first card I tried ended up back on eBay since there was no driver support under Linux but I had more luck with the second one. As ever, with Myth, the set-up involved some faffing about, but I'm a dab hand at that nowadays so it only took a couple of hours. It's great now that it's working. Lots of channels, all free!
I've been on 0.20 for a while now and it's going well. This version includes support for MHEG, the digital TV version of Teletext, and audio-only ("radio") digital TV channels. Development remains lively, and nifty new features are supposedly coming, including the ability to record multiple channels from a single digital tuner card, as long as those channels are on the same digital multiplex. (Potentially more useful than it sounds, since lots of stuff I watch is on BBC and the BBC channels are on the same multiplex.).
Both my server and my client are now running Ubuntu. There's a very slick way of installing a dedicated Myth machine with Ubuntu - you can perform a standard "command line only" install from the ordinary installation CD, and then use apt to install a special Ubuntu-only Myth package which configures all the things you'd want from a dedicated Myth box (disables the screensaver during TV-watching, starts Mythtv automatically on boot, etc). Very very nice. This is my recommended installation method at the moment (since KnoppMyth seems to have died).
I got LIRC working even, using the nifty module-assistant program that makes the configuration of LIRC into something that an ordinary mortal can face.
MythTV - http://mythtv.org/
Red Remote Serial - http://redremote.co.uk/serial/
XMLTV - http://membled.com/work/apps/xmltv/