Veejay - Video Mixing/Editing Instrument
========================================

A visual 'music' instrument (video mixing and editing)

Short description:

Veejay is a video tracker/editing tool and visual instrument for Linux, suitable for
live performances and editing environemnts

The project emphasises direct (user) interaction, it is possible to navigate
through video samples, define various types of looping, increase and d
ecrease playback speed, navigate through the effect chain to apply a chain 
of effects using the keyboard while the interface keeps track of what you are doing 

It supports multiple capture/tv cards (video4linux devices), vloopback and yuv4mpeg and it supports mixing of multiple cards to a single output.

It supports simple video editing on a DV or MJPEG file , you can save an
edit decision list which can be processed by the mjpegtools. 

Also, starting from version 0.5 you can render samples on the fly to the
sample's render history list which gives a whole new dimension to veejay.

Important:
==========

You cannot use this veejay with any other than gveejay-0.4.5 or later


Future
======

- MIDI support 
- Open Sound Control
- video plugin API / SDK for effects a.o
- dynamically loadable effects
- Key Framing
- Pattern Editor
- Pattern Instrument


WHAT IS NEW
===========

- gveejay is now a seperate package (optional) and is no longer included with veejay
- gveejay has a new look (floating window style)


What is in the Package
======================

 veejay	  : the program that makes it all tick
 vjrender : render 1 or more samples to file
 yuv2rawdv: simple utility to convert a YCbCr stream into DV


QUICK INSTALL
=============

Pre-installing you need:

 SDL 
 XML-2    (you might need to install this package from source,
           or you need to install the devel packages)
 libdv     (recommanded for playing DV2)
 DirectFB  (optional)
 
First , you *must* build ffmpeg. veejay's build order is 'different'.

cd ffmpeg
./configure && make
cd ..
./configure
make && make install


Basic Usage
===========

You can create a sample with the |- and -| buttons, on the top right corner
of the screen. Next, select the newly created sample in the list and 
click 'Edit' to activate the Sample Editor.

You can add up to 10 effects/transistions to the Sample Chain and adjust 
their parameters (if appropriate) P1 to P4.

You can toggle the Effect Chain by clicking on it. (i.e. Preview)

The status text box on the bottom gives extra information.
 
You can enable/disable vloopback output during the whole process

You can use the program's output as input in EffectTV or input from EffectTV
into veejay (*), or input from Mplayer which plays pretty much every video codec !


See the doc/ directory for more in depth information.


Running Veejay
==============

Start the core with
	
'veejay <options> <filename 1 ,... , filename N>'

examples:

1. have a small SDL window (for the keybindings) and DirectFB:

   'veejay -a0 -G2 -n8 -v2 -S171x144 /video/video.avi'


About the parameters
--------------------

	'-n'   : specify number of buffers to use ( 8 = normal , 1 or 2 is good for slower machines)
	'-v'   : specify to be verbose 
	'-G'   : select graphics driver , 0 = sdl, 1 = directfb, 2 = both
	'-S'   : size of SDL window
	'-t'   : timer to use (0=none,1=nanosleep, 2=rtc)		
	'-p'   : specify port number to use (default 3490)

Start the GUI with

'gveejay localhost 3490' 
or
'gveejay <veejay host> 3490' 



REQUIRED/RECOMMENDED SOFTWARE
=============================

To have the GUI you need:


gveejay-0.4.5    : http://veejay.sourceforge.net

To write output to a v4l loopback device you will need:

vloopback-0.90 	 : http://tibit.org/video/#vloop
                   http://motion.technolust.cx/vloopback/index.html


SDL   		 : http://www.libsdl.org (required)
libDV 		 : http://libdv.sourceforge.net (required)
DirectFB	 : http://www.directfb.org (optional)



MULTIMEDIA OPTIMIZATION 
=======================

Please check the config.h file for optimization instructions, the configure script
does not set them correctly. 

For MMX
	#define HAVE_MMX 1
For MMX2
	#define HAVE_MMX2 
For SSE
	#define HAVE_SSE 1
For MMX2
	#define HAVE_MMX2 1

For all options, if you have a Intel compatible PC

#define CAN_COMPILE_X86_ASM 1
#define ARCH_X86 1


OTHER COMPILE OPTIONS
=====================

Stefan Thieme (thymiantee at users.sourceforge.net) sent in a patch for German Keyboards and SDL,
add '#define GER_KEY_HACK 1' in config.h to compile veejay with this hack compiled in.


CONTACT / FEEDBACK & HELP
=========================

Niels Elburg <elburg@hio.hen.nl / nielselburg@yahoo.de >

For usage related questions:

http://veejay.sourceforge.net




ENJOY!


