Carnival LiveCam, augmented reality made easy
After a long time to be developing in the background, finally present my most ambitious project Carnival LiveCam.
Carnival LiveCam can capture images from multiple sources (webcams, video files, image files), and apply various effects such as effects of rain, fire, masks, 3D effects and 2D of all kinds. And also can take pictures and record video.
Carnival LiveCam is still in an early stage of development (Alpha), but it shows many of the features that are able to offer. Is the ideal time to join the the development.
Carnival LiveCam is licensed under GPLv3 and hosted on github.
The design of Carnival LiveCam is thought to be completely modular and is very easy to expand the program by using plugins based on QtPlugin system, so far the types of plugins available are:
- Effect: This type of plugins are responsible for providing the graphics effects for Carnival LiveCam.
- Drivers: These plugins are used to add new capture devices. These are not drivers such as the operating system, these drivers do not work at the hardware level, but rather working on a top layer above the operating system drivers, for example these drivers capture images from webcam using OpenCV, or V4L2, but if you have not installed the drivers for your webcam then you can not capture images from your webcam using this driver.
- Shells: A shell is a graphical interface or not with which the user can interact with Carnival LiveCam, this interface may be based on Qt Widgets, QML, Web, command line, etc.. The concept of "shell" comes from the *nix-like environments such as GNU/Linux where the user can choose the graphical environment with which interact with the computer. Carnival LiveCam also offers the same freedom.
A small tour
At the bottom center of Carnival LiveCam can see the control bar, from left to right the controls are:
- Select the capture device.
- Take a picture.
- Record video.
- Open the Effects configuration dialog.
- Enable or disable the Spaces edit mode.
- Set the window to full screen.
- Information about the program.
One of the most important fetures of Carnival LiveCam is the ability to show many capture devices, modify it's position and apply several effects at same time. Is also possible to interact with some effects using a mouse or any pointer device.
The another most important fetures is the Effects selection dialog. Here you can select what effects will be applied to each capture device.
Here we see one of the configuration dialogs of a driver in this case the driver of images. With a simple design intended for an point&click experience.
Obtain and test Carnival LiveCam
To obtain a copy of Carnival LiveCam and start working on the project, run the following command:
git clone https://github.com/hipersayanX/Carnival-LiveCam.git
To compile and run Carnival LiveCam run the following command:
cd Carnival-LiveCam qmake make
To compile and run Carnival LiveCam need the following software packages:
May be you can compile and use Carnival LiveCam with an older versions of the recommended software, I don't know. The environment in which I am currently developing Carnival LiveCam is Arch Linux x86_64. The packages needed by Arch Linux are:
yaourt -S qt openscenegraph opencv ffmpeg ffmpegthumbnailer qxmpp git
What we have and what we need
In principle, the base of the program is almost finished, so far there are only 3 effects available for trial, which give a small sample of what can be done with the program, a effect that shows how to integrate OpenSceneGraph with Carnival LiveCam for create 3D effects, one showing how to use OpenCV to create effects based on face detection, and finally one that shows how to perform simple 2D effects.
Then there are available a basic driver to capture images from your webcam, and another 2 to capture images from image files and video.
And finally the shell designed in QML.
From what we have left to do:
- As a high priority is the creation of the webcam drivers for Mac OS X and Windows.
- Ideally, at the time of release the version for end users, Carnival LiveCam must have at least 20 effects that provide different effects that users can apply to their videos. It would be ideal to have more shells, such as a web interface, a plasmoid for KDE, etc..
- Add videoconferences and live streaming capabilities (ie. using XMPP and Jingle), also, will be really nice if web servers or web developers can make use of Carnival LiveCam to capture images from client side and processing it on server side (ie. in Apache, Nginx, Cherokee, etc.).
- Add scripting capabilities, for instance, using Python or Qt Script to write new plugins or drivers.
- Add configuration schemas. You can select what effects, what devices, and what shell will be loaded at startup or at any time.
- More tablet approach, easy and intuitive. Less resources and power consumption.
- So far Carnival LiveCam has no logo or artwork, or a website that identifies it. If you have ideas to share in these areas would be great if you join the development.
- Any other idea that comes to mind.
In general, if you know how to use Git then you know how to collaborate with the project. Just clone the repository and start working on your copy and when you have everything up and running do a push request.
Here I leave some links on how to use Git:
And if anyone is interested in participating in the project is welcome :D
Carnival LiveCam, Augmented reality made easy. Copyright (C) 2011 Gonzalo Exequiel Pedone This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with This program. If not, see <http://www.gnu.org/licenses/>.
Third party content attribution
This files are used for testing purposes and showcase examples. Of course, we give the appropriate attribution to their respective authors.
- girl guroopu - pt.1 (CC-BY-2.0)
- Shayna : Pretty Girl in a Mustard field (CC-BY-2.0)
- Young Girl Sitting on a Bench at Pedara (small town on the Etna) (CC-BY-2.0)
- Aline : Beautiful French girl smiles (CC-BY-2.0)
- IMG_6929 (CC-BY-2.0)
- katsmile.jpg (CC-BY-2.0)
- -16 (CC-BY-SA-2.0)
- nice young man (CC-BY-SA-2.0)
- Pinky Rosay (CC-BY-2.0)
- Daily Booth??? (CC-BY-2.0)
- Me at work (CC-BY-SA-2.0)
- After (CC-BY-SA-2.0)
- tuesday morning (CC-BY-2.0)