You may have heard of MythTV, the free TiVo-like application that can handle just about all of your multimedia needs. It can record and play back TV shows, including HDTV programming. It can be used to view your pictures, your weather forecast, and your favorite RSS feeds. It can rip and play back your music CD’s and your DVD’s. It can even display the list of movies you have in your NetFlix queue.
And it only runs on Linux.
So what if you’re a Windows user who wants to find out what MythTV is all about? Up until recently you couldn’t, but now you can. Here’s how.
While it’s true that MythTV only runs on Linux, that doesn’t mean that you’re out of luck if you only have a Windows box. Now that virtual machines are easy to install (not to mention free) we can run a Linux virtual machine on a Windows PC and we can install MythTV into that Linux OS. (If you’re not familiar with virtual machines you can find my previous posts on the subject here. I’d start with this one.)
The problem with running MythTV this way has to do with the way virtual machines handle physical hardware. The OS running within the virtual machine doesn’t see the actual hardware you have — it sees an abstracted view of your hardware. For example, let’s say that you have ATI’s latest-and-greatest graphics card on the PC in which you’ve installed VMWare. If you ask the OS running within VMWare what graphics card it’s using it will report back that it’s using a graphics card called “VMWare SVGA II PCI Display Adapter”. Now, in reality, there is no graphics card named that, but that’s how VMWare works its magic. The same kind of abstraction takes place for all of your physical hardware, including the CPU, the sound card — even the BIOS is abstracted (it looks like the old Intel 440BX chipset).
The benefit of this abstraction is that a virtual machine that’s created on a PC running Windows can be run on any other machine with VMWare installed, even if it’s running a different OS. To the OS running within the virtual machine nothing has changed. The BIOS seen by that OS is still the Intel 440BX and the graphics card is still the VMWare SVGA II PCI adapter.
The downside of that abstraction layer is that all of that high-end graphics processing power that you have in your card can’t be used by the OS running within that virtual machine. Forget playing games in that virtual machine, unless you’re planning on playing Solitaire.
The abstraction layer also presents problems for running MythTV within a virtual machine. The hardware seen within the virtual machine won’t include your PC’s TV tuner card so your MythTV won’t be able to record any shows. To make matters worse, even if you could record shows your abstracted graphics card probably isn’t powerful enough to play video back smoothly. Fortunately there are ways around both of those problems.
So how are we going to use MythTV running within a virtual machine to record TV programming when it can’t see our PC’s TV tuner card? We’re going to use a TV tuner that’s not in our PC — it’s on the network. Silicon Dust has released a small device called the HDHomeRun (read my review of what it is, how it works, and how to use it here). In a nutshell, the HDHomeRun contains two HDTV tuners and outputs its video onto your home network. Fortunately, the latest versions of MythTV contain support for using the video stream that the HDHomeRun sends across your network as a video source, just like you’d use your PC’s TV tuner card as a video source.
Now we have everything we need to run MythTV on Windows.
Here’s what you’ll need to be able to run MythTV on your Windows PC:
- A PC running Windows
- VMWare’s free VMWare Player
- Silicon Dust’s HDHomeRun
- A Linux distribution
The MythTV software has two main components: the “Backend” and the “Frontend”. The Backend contains the “guts” of MythTV. It’s the Backend that’s responsible for recording, storing, and retrieving shows. The Frontend is what the typical Myth user uses to schedule and view recorded shows, listen to music, access the weather — basically any type of interaction with Myth can happen through the Frontend. In our example the Backend is mandatory and the Frontend is optional.
Rather than going into excruciatingly detailed step-by-step instructions I’m just going to list the basic steps and point you to other places which contain excruciatingly detailed step-by-step instructions.
Step 1: Download and install the VMWare Player. You can get the VMWare Player here.
Step 2: Create a virtual machine. I’m using Ubuntu Linux version 6.10 as the OS within my virtual machine. The installation of Ubuntu is straight-forward and installing MythTV on Ubuntu is simpler than on some other Linux distributions. You can read my step-by-step guide to creating an Ubuntu virtual machine here.
Step 3: Install the MythTV Backend into your virtual machine. You can find good instructions for installing MythTV on Ubuntu here. Optionally, you can also install the Frontend.
Step 4: Configure your MythTV backend to use the HDHomeRun as its video input. Silicon Dust provides detailed instructions on how to do that here.
Viewing the Results
Now that we can record TV shows using our virtualized MythTV Backend we need some way to view those shows. Most users of MythTV use the MythTV Frontend to watch recorded shows on their Linux boxes. Earlier I’d mentioned that the way in which virtualization abstracts our hardware means that a virtual OS probably won’t be able to play our recorded show smoothly. Fortunately there are other ways to watch our recorded shows without using the MythTV Fontend.
MythTV Player is a Windows application which can play the programs you’ve recorded using MythTV. It’s not designed to be a full Windows-based replacement for the MythTV Frontend but it will allow you to watch recorded shows.
The latest versions of MythTV include a UPnP server. If you have a UPnP client such as Nero’s Showtime you can browse and watch your recorded shows on your PC. There are also some newer DVD players such as the DLink DSM320/520 which are capable of acting as UPnP clients.
If you have a Roku HD1000 hooked to your television you can use the MythRoku application to watch your recorded shows. MythRoku doesn’t provide a full-featured replacement for the Frontend but it allows you to play back video that’s been recorded with your MythTV Backend.
If you’ve modified your XBox into an XBMC you can use the XBMCMythTV script to view your recorded shows. While it’s not a full-fledged replacement for the Frontend it allows you to schedule recordings as well as to view recorded shows.
WinMyth is a Windows version of the MythTV Frontend but it’s not up to date with the latest version of the protocol that MythTV uses. When WinMyth is updated it should also be able to stream back recorded shows.
While not quite as elegant as the other solutions you could always use Samba to set up an SMB share on the directory in your virtual machine which contains the recorded shows. You’d see the raw filenames of the recorded shows rather than the “nice” names (“2100_20061213221800.mpg” instead of “Lost”) but you’d be able to view the recorded .mpg files using any device or program which can see network shares.
Here are some things to keep in mind if you’re considering setting up a MythTV installation following these steps.
Be careful about which version of the MythTV Backend you download and install, especially if you’re planning on using other 3rd-party software which is expecting a particular version of the Backend. As of today the latest version of MythTV available through CVS is using Protocol 32. If you’re planning on using that version make sure that the 3rd-party apps you’re going to use know how to speak using that protocol.
You’re going to need some way to tell your MythTV which shows you want to record. One way is to install a copy of the MythTV Frontend into the same virtual machine that’s running your Backend. While it’s true that you probably won’t be able to use that Frontend to view recorded shows because of its abstracted hardware you can still use it to set up recordings. Even if you have some other means of setting up your recordings, like using the XBMCMythTV script on your XBox, you can still use the Frontend for other things, like viewing the weather reports or reading your RSS feeds.
If you’d rather not install a Frontend you could just always just use the web-based interface to set up your recordings.
Recordings from MythTV can be big. Very big. If you’re planning on recording HDTV programming they’ll be even bigger. You need to make sure that you have enough disc space allocated to handle those recordings. If you’re planning on storing the records on your virtualized MythTV Backend make sure that you allocate enough space when you create the virtual machine. Alternatively, you can set up your Backend to save its records somewhere other than in the virtual machine by setting up a mount point which points to a share on another server or NAS.
For years Windows users have had to use alternatives to MythTV because there just wasn’t any way to run Myth outside of Linux. Technically speaking that’s still the case, but now, with the capabilities of virtual machines and Silicon Dust’s HDHomeRun, Windows users can use a little magic to crash the Myth party.
Now get in there and see what you’ve been missing.
Update: I’ve found another way to run MythTV under Windows by using a piece of software named andLinux. You can find a post about that here.