mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-05 15:30:02 +01:00
157 lines
4.4 KiB
Markdown
157 lines
4.4 KiB
Markdown
|
|
# Compiling Veejay
|
|
|
|
Veejay is divided into multiple packages. Each must be build separately and in a specific order.
|
|
|
|
1. [veejay-core](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-core) (__required__)
|
|
2. [veejay-server](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-server) (__required__)
|
|
3. [veejay_client](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-client) (*optional*)
|
|
4. [veejay-utils](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-utils) (*optional*)
|
|
5. [plugin-packs](https://github.com/c0ntrol/veejay/tree/master/veejay-current/plugin-packs) (*optional*)
|
|
|
|
## Prerequisities
|
|
|
|
Required:
|
|
* Build-essential
|
|
* FFmpeg (libavcodec, libavformat, libavutil, libswscale) *please use ffmpeg instead of libav*
|
|
* libjpeg
|
|
* libxml2 for saving project data
|
|
* SDL 2 for the video window
|
|
* libdv for playback of DV Video
|
|
* [http://www.gtk.org] GTK3 (3.22 recommanded)
|
|
* [http://www.gnome.org] GdkPixbuf (comes with Gnome)
|
|
* Cairo (needed for Reloaded)
|
|
* GtkCairo (needed for Reloaded)
|
|
* Libquicktime for Quicktime]
|
|
* Video4Linux II
|
|
* libpthread
|
|
* Glade (needed for Reloaded)
|
|
|
|
Optional:
|
|
* liblo
|
|
* DirectFB for secundary head (TVOut)
|
|
* Jack for audio playback
|
|
* G'MIC - GREYC's Magic for Image Computing
|
|
* libqrencode (Android VJ remote control)
|
|
|
|
First, make sure you system is up-to-date, and install (in debian like system) the required dependencies with:
|
|
```bash
|
|
sudo apt-get install build-essential git autoconf automake libtool m4 gcc libjpeg62-dev \
|
|
libswscale-dev libavutil-dev libavcodec-dev libavformat-dev libx11-dev \
|
|
gtk-3.0-dev libxml2-dev libsdl2-dev libjack0 libjack-dev jackd1
|
|
```
|
|
|
|
On some systems, the gtk dependency may be called libgtk-3-dev
|
|
|
|
|
|
## Quick and dirty build instructions
|
|
|
|
Normally, you can just run `./configure`.
|
|
If you have cloned the veejay git respository, you will need to run `./autogen.sh` first to produce the configure file.
|
|
|
|
|
|
## Configure options
|
|
|
|
`PKG_CONFIG_PATH` is a environment variable that specifies additional paths in which `pkg-config` will search for its `.pc` files.
|
|
|
|
If you need additional paths, before running configure, check if the PKG_CONFIG_PATH variable is setup correctly:
|
|
```
|
|
$ echo $PKG_CONFIG_PATH
|
|
```
|
|
If echo is silent, you must set the PKG_CONFIG_PATH to point to the directory containing your additional .pc files (for homebrew library installation)
|
|
|
|
|
|
### Configure flags
|
|
|
|
`--enable-debug` Builds veejay for debugging purposes (disables optimization). See also `--enable-profiling`
|
|
`--with-arch-target=generic` Build veejay for generic x86 cpu-type. If the default is used (auto), the resulting binary may not run on another computer.
|
|
`--without-jack` Build veejay without sound suppport. Useful when you just care of visuals ouput. Veejay will have more ressources (cpu/memory) to play your videos.
|
|
|
|
You can see all the configure flags with `./configure --help`
|
|
|
|
|
|
## Optimization flags
|
|
|
|
You can set -mcpu and -mtune to compile veejay with optimizations specific to your CPU
|
|
|
|
For example, on RPI4:
|
|
|
|
```
|
|
export CFLAGS="-mcpu=cortex-a72 -mtune=cortex-a72"
|
|
```
|
|
|
|
## Building
|
|
|
|
1. Get the last sources from Veejay's repository:
|
|
```
|
|
$ git clone git://github.com/c0ntrol/veejay.git veejay
|
|
```
|
|
2. Enter the source directory
|
|
```
|
|
$ cd veejay/veejay-current
|
|
```
|
|
3. Move to current software to build and run autogen.sh
|
|
```
|
|
$ cd veejay-core
|
|
$ sh autogen.sh
|
|
```
|
|
3. Run ./configure
|
|
```
|
|
$ ./configure
|
|
```
|
|
4. Type 'make' to build veejay
|
|
```
|
|
$ make -j$(nproc)
|
|
```
|
|
5. Installing
|
|
```
|
|
$ sudo make install && sudo ldconfig
|
|
```
|
|
6. Repeat from step __3__ to __5__ inside `veejay-server` directory
|
|
|
|
7. *optional* continue with building `veejay-client` and `veejay-utils`
|
|
```
|
|
$ cd veejay-client
|
|
$ sh autogen.sh
|
|
$ ./configure
|
|
$ make && sudo make install
|
|
|
|
$ cd veejay-utils
|
|
$ sh autogen.sh
|
|
$ ./configure
|
|
$ make && sudo make install
|
|
```
|
|
8. *optional* continue with building the plugin-packs (repeat for all plugins pack you want to install)
|
|
```
|
|
$ cd plugin-packs/lvdgmic
|
|
$ sh autogen.sh
|
|
$ ./configure
|
|
$ make && sudo make install
|
|
$ cd plugin-packs/lvdcrop
|
|
$ sh autogen.sh
|
|
$ ./configure
|
|
$ make && sudo make install
|
|
```
|
|
|
|
## Test your build
|
|
|
|
You will start veejay, connect the user interface and quit veejay.
|
|
|
|
Test if veejay works:
|
|
```
|
|
$ veejay -d -n
|
|
```
|
|
|
|
Start another terminal and type:
|
|
```
|
|
$ reloaded -a
|
|
```
|
|
|
|
Open another terminal (depends on sayVIMS, build in step 7)
|
|
```
|
|
$ sayVIMS -m "600:;"
|
|
```
|
|
|
|
(or press CTRL-C in the terminal running veejay)
|
|
|