By Forrest Cook
January 28, 2009
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 uses your webcam to take photos and videos, applies fancy special
effects and lets you share the fun with others. It was written as part of
Google's 2007 Summer of Code lead by Daniel G. Siegel and mentored by
Raphaël Slinckx. Under the hood, Cheese uses GStreamer to apply
fancy effects to photos and videos. With Cheese it is easy to take photos
of you, your friends, pets or whatever you want and share them with
others. After a success of the Summer of Code, the development continued
and we still are looking for people with nice ideas and patches ;)
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.
(
Log in to post comments)