FreeJ(1) vision mixer


freej [ options ] [ streaming options ] [ layer files and video devices ]


FreeJ is a vision mixer: an instrument for realtime video manipulation used in the fields of dance teather, veejaying, medical visualisation and TV.

With FreeJ multiple layers can be filtered thru effect chains and then mixed together. The supported layer inputs are images, movies, live cameras, particle generators, text scrollers and more. All the resulting video mix can be shown on multiple and remote screens, encoded into a movie and streamed live to the internet.

FreeJ can be controlled locally or remotely, also from multiple places at the same time, using its slick console interface; can be automated via javascript and operated via MIDI and Joystick.


show commandline help
show version information
-D [ num ]
set debug verbosity level to (1 to 3), default is 1
-s [ WxH ]
set resolution to WidthxHeight, default is 400x300
start with all layers deactivated
start without any interactive text console interface
-j [ javascript.js ]
run the javascript.js script file
-e [ file.ogg ]
set the filename of the local encoded ogg-theora movie (default is: freej.ogg), files already existing are not overwritten, instead filename-2.ogg is used; if a number is given, the corresponding file descriptor is used. To start/stop the recording and streaming use ctrl-w while running.


FreeJ can run with an infinite number of layers, as much as your CPU can handle. Layer types are recognized from file extensions.

Supported layers types include:

movies (*.avi|*.asf|*.asf|*.wma|*.wmv|*.mov|*.mpeg)
text (*.txt)
depends from freetype library
cameras thru the Video4Linux device (/dev/v4l/*)
images (*.png|*.jpg and more)
flash animations (*.swf)
only the vectorial animation is supported (flash v.3), no scripting nor streaming, but that's in FreeJ anyway ;)
particle generator
can be crated from commandline as layer_gen (or ctrl-g while running) to create a layer that doesn't needs any input, just draws nice particles
any file type
if not recognized will be threated as a text scrolling layer showing its contents scrolling them vertically on the screen


Scripting examples are available in the documentation, usually found locally in /usr/share/doc/freej and online on

For example this freej script will start a stream right away:

   // create a video encoder object - values [1-100]

   //                 video qlty   video bit  audio qlty  audio bit
   encoder =
    new VideoEncoder( 10,          64000,     5,          24000);
   encoder.stream_title("testing new freej");

   // encoder.start_filesave("prova.ogg");

but be sure to actually play something in it: open a camera or movie layer.

Don't stop reading documentation, this manual is not the only source of information.


Please have a look at for a guide with nice examples about using Freej.


Denis "Jaromil" Rojo - author and mantainer
Silvano "Kysucix" Galliani - truetype text layer
A full list of developers and contributors can be found in the AUTHOR
file distributed with the source package.
FreeJ development is supported by the Nederlands Instituut voor
Mediakunst - Montevideo/Time Based Arts.
This manual page was written and is mantained by Jaromil & Asbesto.
Write to the mailinglist on <> to
contact developers.


Permission is granted to copy, distribute and/or modify this manual under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections. Permission is granted to make and distribute verbatim copies of this manual page provided the above copyright notice and this permission notice are preserved on all copies.


The most recent version of FreeJ can be attained from its homepage at and from the software repository.