May 9, 2007

Review: Elisa media center

Author: Nathan Willis

Fluendo's Elisa is a free software media center application that can play your DVDs, video files, music, and pictures. Since it is designed for extensibility, Elisa has the potential to do much more. It does not handle television or video recording functions, but it is a slick and promising project.

You can download Elisa from its project site. Source tarballs are available, as are individual packages tailored for the Debian, Fedora, Gentoo, SUSE, and Ubuntu distributions.

The current release is 0.1.6, but despite its low number, it is quite stable. It depends on Python, GStreamer, and Fluendo's Pigment user interface library. Python and GStreamer should be available as standard packages in your Linux distro; Pigment is provided alongside Elisa at the Elisa download page.

Installation and setup

Thanks to the distro-specific packages provided by Fluendo, installation is simple for the majority of users. On launch, Elisa looks for the configuration file ~/.elisa/elisa.conf. If it does not find one (and it won't the first time you run Elisa), it creates a skeleton elisa.conf file that you can then edit in any text editor.

The important options to customize are the locations in which Elisa will look for media. The default elisa.conf specifies ./sample_data/movies, ./sample_data/music, and ./sample_data/pictures -- directories that do not even exist inside ~./elisa/.

You can add as many locations as you like. Just scroll down in the file to find each list. To configure movie directory, for example, look for the line [plugins.movies]. Beneath it is a line reading locations = ['file://./sample_data/movies/*'] -- change this to point to a directory on your own system, such as locations = ['file:///home/yourusername/movies/*']. If you have multiple directories, separate them with commas: locations = ['file:///home/yourusername/movies/*', 'file:///home/yourusername/tvshows/*'].

You are not limited to file:// URLs, either -- network shares are accessible via other standard protocols, from smb:// or nfs:// to http://. When you have made the appropriate changes to the [plugins.movies], [plugins.music], and [plugins.pictures] sections, save elisa.conf and restart Elisa.

Enjoying your media

Main Elisa window. Click to enlarge.

Elisa starts up in its own window, though you can switch to full-screen mode by typing F. The main interface offers five choices: Pictures, Music, Movies, DVD, and Services. The first four are self-explanatory; Services is a submenu into which you can install additional plugins. The Weather plugin is installed here by default; it fetches current conditions based on a locale you specify.

Media playback is straightforward. Since Elisa is built on the GStreamer framework, any format supported by GStreamer plays automatically. This version of Elisa is artificially limited to 100 items per menu, though, which is not enough to browse large collections of media. That limit is set to be removed for the 0.2 release.

Elisa's picture browser can perform basic, single-folder slide shows. The only parameter you can control is the length of time each image is displayed; this is set with the slideshow_time_range value in elisa.conf. You can skip ahead or back with the left and right arrow keys, but you cannot pause the slideshow.

All navigation (and almost all control) is done with the arrow keys, including descending through your media folder hierarchy and hitting the on-screen playback control buttons. Elisa does not seem to cache keystrokes while it is updating its GUI, though, so you can only scroll through menu items at a fixed speed, pausing between button pushes as the interface slides new elements onto the screen.

I found navigation tricky in a few circumstances, since the same keys control different functions depending on what is on screen. While playing an audio or video track, for example, pressing the Enter key brings up a track information screen -- unless the play control buttons are already visible, in which case it activates the currently highlighted button.

Furthermore, the track information screen has its own set of play control buttons, but it has fewer buttons, so a different button is highlighted by default. It's confusing. You can change the default keys for each function in elisa.conf, but the behavior remains the same.

On the whole, I found Elisa's core media functions to be both fast and stable. It did crash on a couple of malformed MPEG-4 files I tested against, but so too do MPlayer and Xine. The picture browser tried in vain to open 16-bit-per channel TIFF files, locking up as a result. On the plus side, I had no problems with any audio file I tested.

The big question, of course, is whether Elisa's interface will slow down on large data sets when the present 100-item limit is lifted. Most of the desktop music players I have used (including GStreamer-based apps) suffer from agonizingly long startup times when parsing hundreds of directories and thousands of files. The Elisa bug tracker ticket for this issue indicates that the plan is to only load small batches of items at a time, which might sidestep the long startup problem but sounds like it could slow browsing the entire collection.

Flexibility and limitations

Elisa is extensible through plugins. The Weather plugin is a simple example, but there are many more available. Additional data sources provide access to more media, like DAAP music shares. The DAAP plugin handles connecting to remote servers transparently; all you need to do is add the URL of the DAAP server to the list of music locations.

Similarly, there is a Flickr data source plugin. You can add URLs such as flick://user/yourusername or flickr://tags/somerandomtag to the list of pictures locations, and they automatically appear in the picture browser.

What Elisa does now it does remarkably well. If and when the team decides to pursue live television tuning or DVR features, those features will no doubt be easier to integrate because of the work that has gone into building the framework. Elisa seems to be substantially easier to configure and add to than MythTV.

The biggest practical problem for end users is the need to do all configuration by manually editing the elisa.conf file. However, the developers have done a good job of making this operation straightforward: the automatically generated skeleton elisa.conf is one of the most well-documented, clearly explicated configuration files I have seen. Eventually in-program configuration needs to happen, but newbies have nothing to fear from elisa.conf.

In light of its youth and inexperience, Elisa is clearly not a replacement for a fully fleshed-out media center package like MythTV. But it has chops, as demonstrated in how well it performs its core tasks. That makes it a project end users should watch, and developers should look into.

Click Here!