Webcam application

/!\ This list may be outdated and not reflect current state of Cheese

Long-term ideas

Those are long-term ideas for Cheese. One third of it may be feasible, the other third will require a few years of work. The other third are SF and pure-crack.

Feel free to send me your patches implementing things below or your own ideas.

Single click backgrounds

Thanks to color recognition (as a first-step) and movement recognition (find by comparing images what is the body=moving, and what is the background=still). Even better (if you're using a laptop or a moving webcam),shape detection (the software could ask to move only yourself for a moment to recognize the body though)

Demonstration pipeline:

gst-launch-0.10 \
v4lsrc ! "video/x-raw-yuv, width=360, height=296, framerate=(fraction)15/2" ! ffmpegcolorspace ! \
alpha alpha=0.0 method=blue angle=50 noise_level=0 ! videomixer name=mix ! ffmpegcolorspace ! ximagesink \
filesrc location="/usr/share/pixmaps/backgrounds/gnome/nature/FreshFlower.jpg" ! decodebin2 ! \
ffmpegcolorspace ! videoscale ! "video/x-raw-yuv, width=360, height=296" ! ffmpegcolorspace ! mix.

Possible interfaces:

  • "Normal" gui where you can choose the color to replace and the image to replace it with
  • Drag&drop interface:

    • user drags an image onto the video-area
    • Cheese generates a pixbuf from the video-source (without filters) at the moment of dragging the image
    • Cheese adds up the green and blue values in the pixbuf
      • (only if red < green or blue, so human skin does not count, which is very likely to be on the picture)

    • if green value is bigger, choose method=green in the alpha plugin or else choose blue
    • set location of filesrc to the location of the dragged image (might even be movie-file, because of decodebin2)

Persuasive installation

When the webcam doesn't work at all.

Some GNU/Linux distributions comes with Cheese pre-installed, just like happens from Debian 5.03 - but the fact is most of the existing webcams doesn't work at all on Linux, or at least, doesn't works out of box, what can be a problem, specially for newbies. A suggestion would be if Cheese can be also an useful tool for notificating developers that our webcam doesn't work, and also helping on an easier process on automatic installing and recognition of our webcam, whatever is it supported or not. For example, the only two webcams i have are completelly useless on Linux, which are gSmart Mini (usb), and iSight (from Apple Macbook 2.0 laptop, which i have also Ubuntu 9.10 installed as dualboot)

Webcam descriptions

Description about supported webcams, specifications, and prices.

Somewhere in the Cheese Gnome website, would be useful a webpage providing useful information about which webcams works on Cheese, since mostly doesn't at all.

Single click backgrounds

Single click backgrounds could be extended to enable easy hackergotchi creations

Semi-transparent borders

Put people in jail or let them wear funny hats

Like the background idea, but this time put transparent images in front of the video. Those images could be a collage in which only the face is cut out or some images of hats, beards, etc.

Integrations with other apps

Chat, Photos, GIMP, mail, gnome-about-me, flickr, Empathy, f-spot is already done. more will be available after the switch to conduit


Rafale (4 quick shots) mode that can be turned into an animated icon


Apply effects to existing pictures/videos

Move to opengl

Camera setup

Allow camera setup (brightness, gamma, saturation, ...) if controls are exposed by v4l2src

LAN camera sharing

Use cameras from other instances of cheese running in the network.

Put a "tee" after the videosource part of the pipeline, but _before_ the effects, one end of the "tee" leads to the normal pipeline (filters, output). The other end leads to a pipeline which streams the videosource over the local network.

The information about this stream is shared over the network using avahi.

Another instance of cheese is started on a different pc in the network. The user starts up a camera selection dialog. It shows the locally connected usb webcam and the shared network cam it found using avahi.

Camera sharing should be disabled by default. When using a shared camera as videosource, it should not be shared again, so there is no recursion.

Webcam backend

Stream video to the net!

This is somewhat like the shared cameras idea, except it might use higher compression and the tee is put _after_ the effects part of the pipeline.

Also cheese could pretend to be a webserver and start listening on a port and when there is a connection send a html-document that simply embeds a video player. (Nothing big, there is no need to understand the http-protocol, simply send some predefined data after recieving two crlf)

This "webserver" could also be announced using avahi. There is some protocol for announcing bookmarks, which is already supported by epiphany (IIRC safari supports these, too). That way epiphany users get all webcams in the network shown in the bookmarks, so they don't need to start cheese to watch webcams, nor do they need to type IPs or URLs.

Only display the image

Allow users to display only the captured image like a desktop widget. This will allow to record screencasts with human faces in a simple way.

Windows port

Face Morphing Application in Cheese

Face morphing application is nothing taking your face and put in the template face with modified face texture. I already have an facebook application I want to put it cheese. Please send me your feedback.


Plugin to decode QRCode? Automatic launch of the url in the browser?

Make videos of your everyday photos

Something like this app do:

Apps/Cheese/Roadmap (last edited 2018-02-20 06:14:47 by SvitozarCherepii)