From df23393f2ee30420b667965abfcb02ea6e9496be Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Tue, 1 Jul 2014 16:09:22 +0200 Subject: [PATCH] Adds post for easy compilation of Xuggle on Ubuntu 14.04 --- ...014-07-01-compiling-xuggle-on-ubuntu-14-04 | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 _posts/2014-07-01-compiling-xuggle-on-ubuntu-14-04 diff --git a/_posts/2014-07-01-compiling-xuggle-on-ubuntu-14-04 b/_posts/2014-07-01-compiling-xuggle-on-ubuntu-14-04 new file mode 100644 index 0000000..9bf3d89 --- /dev/null +++ b/_posts/2014-07-01-compiling-xuggle-on-ubuntu-14-04 @@ -0,0 +1,86 @@ +--- +layout: post +status: publish +published: true +title: Compiling Xuggle on Ubuntu 14.04 +author: Julien Lengrand-Lambert +author_login: jlengrand +author_email: julien@lengrand.fr +author_url: http://www.lengrand.fr +categories: +- programming +- java +tags: +- xuggle +- java +-xuggle +- codec +- ubuntu +comments: [] +--- + +This guide applies for the latest [Xuggle][1] release from [Github][2] (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][3]. +And if you need even more info, you can have a look at [the advanced build page][4]. + +First of all, we will need to install some packages needed during the compilation : + +Installing various dependencies + + $ apt-get install ant git yasm + $ 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 https://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 **20 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!** + + + [1]: http://www.xuggle.com/ + [2]: https://github.com/artclarke/xuggle-xuggler + [3]: http://www.xuggle.com/xuggler/build + [4]: http://www.xuggle.com/xuggler/advbuild \ No newline at end of file