Exploring alternatives to MythTV
Beyond MythTV and VDR are media centers that take a new approach – or at least make the beaten track look a little different.
When it comes to media center distributions, MythTV and VDR are the undisputed kings of the hill. Their impressive feature scope is fed by large user and developer communities. Besides these well-known projects, as is typical in the world of open source, several smaller projects pursue the same goals. They fill niches that the mainstream projects often neglect, or they implement identical features in a slightly different way. This means more choice for the user from the viewpoint of aesthetics or ergonomics.
In our lab, we let three media centers do battle against each other and against MythTV. The hardware basis was a system with working TV card drivers. Additionally, the multimedia drivers (see the "Multimedia and Patents" box) were also installed. For help installing applications on Ubuntu and openSUSE, see the "Installing the Applications" box.
Installing the Applications
Elisa gives users an easy option of using a popular distribution as the basic system. Because of ongoing development by Fluendo, it makes sense to download the latest software from the homepage rather than using the version from the repository. For Ubuntu 8.04 (Hardy Heron), a launchpad site has the required files for the apt command line deb http://ppa.launchpad.net/elisa-developers/ubuntu hardy main.
As of this writing, there were no new Fluendo packages for Ubuntu 8.10 (Intrepid Ibex). For our lab, we rebuilt the Hardy packages for Intrepid and made them available under apt: dev http://selador.de/apt/intrepid intrepid main. To install, navigate to System | System management | Software package sources and press Add in the Third party software tab. Enter the line in the dialog box that then appears. The packages will then be available in your package management system. If needed, you can additionally install the pyLirc package to support the use of remote controls.
Ubuntu users will find more information concerning the use of Elisa on their choice of operating system in the Elisa wiki . Friends of openSUSE can visit the susegeek.com page  for a one-click installer that enables the Packman archive, which includes Elisa, on versions 10.2, 10.3, and 11.0.
Installing Freevo on current Ubuntu systems is more difficult than one might expect. The version of Freevo provided since Ubuntu 8.04 has some issues because of modifications to XML support by the Ubuntu developers. To work around the problem, add the old XML libraries to your PYTHONPATH environment variable. To do so, add an export PYTHONPATH=$PYTHONPATH;/usr/lib/python2.5/site-packages/oldxml to the .bashrc file in your home directory. Then log off and back on.
Now launch Freevo in a terminal. Besides the freevo package itself, it is a good idea to install the mencoder package (for converting video formats), msttcorefonts (fonts for subtitles), and either vorbis-tools (for converting to Ogg audio) or lame (for converting to MP3). To leverage Freevo's full feature scope, you also need a tool for decoding DVD movies. Searching the Internet will find one. (Also check the laws regarding the use of such tools.)
On openSUSE, you can install Freevo directly from the Packman repository for basic functionality. Note that you will need to run freevo setup to create freevo.conf and ~/.freevo/local_conf.py.
DAAP server support seems to be a problem, at least on Ubuntu 8.10. Neither Elisa nor Rhythmbox were capable of connecting with iTunes. It is hoped that the developers will tackle this problem quickly.
Multimedia and Patents
Many files with content for the living room PC use proprietary formats. These audio and video formats are typically the result of research by private or semi-governmental institutions that restrict the use of their formats. For example, to use the MPEG4/H.264 codec in the US, you must pay a license fee to the patent owner.
A free implementation of the codec is thus a legal gray area, although many patent owners show little interest in asserting their rights in court. The Wikipedia entry  has a more detailed discussion.
Because of legal imponderabilities, very few distributors supply patented codecs. To use them despite this, you need to add software sources. In Ubuntu's case, this is the Medibuntu repository . Typing sudo wget http://www.medibuntu.org/sources.list.d/Version_number.list -output-document=/etc/apt/sources.list.d/medibuntu.list adds the repository as a source; make sure you replace Version with intrepid, or which ever version of Ubuntu you use: hardy, gutsy, or feisty.
To acknowledge the command, type your password, then tell the system to trust packages from Medibuntu by typing:
sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update
Say Y when prompted. The free multimedia codecs are now available for use. OpenSUSE users can download the one-click installer to access these codecs .
The commercial codecs by Fluendo , which are part of the GStreamer framework, are a legally safe alternative. The only application to support these codecs by default is Elisa, although Freevo will do so with some manual attention. Applications based on other frameworks do not have this ability. In a nice gesture by the Spanish vendor to the Linux community, Fluendo offers an MP3 codec free of charge.
One of the newcomers among Linux systems for the living room PC is Elisa  by Barcelona, Spain--based Fluendo. Elisa is by no means the only product with which the Spanish software wizards have enriched the open source world. They also maintain the GStreamer multimedia framework and the Flumotion streaming server, and they contribute to external projects through the Xiph Foundation (probably best known for its Ogg audio format, a free MP3 competitor), for example. The company finances itself by sales of Linux-capable codecs for proprietary multimedia formats such as MP3, Windows Media, and the like, all of which can be integrated with the GStreamer system for Gnome.
Fluendo's Elisa is a media center based on the company's own framework. The system, which was written in the Python script language, is multi-platform capable and will run on Linux, Mac OS X, and Microsoft Windows. From a visual point of view, it is probably closest to Front Row for the Mac. Just like its role model, Elisa can't handle TV signals but expects its data to come from the Internet or a local disc.
Elisa launches fairly quickly. The main menu (Figure 1) has a similar control concept to the Compiz Ring Switcher: The menu items are organized around an invisible wheel. The arrow keys let you navigate between menu items; the wheel turns, and the current selection moves to the foreground. The menu items available here are Music, Video, Pictures, and Settings, and it also has a Browser item that doesn't do anything on Linux in the current version.
To control Elisa, you can use the keyboard, your mouse, or a pre-configured remote. In contrast to MythTV, the Backspace key will take you back up the menu tree, whereas pressing Escape quits the program. On an analog TV set with a low resolution, the fonts are very small and hard to read in some cases. The advantage of a higher resolution is that more information will fit on the screen. Figure 2 gives you an impression of the various font sizes.
Elisa autodetects data on CDs/DVDs, USB sticks, or iPod-compatible MP3 players. It automatically serves up movies and music on UPnP- or DAAP-compliant servers. To use Elisa to manage your media files on disc, you first need to add the folder in question to the media library in Settings | Add folder.
First, navigate to the folder in question and press the plus sign to the right of the folder name. Then, select whether this is a Video, Audio, or Picture folder by clicking on the plus sign next to the media type name. A folder can have multiple media type assignments.
After enabling the folder, you can then access the files in Elisa. The program indexes the files in the specified paths to support sorting by, say, genre or year of release. It was a pleasant surprise that indexing did not overly stress our lab system; we just noticed a status display in the lower right-hand corner of the screen. The various areas (Pictures, Music, Video) are accessible via the main menu.
With the Music Library option, you can get Elisa to sort and display albums by various criteria. If folders contain JPG images, the indexer will use them as covers for these folders. Elisa takes this "Album Art" view a step farther and attempts to automatically download a cover for each album from Amazon if it fails to find an image.
Playing a track in full-screen mode automatically triggers an effect that keeps time with the music. If you prefer to disable this, edit the configuration file (visualization='' in .elisa-0.5/elisa_0_5_6.conf). The arrow keys let you rewind and fast forward the current track. Another thing we liked was Elisa's ability to access web radio directly. Elisa lets users access Nullsoft's SHOUTcast, sorted by genre.
The video file manager is clear and attractive. What Elisa offers, besides access to movies on any mounted media, is the ability to access movies hosted on YouTube. The software lets you search first, or will show movies ranked by popularity. The slideshow has a similar feature and will rummage through the treasures at Flickr, if so desired.
All told, Elisa's visuals are elegant, but slightly underchilled. Thanks to the consistent use of OpenGL, navigation is fast, even on older machines like an Athlon XP 2500+. This said, the project still banks on state-of-the-art technology: YouTube instead of TV, semi-transparency instead of windows, and OpenGL instead of DGA.
Freevo is a play on words and you probably recognized the words "Free" and "Tivo" without us pointing them out to you. In case you haven't heard of Tivo – in the US and a few other countries, this is a popular digital video recorder that allows viewers to time shift and offers an electronic program guide (EPG) for television content. Freevo  aims to offer Linux users the same benefits.
Just like Elisa, Freevo is written in Python. However, it relies on other programs, such as the popular Mplayer, Xine, or VLC media players, for playing video and audio, depending on your preferences. The feature list would seem to put Freevo on par with MythTV. Both offer TV viewing with pause function, recording while you view, automatic commercial deletion, media players for video and audio files and DVDs, and plugins for the weather and news.
The front end reads the EPG and displays a list of programs for recording or viewing. When you select an entry for viewing, Freevo launches your preferred media player to display the image on screen. If you choose to record a program, the software tags the program internally. Because the developers chose a file-based database, you do not need to install a complex client/server architecture such as MySQL.
The front end talks to multiple server processes that handle various tasks in the background. The recording server controls one or multiple TV cards and performs timer recordings of the programs selected by the user. The Commdetectserver process interacts with the recording server to remove commercials after recording.
The next server on the list is the encoding server, which, if you want, converts the recording into a space-saving format such as MPEG4. The front end also accesses this component to convert video DVDs and add them to the movie media data store. A web server that lets you select programs for recording completes the list of servers, which could be helpful if you need to program recordings while you are on the road.
The server processes do not need to run on the same hardware that hosts the front end. One possible scenario would be to ban a high-powered machine to a place where it can make as much noise as it likes handling computationally expensive tasks such as converting and cutting out commercials while the living room – a compatible (i.e., quiet) machine in a set-top case handles tasks such as showing movies.
The whole system boots very quickly, and comes up with a very tidy interface – almost spartan compared with Elisa (Figure 3). The easily legible, but attractive, fonts and the simple menu structure are suitable for both digital and analog TV sets. If the file and folder name display in MythTV is too short for your liking, you will appreciate the ability to use the full width of the screen in Freevo. But before you can sit back and enjoy the show, or the music, you need to configure the system first.
Freevo uses what you might call a legacy approach to configuration: Graphical tools are not available to help you change the settings. Instead, you type your changes directly in a Python file, local_conf.py. In this way, we managed to enable support for digital TV, YouTube, and the Apple movie trailer collection as video sources.
The time-shifting option, like the one MythTV offers, did not work in our lab – Freevo and the Dvbstreamer program failed to cooperate. Another hard knock for those of you spoiled by MythTV is the lack of DVB-EPG in Freevo. Although you have alternatives, they will require some manual attention, as described at freevo-users .
As a general rule, Freevo needs manual care and attention until everything works like the doctor ordered. On the plus side, tons of add-ins are available for Freevo – from YouTube support (see Figure 4) to the latest weather report in the menu. The documentation  gives you an overview. The clear-cut interface of Freevo compared with that of competitive offerings is more likely to appeal to some people.
The features of MythTV and Freevo are similar. If you install the programs manually, you can expect a great deal of configuration work in both cases. Whereas MythTV is available pre-configured in the form of distros, such as Knoppmyth, Mythbuntu, and the like, Freevo only offers FreevoLive.
Unfortunately, the programs on the Live CD are not up to date. In our lab, the system failed to support a Technotrend TT-1501 DVB-C receiver. Mythbuntu 8.10 detected the hardware without any manual attention. The planned cooperation between the Freevo and GeeXboX teams, with the aim of creating a shared platform, should change this.
In contrast to the two projects we have already looked at, GeeXboX is a made-to-order Linux distribution that can be booted from a CD, USB stick, or hard disk. GeeXboX is designed to be lean, and you need just a 32MB partition to install it. On top of this, the player is frugal with respect to resources: An older graphics card or CPU (Pentium II 400 MHz or better) are all it takes to keep GeeXboX happy.
Despite the constraints, the program packs a punch: GeeXboX supports direct TV reception and can play audio and video files from disk, CD/DVD, Samba, and NFS, SHOUTcast, and UPnP servers. What it does not currently offer is a video recording feature. To get started, burn the CD image available from the homepage  onto a CD and boot your computer with the resulting medium.
The project recently released beta version 1.2. The tiny, 18MB CD image is easily downloaded. This beta supports the latest kernel and DVB subsystem versions and a huge assortment of hardware without any manual intervertion. GeeXboX detected our Technotrend 1501 card without manual configuration and automatically loaded the right firmware. The last stable version, v.1.1, is based on older drivers and did not support the hardware.
The start menu offers the GeeXboX, GeeXboX with HDTV, or Hard disc installation options. Selecting HDTV gives you higher resolutions. After a short load time, a graphical menu appears (Figure 5): it is reminiscent of Freevo at first glance. Again, you can choose between TV, video, and audio. After booting, you can remove the boot CD from the drive to free it for other media.
The hard disk install does not offer convenience options like those you might be used to from, say, a recent Ubuntu or openSUSE distribution. Make sure you have enough free disk space before you start: Setup will not let you resize partitions. It might make sense to boot the GParted  Live CD first and resize your existing Linux or Windows partitions.
USB sticks also appear in the list of installation targets, and you can install to them. In some cases, the current beta fails to install on disk, although this issue is already fixed in the developer branch.
GeeXboX uses a very different approach to configuration than its competitors. To create a CD with an individual configuration, launch the GeeXboX generator on Linux, Mac OS, or Windows . Doing so takes you to a GUI from which you can select everything – from your preferred theme, to the supported hardware, to auto-playing video files, and so on.
Also, you set the network parameters here. WLAN makes sense for use in the home, rather than wiring up your living room: The generator lets you configure the details, from the ESSID to the WPA2 key, in advance. Additionally, the tool lets you configure Samba and NFS network drives, which the system will auto-mount later on.
If you will be using a TV adapter, you also need a channels.conf file in your image (see the "Channel List" box). A separate tab is not available for this; simply drop the file into the iso/GEEXBOX/etc/mplayer subfolder before you create the image.
It makes sense for the GeeXboX and Freevo teams to join forces: GeeXboX works like a leaner version of Freevo. The basic multimedia functionality was as solid as a rock in our lab. Thanks to the powerful generator (Figure 6), the system not only gives diskless laptops a second lease on life as low-powered video terminals, but also makes it possible to burn movies or music onto disc for (almost) hardware-independent auto-playing when inserted.
The channels.conf configuration file tells the system which TV channels are available and what their names are. The MythTV setup and VDR tools create this kind of list. If your system does not have one, you can create it easily . The easiest approach with DVB-C and DVB-T is to use the w_scan tool .
Buy this article as PDF
Lennart Poettering wants to change the way Linux developers talk to each other.
Enterprise giant frees itself from ink and home PCs (and visa versa).
Mozilla’s product think tank sinks silently into history.
TODO group will focus on open source tools in large-scale environments.
New tool will look like GParted but support a wider range of storage technologies.
New public key pinning feature will help prevent man-in-the-middle attacks.
Carnegie Mellon researchers say 3 million pages could fall down the phishing hole in the next year.
The US government rolls new best-practice rules for protecting SSH.
Klaus Knopper announces the latest version of his iconic Live Linux system.
All websites that use these popular CMS tools could be vulnerable to denial of service attacks if users don't install the updates.