October 3, 2006

SageTV's Linux edition lacks first-class polish

Author: Nathan Willis

Open source personal video recorder (PVR) software like MythTV has acquired a reputation for being difficult to install and maintain, so you might think that a proprietary PVR app would enjoy an advantage. I put SageTV's Linux media center software through its paces, and I can tell you that it, too, requires commitment. If you stick with it, though, and can outfit your system correctly, it might be worth the $80 price tag, despite a slew of little annoyances.

SageTV Media Center 5 for Linux is officially tagged an "OEM Edition" -- meaning both that the company expects systems builders to be the primary purchasers, and that Linux users do not get the support services offered to Windows users. Sage does provide step-by-step installation instructions, though, and an active Web forum specific to the Linux edition. A number of employees frequent the forum, so users can expect knowledgeable answers.

The software itself comes in two packages: the server back end and the client front end. The Linux client is actually what Sage terms a "placeshifter" client, meaning that it can remotely connect to multiple servers, including those running on Windows.

Opening act

The official instructions are focused on installing a SageTV-specific media PC based on a fresh Gentoo install, but you can install both the server and the client on any existing Linux distro that meets the hardware and software dependencies by following the advanced instruction guide.

If you follow the instructions, you should not encounter any trouble, but you have to follow them to the letter. When the instructions list which models of TV capture card are supported, they are not generalizing: the Linux edition supports fewer models, and the listed models are the only ones that work.

As of SageTV 5.0, the supported cards are all from Hauppauge's PVR series of internal PCI cards. These cards all make use of hardware MPEG encoders supported in Linux by the IVTV drivers. Thus the first step in installing the SageTV software is getting IVTV to work.

SageTV's program guide. Click to enlarge

That may not be easy; IVTV installation is very "1996" -- you have to know your exact kernel version and search through the IVTV project's wiki-based documentation to discern which version of the driver works best with your kernel (and there's virtually no chance that it's the most current release). Then you have to copy firmware files around and edit kernel module parameters, following inexact, cross-referenced directions that are invariably edited by multiple wiki users who don't coordinate with each other. When oh when will people learn?

But take heart! Once you get IVTV working correctly -- and it is possible, if you're patient -- the rest of the SageTV setup is a snap. Again, you have to follow the instructions exactly as written. For instance, it says to use the Sun JRE, and I can testify that no other JRE works.

You install both the server and the client in /opt/sagetv (which is the correct location for a third-party package), and can launch the server with /opt/sagetv/server/startsage, which spawns a background process for recording live TV and can be safely run at boot time. Once it is running, you can launch the client with /opt/sagetv/client/sageclient.sh.

The first time through, you will walk through a wizard that helps you set up the system, including configuring your tuner card(s) and populating the electronic program guide information. I found it straightforward and non-threatening; if worse comes to worst, you can repeat the process through SageTV's Setup menu.

Close up

You can control SageTV with a keyboard, a mouse, an infrared remote control, or any combination thereof. The PVR functionality is just what you would expect; you can watch live television, search through the program guide, and schedule one-time and recurring recordings. The Media Center functions -- music playback, photo slide shows, and non-TV video playback -- are pretty standard as well. I like that SageTV allows you to specify multiple directories for content rather than limiting you to just one.

SageTV's saved recordings. Click to enlarge

The supported media types leave a little to be desired, though -- just the basics, including MP3, WAV, MPEG, and DivX. The Web site claims support for Vorbis and FLAC, but it did not work. The forum contains a thread about this problem, stating that it will be fixed in the next point release.

SageTV records TV programs -- both scheduled recordings and the current live TV buffer -- as MPEG files in its own temporary directory. You can "archive" any recording to prevent its deletion, although this moves the program out of the "SageTV Recordings" menu and makes it accessible only through the Media Center, as if it were an external video. That behavior surprised me.

The SageTV program will use all accessible space on the disk you specify (by default /var/media/tv), a feature that is not user-configurable, so be careful if you install it on your desktop system, lest your root partition fill when the next "Veronica Mars" marathon hits.

Ups and downs

So what about actual usage and performance? The first thing I noticed was that SageTV takes over the ALSA sound server, rendering other applications unable to use audio. That needs to be fixed.

I also experienced considerable jitter when watching live TV on my system, which is an Athlon 64 3200+ with SATA disks. During the IVTV setup step, I tested the PVR card by playing its output directly into MPlayer, and there was no such jitter. Presumably it is attributable to SageTV simultaneously writing the video stream to MPEG and playing it back; it did not strain the CPU, but disk usage remained high the entire time. Nevertheless, it made watching TV frustrating.

On-screen display trouble. Click to enlarge

There is also an annoying bug in the on-screen display; it remained hidden behind the video output during playback of both live TV and recordings (as seen in this screenshot), and flickered on and off repeatedly. It has been reported on the SageTV forum, but not yet fixed.

Video quality on the whole is excellent, though I had to experiment through trial and error to find the correct overscan settings to eliminate the fuzzy-edged black letterboxing of analog cable. I also miss the ability to fine-tune the channels; some channels require some manual adjustment of the frequency table, as I discovered when using TVtime years ago on my first foray into TV tuner cards under Linux. While most open source apps let you fine-tune your frequencies, SageTV does not.

On the usability front, I had intermittent problems with the menu structure; it is often very deep, and regrettably less self-explanatory than that of my primitive, decades-old TiVo. In part, that is just differences in terminology and command hierarchy, but it does bring me to another criticism of the product itself -- an absolute lack of documentation.

You can download the SageTV for Windows manual as a PDF file, but it is clearly from a different edition of the product, and the terminology and examples demand some guesswork to decipher. My understanding is that the Windows product in most commonly sold as a standalone application, rather than the separate server and client of the Linux version. It shouldn't be hard to update the documentation for Linux; I really hope that SageTV does so. "OEM Edition" or not, if users pay money for the product, they deserve a manual.

Grande finale

SageTV's biggest competition in the Linux market is MythTV; the question is always "can you get Linux users to pay for something when they can get the equivalent for free?" I haven't yet installed a MythTV system, but from what I have seen, SageTV is more straightforward to install and configure.

SageTV for Linux also benefits greatly from the maturity of the Windows version's code. As I described, the IVTV driver installation step is the most headache-inducing part of setting up a SageTV system, but you can't really blame SageTV for it. Although perhaps we should. Sage has deals with hardware manufacturers; it sells Hauppauge products through its Web site -- surely SageTV could simplify the driver installation process at least somewhat.

The fact it doesn't betrays the Linux edition's second-class status. It does work as described, barring the occasional bug, but you should go into a SageTV for Linux installation fully aware of the limitations. SageTV for Windows can be extended and enhanced with plugins and add-ons for everything from FM radio support to Netflix integration -- but you don't get any of that on Linux. There are workarounds in the Windows registry for common problems, but no equivalent fixes for Linux. There is a free trial download of SageTV for Windows, but not for Linux.

All of these factors are points against the product. I am impressed with the functionality that SageTV 5 for Linux, OEM Edition, brings to media center PCs, but for two big reasons, I hope the company will devote additional resources to developing the Linux version into an equal to the Windows offering. One, on a political front, I just like to see my favorite free operating system treated like the major player it really is, particularly on embedded systems, where it shines. And two, SageTV's open source competition is already breathing down its neck; without adequate support from the company, the product could have a hard time differentiating itself and thriving.

Click Here!