|
|
Subscribe / Log in / New account

The long road to a working Cheese

Benefits for LWN subscribers

The primary benefit from subscribing to LWN is helping to keep us publishing, but, beyond that, subscribers get immediate access to all site content and access to a number of extra site features. Please sign up today!

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.



to post comments

The long road to a working Cheese

Posted Jan 29, 2009 11:25 UTC (Thu) by fb (guest, #53265) [Link]

Cheese is indeed a lovely application, it turns those webcams bought for VoIP calls into fun toys. All in all I personally find it the most interesting (and well executed) desktop application in... hum, in a while.

The fact that it has been broken into Ubuntu for so long lead me to stop using it though. Its popularity can be seen by the number of duplicates of the bug that has been keeping people from using it.

FWIW I also experience the jerky (i.e. low frame per second) video using it, though that is probably due to problems in the underlying stack, it does impact the experience of it. In any case, I hope cheese's popularity will help gather motivation to improve the whole stack.

The long road to a working Cheese

Posted Jan 30, 2009 4:02 UTC (Fri) by kingdon (guest, #4526) [Link]

I suppose I should play with it more to figure out what works and what doesn't, but I didn't have any trouble using Cheese (as shipped with Fedora 10) on a Sylvania netbook with a built-in webcam to take still photos.

I agree it is a nice application.

The long road to a working Cheese

Posted Feb 1, 2009 14:28 UTC (Sun) by debacle (subscriber, #7114) [Link]

I would love to use cheese together with a VoIP or chat application (ekiga, amsn, ...), for a fun talk. Got angry? Just switch on the Hulk effect! Without this "remote" capability, it's not so interesting to me.

The long road to a working Cheese

Posted Feb 1, 2009 16:27 UTC (Sun) by burdicda (guest, #10272) [Link] (1 responses)

What it could really use is user changeable default storage location
everytime I install this thing for someone...I have to download the
source and change it to something that makes sense...not a hidden directory
that no one can find....then recompile it and install....

duh!!!!!!!!!!!!!

burdicda

The long road to a working Cheese

Posted Feb 6, 2009 19:29 UTC (Fri) by andrigtmiller (guest, #53053) [Link]

The version of Cheese that is in Fedora 10 puts photos in the Pictures->Webcam folder in your home directory, and it puts Videos in the Vidoes->Webcam folder in your home directory. No more hidden directory (e.g. .gnome2->Cheese).

The long road to a working Cheese

Posted Feb 9, 2009 12:28 UTC (Mon) by muwlgr (guest, #35359) [Link]

I would better like something to allow use a digital photo camera as a web cam. I.e. in shooting mode and connected to your host by USB.


Copyright © 2009, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds