Code Monkey home page Code Monkey logo

carnival-livecam's Introduction

This project is deprecated. Please, check my new project: Webcamoid


Carnival LiveCam, augmented reality made easy

Example of the snow plugin

Intro

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.

Basics

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.

Controls Bar

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 Effect Bar

The another most important fetures is the Effects selection dialog. Here you can select what effects will be applied to each capture device.

The Effect Stack

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.

This is the configuration dialog for the image driver

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.

And finally...

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

License

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.

Images

carnival-livecam's People

Contributors

hipersayanx avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.