I was reading through my blog here, and the last two posts make it sound like a long-running rant. So today, I've decided to write about something I completely love, something that I enjoyed setting up; something that has freed me from the shackles of monthly subscription television- MythTV.
MythTV is much more than a do-it-yourself TiVo™. It represents open-source ingenuity and digital rights freedom all on your television. It's like all the things you wanted your TV to do, all rolled up into a convenient package, eager to control your home theater.
I decided to build my solution as cheaply as possible and scrounged up used parts wherever I could. I also decided I only cared to watch/record digital television since over-the-air analog broadcasts will cease in February 2009.
The machine I built for MythTV uses an older Athlon64 3000+ socket 754 2.0Ghz CPU. 1GB RAM. My display is an 8-year-old 24" SUN Widescreen CRT. (it's a rebranded Sony) It was very cheap since I got it used, and it does 1920x1200, so the 1080i stuff looks fantastic. The video card is a nicely aged Nvidia Geforce FX 5200 AGP. Everything I've read online has shown that people have better success with Nvidia cards since they seem to be more Linux-friendly than ATI. Let me know if you find otherwise.
Myth has two main processes:
mythbackend- talks to your tuners, writes captured video to disk, maintains your TV schedule database, and much more.
mythfrontend- displays video, provides the user interface.
I used to run both the front and backend on that machine and it handled it without issue. I decided to separate them just for fun and to see how well it worked; so now I am free to power-down/tinker/completely reformat the frontend machine since all recording is done elsewhere. This has worked well, since the backend machine is a file-server that runs constantly anyway.
One issue I have had in my setup is occasional stuttering. After manually or auto-skipping commercials on 1080i recordings, both video and audio freeze for a quarter-second, continue for a half-second, freeze again, etc. This usually resolves itself in 10 seconds or less, but is slightly annoying. Lower quality recordings don't seem to have the same problem. I believe it is due to a lack of processing power on my backend machine. The problem was *much* worse when I had other CPU-intensive processes like transcoding start up while trying to stream a recording at the same time. A dual-core proc should fix the problem, but I'm doing this on-the-cheap remember? Thankfully, Myth gives you the flexibility to restrict when those processes can run. Mine now only run between 2AM and 6AM- problem solved.
By the way, commercial flagging is one of those CPU-intensive tasks, and it works incredibly well. Try to get your Comcast™ DVR to do that! Be sure to enable "Auto-Skip," you won't be disappointed.
My backend machine specs:
AMD Athlon XP 2400+
1GB RAM
GeForce 4 MX (pretty near vintage now, but it doesn't matter since I don't display TV here)
Two Hauppauge HVR-950 USB2.0 HDTV tuners.
The tuner cards are often the most difficult piece to setup. My cards use an experimental driver which actually works quite well, but definitely isn't plug-and-play. I went with these because they are cheap; only $50. My first had a rebate and I bought my second used from a friend. Also, I am only recording over-the-air digital ATSC signals. Digital Cable TV channels use QAM and these cards can't read that. If you decide to use these cards, I highly recommend this helpful guide.
I read somewhere that the MythTV 'reference-card' is the PCHDTV HD-5500. It has native Linux support and they don't even write Windows drivers.
Another compelling alternative is the HDHomeRun. It is a box with two tuners that sits on your LAN and puts video wherever you want. They provide step-by-step instructions for setting it up in Myth.
Both of those tuners can read unencrypted QAM signals from the cable company, but unfortunately many premium high-def channels are encrypted, and as far as I know only their proprietary boxes can display that content.
You'll also want a remote control for your frontend machine. I like the StreamZap since it comes with a receiver and was extremely simple to setup.
There are a few ways to install Myth. I believe I chose the easier path. My backend runs Ubuntu, so I just used apt-get and it walked me though the setup. For the frontend I tried out a few ready-to-go Myth distros: KnoppMyth, MythDora, and Mythbuntu. I like Mythbuntu best- they wrote a sort of Control Panel UI which eliminates the need for manually editing a bunch of config files. It is very well done and they follow the 6-month release schedule of Ubuntu.
I bought one year of TV schedules from schedulesdirect.org . They provide TV listings for all local/cable/sat providers throughout the US for $20/year. I went with this option because it is simple- you just setup an account with them and tell Myth your user/pass to login. I wanted my solution to be completely free, but at that price I'm probably just barely covering the amount of bandwidth that I use. Myth retrieves two weeks of TV listings everyday.
I'm happy with my solution- especially since it is using mostly older hardware I had laying around. Myth is more than just a DVR- it'll play anything mplayer can read, which is, well, anything. My machine isn't quite fast enough to display h.264 1080p recordings, but handles h.264 720p just fine. There are some pretty cool plugins that let you do everything from view your local forecast, to ordering a netflix movie, to running videogame emulators. All on your TV, with a remote, from your couch.
Myth is truly awesome, and I highly recommend you give it a try. I dumped my Dish, as well as the $50/month price tag that came with it. Few other D-I-Y projects can match the feeling of liberation MythTV provided.
Thursday, March 13, 2008
Subscribe to:
Posts (Atom)