The long road to a working Cheese
Cheese is an interesting application that is designed to take still photos and movies using a webcam. In addition to its basic monitoring and recording abilities, Cheese can display and record real-time video effects similar to those from the EffecTV project. Cheese is based on the GStreamer multimedia framework. From the Cheese project description:
Cheese started out as a Google Summer of Code project entitled Photobooth-like application for the GNOME-Desktop. (See this GNOME Journal interview with Daniel Siegel). Several additional GSoC projects involved Cheese, these include Cheese integration into Gnome with student Felix Kaser and mentor Daniel Siegel and Extend Cheese with OpenGL effects with student Filippo Argiolas and mentor Daniel Siegel.
The main features of Cheese include:
- Real-time video monitor window.
- Supports the selection of multiple video resolutions.
- Ability to take still .jpg photos with optional video effects.
- Has a countdown timer for taking still photos.
- Makes a click sound when a still photo is taken.
- Ability to record .ogv movies with sound and optional video effects.
- Can chain multiple video effects together.
- Built-in thumbnail library that shows recorded photos and movies.
- Displays photos with Eye of GNOME.
- Plays movies with Totem Movie Player.
- Images and movies can be saved to files, emailed or exported to F-spot.
Your author installed version 2.24.2 of Cheese on an Ubuntu 8.10 system using the standard Ubuntu package. The CPU was an Athlon 64 2800 running the 32 bit version of Ubuntu. Initially, an ancient Kensington VideoCam Model 67015 was tried as the video capture device, but the camera would not work. This was likely a system issue since other video applications such as xawtv and EffecTV no longer saw the camera after the system was upgraded from Ubuntu 8.04. A new HP Deluxe Webcam model KQ246AA (USB) with a built-in microphone was purchased at the local big-box electronics store. Initially, the HP camera worked with xawtv, but not with Cheese (or EffecTV).
A bit of Googling found an Ubuntu bug report that indicated others were having similar issues with Cheese. Following the thread in the bug report, your author first tried the suggestion of installing a newer kernel from the Pre-released package updates. This did not fix the problem. Digging further into the bug report messages, the next attempt involved installing mercurial (hg), then cloning and installing the latest uvcvideo driver from the LinuxTV site. This finally produced a video capture device that worked with Cheese.
Operation of Cheese is quite straightforward, one can simply run the application and start clicking photos. A few user interface issues were encountered. The Edit->Preferences menu allows one to select the camera and its resolution, but no audio configuration choices were given. It was necessary to run the gstreamer-properties application to select the camera's built-in USB audio device. Sometimes, after a pull-down menu was selected, a gray rectangle was left where the menu used to reside, on top of the moving video monitor. Sometimes the gray area would eventually disappear while other times it was necessary to move the main Cheese window to refresh the video display.
The Effects button is somewhat non-intuitive; when one clicks it, a set of effects is shown. It took a bit of playing around to figure out that one needs to click Effects again to get back to the main video monitor window. A differently named "Monitor" button would be useful here. When making movies, using resolution above 352x288 resulted in major losses of audio samples and jerky video. Both the USB camera's audio input and the sound card's auxiliary input were tried with similar results. The Cheese built-in documentation recommended using gstreamer-properties to switch the default video output to X11/XShm/Xv, this was tried but the higher-res video was still jerky. A CPU with more muscle would likely improve this situation.
Your author was left with the impression that Cheese and its ancillary applications could greatly benefit from the addition of a few extra features. It would be more fun to look at still photos if Eye of Gnome's slideshow capability had the ability to step through the stills on a timed interval. It should be noted that it is possible to export images to F-Spot, which can display a timed slide show. Similarly, Totem could really use some more advanced features such as a pause button with single-frame stepping capabilities. The documentation claims that it is possible to right-click the recorded image or video thumbnail and fire up a non-default viewer, but your author was unable to make this work. The video effects are very cool, but there are no audio effects; LV2 comes to mind here. Some of these ideas might make some good 2009 Google Summer of Code projects.
Despite encountering a number of bugs and user interface difficulties, Cheese is indeed a unique and useful application. Cheese is the first application your author has found that can produce a working movie from a web cam. At this point, or at least with this hardware configuration, Cheese is not quite ready for use by non-technical users, nonetheless it is a great application that shows much promise.
