Downloading & Installing
Supported operating systems
Xuggler consists of a small amount of Java (i.e. architecture independent) code and a large amount of native code that needs to be specifically compiled for different operating systems. That means different binary packages must be used with different operating systems (unlike most Java programs).
The good news is that (as of Xuggler 5.2) for the users of the following operating systems, you can effectively ignore that distinction:
OS Family | "No install" versions |
---|---|
Windows XP or later, 32 or 64-bit versions. GPL version only | |
Linux using libc version 6, 32 or 64-bit (i.e. Ubuntu 11.10 and later). | |
Mac OS X 10.7 32 or 64-bit. |
The bad news is that the versions we compile into Jar files for you are distribued under the GPL. If you need the LGPL or you need support for an operating system not mentioned above, you will need to compile and build Xuggler from source yourself. Xuggler can build on most intel-based computers (not Android or iOS).
Download
We recommend using Xuggler with either Maven or Ivy for dependency management.
Using Xuggler with Apache Maven
Add the following to your pom.xml
file. Change the version number to the
version of Xuggler you want.
<project> ... <repositories> ... <repository> <id>xuggle repo</id> <url>http://xuggle.googlecode.com/svn/trunk/repo/share/java/</url> </repository> ... </repositories> ... <dependencies> ... <dependency> <groupId>xuggle</groupId> <artifactId>xuggle-xuggler</artifactId> <version>5.2</version> </dependency> ... </dependencies> ... </project>
See the xuggle-xuggler-test project for an example of a Maven-based java program that depends on Xuggler (this project executes lots of long-running CPU-intensive tests of Xuggler). Examine that project's pom.xml file.
Using Xuggler with Apache Ivy
Add the following to your ivy.xml
file. Change the version number to the
version of Xuggler you want.
<ivy-module> ... <dependencies> ... <dependency org="xuggle" name="xuggle-xuggler" rev="5.2" /> ... </dependencies> ... </ivy-module>
Add the following to your ivysettings.xml
file. This tells ivy where the Xuggler
repository is and how it's organized
<ivysettings> ... <resolvers> ... <url m2compatible="true" name="xugglecode"> <ivy pattern="http://xuggle.googlecode.com/svn/trunk/repo/share/java/[organization]/[artifact]/[revision]/ivy-[revision].xml"/> <ivy pattern="http://xuggle.googlecode.com/svn/trunk/repo/share/java/[organization]/[artifact]/ivy-[revision].xml"/> <artifact pattern="http://xuggle.googlecode.com/svn/trunk/repo/share/java/[organisation]/[artifact]/[revision]/[artifact](-[revision]).[ext]" /> <artifact pattern="http://xuggle.googlecode.com/svn/trunk/repo/share/java/[organisation]/[artifact]/[artifact](-[revision]).[ext]" /> <artifact pattern="http://xuggle.googlecode.com/svn/trunk/repo/share/java/[organisation]/[artifact](-[revision]).[ext]" /> <artifact pattern="http://xuggle.googlecode.com/svn/trunk/repo/share/java/[artifact](-[revision]).[ext]" /> </url> ... <chain name="default" changingPattern=".*SNAPSHOT"> ... <!-- Make sure you use the xugglecode resolver when trying to resolve --> <resolver ref="xugglecode"/> ... </chain> ... </resolvers> ... </ivysettings>
Using Xuggler WITHOUT Apache Maven or Apache Ivy
What are you... stuck in 2003? Anyway, if you insist on this, Xuggler's pre-compiled binaries (including native versions) can
be found here.
Make sure that xuggle-xuggler.jar
and its dependencies are
included in your Java classpath. See the xuggle-xugger-*.pom
file distributed with the version of Xuggler that you use to find the (small) set
of dependent jars, and download them as well.
Using Xuggler with J2EE Containers
Xuggler contains Native Code and therefore requires special installation with J2EE containers such as Tomcat, Jetty or Glassfish. It must be installed in a location
where the J2EE container loads it, rather than a specific web application (unless you can guarantee that your application is the only application in the server that will
load Xuggler). You will have to look up the specific documentation for your specific container, but as an example, for Tomcat make sure you install xuggle-xuggler.jar
file to $CATALINA_HOME/shared/lib
. See tomcat JNI notes
for the reason why.
Choosing which files to depend on
We ship Xuggler with a few jar files. Most users will only need xuggle-xuggler.jar
but the others provide options
for advanced use cases. For example, some users only want to support one operating system (e.g. Windows 32-bit) and want
to minimize download size, and so we provide some jar files that contain support for only one operating system. Read on
for more information.
Filename | Contents |
---|---|
xuggle‑xuggler.jar
|
Java code and native code for each of the operating systems above. This Jar file should work on any of the operating systems above. The Xuggler native code
is compiled as one large shared object file per operating systems, and each shared object
can be found in a subdirectory at |
xuggle‑xuggler‑noarch.jar
|
Java code only for Xuggler. If using this jar file, it is the user's responsibility to ensure that an appropriate native-only jar file is ALSO included in the classpath for the operating system desired, or that the Xuggler native libraries are available via the operating systems' dynamic loading capability (i.e. how Xuggler 4.x and earlier used to work). |
xuggle‑xuggler‑arch‑i686‑w64‑mingw32.jar
|
An architecture-specific jar file containing only native code for Xuggler compiled for Windows 32-bit Java Virtual Machines. If using this jar file, you should also include This jar file cannot be used along side any of the other architecture-specific jar files. i.e. users must ensure only one of these types of jars is included per application. |
xuggle‑xuggler‑arch‑x86_64‑w64‑mingw32.jar
|
An architecture-specific jar file containing only native code for Xuggler compiled for Windows 64-bit Java Virtual Machines. If using this jar file, you should also include This jar file cannot be used along side any of the other architecture-specific jar files. i.e. users must ensure only one of these types of jars is included per application. |
xuggle‑xuggler‑arch‑i386‑xuggle‑darwin11.jar
|
An architecture-specific jar file containing only native code for Xuggler compiled for Mac OS X 10.7 32-bit Java Virtual Machines. If using this jar file, you should also include This jar file cannot be used along side any of the other architecture-specific jar files. i.e. users must ensure only one of these types of jars is included per application. |
xuggle‑xuggler‑arch‑x86_64‑xuggle‑darwin11.jar
|
An architecture-specific jar file containing only native code for Xuggler compiled for Mac OS X 10.7 64-bit Java Virtual Machines. If using this jar file, you should also include This jar file cannot be used along side any of the other architecture-specific jar files. i.e. users must ensure only one of these types of jars is included per application. |
xuggle‑xuggler‑arch‑i686‑pc‑linux@#8209;gnu.jar
|
An architecture-specific jar file containing only native code for Xuggler compiled for Linux 32-bit Java Virtual Machines that link with version 6 of the GNU libc. If using this jar file, you should also include This jar file cannot be used along side any of the other architecture-specific jar files. i.e. users must ensure only one of these types of jars is included per application. |
xuggle‑xuggler‑arch‑x86_64‑pc‑linux@#8209;gnu.jar
|
An architecture-specific jar file containing only native code for Xuggler compiled for Linux 64-bit Java Virtual Machines that link with version 6 of the GNU libc. If using this jar file, you should also include This jar file cannot be used along side any of the other architecture-specific jar files. i.e. users must ensure only one of these types of jars is included per application. |
Licensing
Xuggler's pre-compiled Jar files are licensed under the GNU General Public License v3 (GPL), but Lesser GNU General Public License v3 (LGPL) can be built. See the COPYING and COPYING.LESSER files in each library for details.