FreeJ is a vision mixer: an instrument for real-time video manipulation used in the fields of dance theater, veejaying, medical visualisation and TV. With FreeJ multiple layers can be filtered through effect chains and then mixed together.
The core engine is multithreaded and asynchronous so it can accept various controllers at the same time: So far MIDI and joystick controls are implemented.
Freej, as a free modularized Linux framework, makes it easy to write simple effective algorithms and combine them with others, obtaining multiple results and keeping them compatible with as many devices as possible. Benefits of real-time objects oriented architecture that makes efficient use of multi-threading (in which the layer run in parallel), also taking advantage of multiple CPUs and cluster systems. The language employed in development is C/C++.
Freej can overlay, mask, transform and filter multiple layers on the screen. There is no limit to the number of layers that can be mixed, moreover each layer can be video taken from different sources: movies files, webcams, TV cards, images, renders, flash animations.
Freej can produce a stream to an icecast server with the video being mixed and audio grabbed from soundcard. The resulting video can be played on any computer connected via internet, with compatible players (it has to have theora codec). Also the console interface of Freej can be remotely operated using SSH, it can be left running and then reconnected later and operated from multiple places at the same time (all using screen).
Jaromil (Denis Rojo) is Freej's author and current maintainer, in addition, since 0.7 was released a new developer joined the core development implementing several enhancements, kysucix (Silvano Galliani).