VSXU VJ, Audio, Video, recording with recordmydesktop on OpenSuse 12.1
Overview
VSXU is a great real-time VJ (video dj) open source suite of apps.
However, it is more Ubuntu friendly than Suse friendly.
This article has two parts. Getting a working installation on Suse, and secondly, setting up to record both audio and video of vsxu sessions.
Installation
If I follow installation instructions here:
https://github.com/vovoid/vsxu
(scroll towards bottom for those instructions), I just end up with a bunch of segmentation faults.
One of the errors that has some more information than just segfault is:
vsxu_artiste: symbol lookup error: ./vsxu_artiste: undefined symbol: _ZN10vsx_engine21process_message_queueEP16vsx_command_listS1_bb
However, if I follow the older instructions, I get a working vsxu installation using these instructions:
http://www.vsxu.com/development/compiling-from-source
The developers said they have been planning to eliminate those instructions, so in case they do, here is a copy and paste:
What Works on Suse 12.1
Compiling from source
If you have compiled VSXu before, there have been a few changes/improvements from the 0.3.0 release and onwards. Here are the highlights:
- A new project aids in compilation, for regular builds.
- Windows compilation is not done on Windows anymore, it's done cross-compiled under GNU/Linux, this goes for modules as well. We'll show you how to set things up on linux though.
- Instead of shipping libs/dll's needed for vsxu with the vsxu project these are now handled on a per-version basis in the "build" project.
- In-source builds (./configure && make install) are now discouraged altough they are still possible.
- Installers for Windows / GNU/Linux are now generated with the help of cpack.
Prerequisites for the build environment
We're assuming we're on a debian-based distro. We're sure you can adapt these commands for your own distro.
- sudo apt-get install libglew1.6-dev
- sudo apt-get install libglfw-dev
- sudo apt-get install libpng12-dev
- sudo apt-get install libftgl-dev
- sudo apt-get install libjpeg8-dev
- sudo apt-get install libpulse-dev
- sudo apt-get install libxrandr-dev
- sudo apt-get install make
- sudo apt-get install cmake
- sudo apt-get install g++
- sudo apt-get install gcc
- sudo apt-get install git-core
Then assuming your current working directory is your home directory, you can run these commands:
mkdir vsxu-dev && cd vsxu-dev mkdir vsxu && cd vsxu git init git remote add origin git://github.com/vovoid/vsxu.git git pull origin master cd .. mkdir build && cd build git init git remote add origin git://github.com/vovoid/vsxu-build.git git pull origin master cd ..
You can do this anyway you like, the important point is that the directory structure must be something like this:
vsxu-dev/vsxu vsxu-dev/build
Now, decide what architecture you want to build - there are a few different options.
cd ~/vsxu-dev/build/linux32 cd ~/vsxu-dev/build/linux64 cd ~/vsxu-dev/build/win32
Then check out what options you have by running
ls -l
For the linux64 build for instance, there are the following scripts to help you out:
prepare prepare-fmod prepare_opt prepare_usr
- prepare - install to ~/vsxu-dev/build/[platform]/install
- prepare-fmod - include the fmod plugin in the build and install to ~/vsxu-dev/build/[platform]/install
- prepare_opt - install to /opt
- prepare_usr - install to /usr
You can run any of these. But for now let's say we just want to mess around with local development, not really installing into /usr - then the following is a viable set of commands:
./prepare cd build make install cd ../install/bin export LD_LIBRARY_PATH=../lib ./vsxu_artiste
Hint: if you have multiple cores (who doesn't these days) you can engage them all in compilation by adding the -j8 (for 8 cores) flag to make like so:
make -j8
This saves a lot of time.
Recording Audio & Video of VSXU Player Session
Will need recordmydesktop, and for ease of use, the GUI frontend of gtk-recordmydesktop ishelpful too, though not required.
I needed to play around with routing Pulse's audio to get better sound quality, otherwise it's recording over the microphone and sounds like it.
In my case, with an Asus G74S with:
- Nvidia Geforce GTX 560M 2GB
- Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
Pulse Audio Volume Control
Using the PulseAudio Volume Control, I needed to change the defaults from:
- HDA Nvidia Profile (Off)
- Internal Audio Profile: (Analog Stereo Duplex)
Changed to (when recording):
- HDA Nvidia Profile (Digital Stereo (HDMI) Output)
- Internal Audio Profile (Off)
with vsxu_player loaded already, you will also see listed under recording:
vsxu:r
I used Amarok for playing my own composed audio files (mp3, wav, whatever).
RecordMyDesktop
Now, with vsxu_player loaded, but the music not yet running. Start up gtk-recordmydesktop.
The following settings selected:
Video Quality: 100
Audio Quality: 100 (sound quality check box enabled/checked).
Click the Advanced button for following settings:
Performance Tab
Frames per second: 30
Encode on the FLy - unchecked/disabled
Zero Compressions - checked/enabled
Quick subsampling - unchecked/disabled
Full shots of every frame (needed for 3d recording) - checked/enabled
Sound Tab
Channels: 2
Frequency: 44100
Device - default (previous it was DEFAULT and did not work that way on my system)
Not using jack in this instance (will try in the future, since I have Jack for other apps), so unchecked.
Misc Tab
Display: $DISPLAY
Mouse Cursor - Normal
Follow Mouse - unchecked/disabled
MIT-Shm extension - checked/enabled
Include Window Decorations - depends on preferences for appearance
Tooltips - depends on personal preferences
Outline Capture area on screen - personal preference
Reset Capture Area - personal preference
Extra Options
This is the key to getting the video to capture without severely slow lag video. Put this in the "Extra Options" text field of the Misc Tab:
--v_bitrate 2000000
This is apparently related to some but with libtheora over 1.1, this made a huge difference!
Notes to self:
Some other capture utilities to look into:
GLC- http://www.dedoimedo.com/computers/glc.html
XvidCap
Istanbul
ffmpeg
kazam
camstudio
Freeseer
VLC (VideLan)
Others?