Installing Webcam Studio for GNU/Linux From Source on Gentoo

WebcamStudio For GNU/Linux creates a virtual webcam that can mix several video sources together and can be used for live broadcasting over Bambuser, UStream or Stickam.

Ensure you have netbeans 6.x installed:

# emerge netbeans

Create and change to the directory /usr/src/wcs:

$ mkdir /usr/src/wcs
$ cd /usr/src/wcs

Check the source out of the CVS repository:

$ svn checkout http://webcamstudio.googlecode.com/svn/trunk/ webcamstudio-read-only

JNA should have been installed with netbeans however the symlink in the trunk/libraries/ directory must be adjusted:

$ rm /usr/src/wcs/webcamstudio-read-only/trunk/libraries/jna.jar
$ ln -s /usr/share/jna/lib/jna.jar /usr/src/wcs/webcamstudio-read-only/trunk/libraries/

Start netbeans. Under Gentoo the Subversion plugin will already be installed and activated. Click Open Project under the File menu and navigate to /usr/src/wcs/webcamstudio-read-only/. Select the trunk directory and click Open Project.

Once the project has loaded click Build Project under the Run menu. It will produce output similar to:

Deleting: /usr/src/wcs/webcamstudio-read-only/trunk/build/built-jar.properties
Updating property file: /usr/src/wcs/webcamstudio-read-only/trunk/build/built-jar.properties
Compiling 545 source files to /usr/src/wcs/webcamstudio-read-only/trunk/build/classes
Copying 178 files to /usr/src/wcs/webcamstudio-read-only/trunk/build/classes
Created dir: /usr/src/wcs/webcamstudio-read-only/trunk/dist
Building jar: /usr/src/wcs/webcamstudio-read-only/trunk/dist/WebcamStudio.jar
Copy libraries to /usr/src/wcs/webcamstudio-read-only/trunk/dist/lib.
To run this application from the command line without Ant, try:
java -jar "/usr/src/wcs/webcamstudio-read-only/trunk/dist/WebcamStudio.jar"
BUILD SUCCESSFUL (total time: 38 seconds)

Make sure the user you are running WebcamStudio as is part of the video group.

$ groups <username>
wheel audio cdrom dialout cdrw usb users portage scanner vboxusers roccat uucp

If the user is not a part of the video group add them:

# usermod -a -G video <username>

Test the application by running:

$ java -jar "/usr/src/wcs/webcamstudio-read-only/trunk/dist/WebcamStudio.jar"

Now build and install the kernel module:

$ cd /usr/src/wcs/webcamstudio-read-only/trunk/vloopback
$ make
# make install
# modprobe webcamstudio

To make the module auto-load on boot append it to conf.d/modules:

# echo "webcamstudio" >> /etc/conf.d/modules

Install the application to /opt/:

# mkdir /opt/webcamstudio
# cp /usr/src/wcs/webcamstudio-read-only/trunk/dist/WebcamStudio.jar /opt/webcamstudio/
# cp -r /usr/src/wcs/webcamstudio-read-only/trunk/dist/lib /opt/webcamstudio/

You may encounter this error if you do not manually build and install libwebcamstudio.so:

OS is Linux
27-Oct-2011 3:48:06 PM java.util.prefs.FileSystemPreferences$2 run
INFO: Created user preferences directory.
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'webcamstudio': libwebcamstudio.so: cannot open shared object file: No such file or directory
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:164)
        at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:237)
        at com.sun.jna.Library$Handler.(Library.java:140)
        at com.sun.jna.Native.loadLibrary(Native.java:374)
        at com.sun.jna.Native.loadLibrary(Native.java:359)
        at webcamstudio.exporter.vloopback.V4L2Loopback$CV4l2.(V4L2Loopback.java:75)
        at webcamstudio.exporter.vloopback.V4L2Loopback.open(V4L2Loopback.java:31)
        at webcamstudio.Main.selectOutputDevice(Main.java:221)
        at webcamstudio.Main.cboVideoOutputsActionPerformed(Main.java:1824)
        at webcamstudio.Main.access$700(Main.java:48)
        at webcamstudio.Main$5.actionPerformed(Main.java:794)
        at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1240)
        at javax.swing.JComboBox.setSelectedItem(JComboBox.java:567)
        at webcamstudio.Main.initVideoDevices(Main.java:192)
        at webcamstudio.Main.(Main.java:92)
        at webcamstudio.Main.main(Main.java:1901)

Return to /usr/src/wcs/webcamstudio-read-only/trunk/vloopback/:

$ cd /usr/src/wcs/webcamstudio-read-only/trunk/vloopback
$ gcc -c -fPIC libwebcamstudio.c -o libwebcamstudio.o    
$ gcc -shared -Wl -o libwebcamstudio.so.1.0.1  libwebcamstudio.o
# cp libwebcamstudio.so.1.0.1 /usr/lib64/
# ln -s /usr/lib64/libwebcamstudio.so.1.0.1 /usr/lib64/libwebcamstudio.so

Substitute lib/ for lib64/ on 32-bit systems. Now the application can be run from the command line:

$ java -jar "/opt/webcamstudio/WebcamStudio.jar"


There are no comments for this item.