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.
Please feel free to send me your patches of the things below or of your own ideas !
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)
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.
- "Normal" gui where you can choose the color to replace and the image to replace it with
- 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 webcam 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)
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.
one-click backgrounds could be extended to enable easy hackergotchi creations
Put alpha-transparent pngs onto cam image
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, Photo to Gimp/Kino..)
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
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.
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.
Port to Windows
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 http://apps.facebook.com/pakkamorph. I want to put it cheese. Please send me your feedback.
an application (plugin) to decode QRCode? Automatic launch of the url in the browser ?
Make videos of your everyday photos.
Something like this app do: http://www.makeuseof.com/dir/everyday-daily-photo-video/