Compiling Xuggle on Ubuntu 14.04

Compiling Xuggle on Ubuntu 14.04

This guide applies for the latest Xuggle release from Github (5.5).

It is useful if you want to compile Xuggle from source on the latest Ubuntu release (14.04). I have been compiling using a 64 bits system.

You can find more complete information on the dedicated page from the Xuggle website.
And if you need even more info, you can have a look at the advanced build page.

First of all, we will need to install some packages needed during the compilation :

$ apt-get install ant git yasm # Installing various dependencies
$ apt-get install build-essential # g++, gcc and others

We then want to download and install the latest Java 7 realease
For that, we use a ppa.

$ add-apt-repository ppa:webupd8team/java
$ apt-get update && apt-get install oracle-java7-installer

Then, we can clone the latest Xuggle source code directly from github :

$ git clone http://github.com/artclarke/xuggle-xuggler.git
$ cd xuggle-xuggler

We will also need to upgrade g++. Indeed, if we don't do that the compilation will result in an error due to unauthorized type conversion.
The precise error message is :

([exec] ../../../../../../../csrc/com/xuggle/xuggler/Codec.cpp:158:38: error: converting 'false' to pointer type 'int (*)(AVCodecContext*, void*, int*, AVPacket*)' [-Werror=conversion-null])

To solve this, I configured g++ < 4.8 to be used by default (4.6 here)

$ apt-get install g++-4.6
$ update-alternatives --remove-all g++
$ update-alternatives --display c++
$ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 10
$ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20

$ update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
$ update-alternatives --set c++ /usr/bin/g++
$ update-alternatives --config g++ # Choose the older version

Finally, we can try to compile Xuggle from source.

$ ant stage

Compilation takes roughly 10 minutes on my system.

If the compilation is successful, you can get the generated jar in the dist folder.
The latest release of Xuggle embeds the so files directly in the jar, so you shouldn't need anything else.

Compiling Xuggle from scratch in 14.04 has been surprisingly easy comparing to 12.04. The compilation scheme has been greatly improved in the latest Xuggle release.

Note : Xuggle is now deprecated, and has not been updated for now almost a year. So far, I haven't found an equivalent that would be just as good. Let me know if you do!