An up-to-date look at free software and its makers

Projects on the Move


PCs are finding their way into living rooms and children's bedrooms: Tools like MediaInfo and the child-friendly Tux Paint are useful companions in this transition phase.

By Carsten Schnober

Ben Heys, 123RF

Yesterday's vision of the living room PC has become commonplace in just a couple of years. And it isn't just your friendly, neighborhood computer nerd who is replacing the TV set, radio, video recorder, and DVD and CD player with a computer. Linux now provides helpful tools for transforming your computer into a powerful, easy-to-use multimedia device.

Big Question Mark

The best thing about a multimedia all-rounder is that it can play files and media of any kind - music or videos, slide shows, and much more - in fact, anything that human creativity produces and offers on CD, DVD, Blu-ray, or disc. But something always seems to hang over the PC's head like the Sword of Damocles, threatening trouble-free use. Here, the sword is called "codec."

"Codec" contains elements of the terms "coder" and "decoder" and refers to algorithms for encoding or decoding data (i.e., sound and moving images). Most readers have probably stumbled across codec-related issues if their machines have failed to play a video. Sometimes the image is missing, sometimes the sound - and the typical cause is the lack of a matching codec.

The progress that has been made in compressing digitized multimedia data has made this field correspondingly complex because it is not just a question of technical developments, but of licenses and patents. A naïve search for the right codec for a file with a .avi (Audio Video Interleave [1]) suffix can be incredibly complex. Before you can gain access to the illustrious inner circle of multimedia experts, you first need to know the difference between container formats and codecs.

An AVI file simply contains audio and video tracks, which are encoded with different algorithms. Numerous audio and video codecs and container formats lead to a variety of combinations, and thus to potential sources of error. In most cases (and this is typically independent of the operating system you use), it is sufficient to install a component that allows you to work with the codec in question.

Decoding Decoders

In real life, the biggest problem is not installing the missing packages, but finding out which codec you actually need. The MediaInfo [2] program can help you do this (Figure 1) by identifying some 30 container formats and most popular codecs. If you feed a multimedia file to the software, it will tell you the name of the algorithms used for encoding - that is, the name of the codecs required to play the file.

Figure 1: MediaInfo displays useful technical details and additional tag information for video and audio files.

MediaInfo analyzes files and, in the standard view, displays generic information, such as the files located in the container (video, sound, and text), the length, the file size, and the metadata stored in the file where applicable (title, author, and copyright information.) MediaInfo takes into account that many container formats have multiple copies of the same content, such as sound tracks in different languages for a movie. Experts can also ask the program for the size of the images and the sampling rate of the sound track. A text view presents the information in a format that makes it easy to copy and paste to other applications.

The informative program alternatively supports command-line use and thus cooperates with scripts of any kind (Figure 2). One typical use would be automatic conversion of files that use a specific codec. The cluttered output is easily trimmed for readability with grep and company in the shell.

Figure 2: The MediaInfo command-line version lends itself to scripting.

Close Relations

MediaInfo is available under a free license (GPL or LGPL according to the homepage) and will run on Windows, Mac OS X, and any popular Linux distribution. The C++ program, which was originally developed for Windows, does not offer the full range of GUI functionality on Linux. The Windows variant supports more configuration and view options.

The reason for this lossy port is that the VLC graphics library, which the program uses on Windows, does not exist in a Linux version. This forced the project to start from scratch with the platform-independent wxWidgets library [3] and is also why project maintainer Jerome Martinez is currently looking for Linux developers who are familiar with the free library and are interested in contributing to the advancement of MediaInfo.

Computer Art: Tux Paint

The Linux PC is slowly but surely making inroads into children's playrooms, and Tux Paint is slowly approaching a point where the version number in front of the dot will be a 1. Version 0.9.21, which was released just recently after a one-year gap between releases, is clear proof that the project is not just alive, but making considerable progress [4].

Tux Paint's basic functionality is what you would expect from a simple painting program. A selection of different brush types give budding artists the ability to color the workspace. Besides plain lines, Tux Paint also offers special patterns that are both fun to use and great for kids. The cat and squirrel brushes change shape, and you get the impression that the animals are hopping across your screen (Figure 3).

Figure 3: Tux Paint's virtual drawing board.

Tux Paint's GUI is great for kids. The buttons for selecting brushes and colors are big enough, and the labels are intuitive enough for readers and non-readers alike to understand. A penguin sits at the bottom of the screen and gives kids friendly tips, which assumes that the child in question can read.

Fun and Limitations

A sound track prevents budding artists from becoming bored, with the sounds changing to reflect the choice of brush and pattern. Parents can add new patterns for the stamp tool. Some suggestions are available on the Tux Paint homepage, and if you prefer to be creative yourself, you can create a PNG-formatted stamp image and optionally add an Ogg Vorbis sound.

To protect supervising parents' ears, the program also has an option to switch the sound off. A separate Tux Paint Config program handles this in next to no time. The configuration program also lets you run Tux Paint in full-screen mode or display the mouse pointer. Both will hopefully prevent budding artists from accidentally opening other programs, editing files, or getting up to some other mischief. If you also block the Quit function, you can temporarily convert any PC into a custom virtual paintbox.

Parents or educators can impose more restrictions. For example, you can disable printing or restrict output to a certain number of pages per minute, thus preventing accidentally printing multiple copies and sustaining enormous print runs.

That said, Tux Paint fails to survive a break-out test - in many cases, it is fairly simple to work around obstacles. The restrictions are not designed to bind children to an authoritarian model but to prevent accidents and facilitate use.

Group Collaboration

If you would like to support the painting program for Tux juniors, you will find a number of possible contribution options on the project homepage. Flyers, brochures, and CD labels are all ready for printing, along with How-Tos to help translators get started. Thus far, the Tux Paint interface talks around 20 languages, including English. The program runs on Windows and Mac OS X besides Linux, giving children on any operating system the opportunity to pick up a Tux Paint brush.

The Tux Paint team is also looking for artists interested in developing the graphical interface and programmers interested in handling internal functions. In fact, a number of opportunities seem to be available in this field; or at least I would assume so considering a bug caused the program to crash when I used Pulseaudio.

INFO
[1] AVI RIFF file reference: http://msdn.microsoft.com/de-de/library/ms779636.aspx
[2] MediaInfo: http://mediainfo.sourceforge.net
[3] wxWidgets: http://www.wxwidgets.org
[4] Tux Paint: http://tuxpaint.org