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 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 com/xuggler/ferry in the classpath of the jar file. There is a properties file named com/xuggle/ferry/native-contents.properties that is used by Xuggler to determine which operating systems are supported in each Jar file, which allows Xuggler to have more than one operating system's native code in a single jar file.

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 xuggle-xuggler-noarch.jar with your application to get the Java code.

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 xuggle-xuggler-noarch.jar with your application to get the Java code.

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 xuggle-xuggler-noarch.jar with your application to get the Java code.

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 xuggle-xuggler-noarch.jar with your application to get the Java code.

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 xuggle-xuggler-noarch.jar with your application to get the Java code.

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 xuggle-xuggler-noarch.jar with your application to get the Java code.

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.