title: ERROR com.xuggle.ferry.JNILibraryLoader - Could not load library: xuggle-xuggler; version: 3;
body: <p>I have recently downloaded a code for, <strong>Xuggler Tutorial: Frames Capture and Video Creation</strong> from <a href="http://www.javacodegeeks.com/2011/02/xuggler-tutorial-frames-capture-video.html/comment-page-1/#comment-4336" rel="nofollow">this link</a>, I have added all the <strong>.jar</strong> files in my project which are required to run this code but, When I am running this code then I am getting Error:</p>
  
  <p>Here is my code:</p>
  
  <pre><code>package xug;
  
  import java.awt.image.BufferedImage;
  import java.io.File;
  import java.io.IOException;
  
  import javax.imageio.ImageIO;
  
  import com.xuggle.mediatool.IMediaReader;
  import com.xuggle.mediatool.MediaListenerAdapter;
  import com.xuggle.mediatool.ToolFactory;
  import com.xuggle.mediatool.event.IVideoPictureEvent;
  import com.xuggle.xuggler.Global;
  
  public class VideoThumbnailsExample {
  
      public static final double SECONDS_BETWEEN_FRAMES = 10;
      private static final String inputFilename = "e:/low_light.mp4";
      private static final String outputFilePrefix = "e:/Frames/processedImages";
      // The video stream index, used to ensure we display frames from one and
      // only one video stream from the media container.
      private static int mVideoStreamIndex = -1;
      // Time of last frame write
      private static long mLastPtsWrite = Global.NO_PTS;
      public static final long MICRO_SECONDS_BETWEEN_FRAMES =
              (long) (Global.DEFAULT_PTS_PER_SECOND * SECONDS_BETWEEN_FRAMES);
  
      public static void main(String[] args) {
  
          IMediaReader mediaReader = ToolFactory.makeReader(inputFilename);
  
          // stipulate that we want BufferedImages created in BGR 24bit color space
          mediaReader.setBufferedImageTypeToGenerate(BufferedImage.TYPE_3BYTE_BGR);
  
          mediaReader.addListener(new ImageSnapListener());
  
          // read out the contents of the media file and
          // dispatch events to the attached listener
          while (mediaReader.readPacket() == null) ;
  
      }
  
      private static class ImageSnapListener extends MediaListenerAdapter {
  
          public void onVideoPicture(IVideoPictureEvent event) {
  
              if (event.getStreamIndex() != mVideoStreamIndex) {
                  // if the selected video stream id is not yet set, go ahead an
                  // select this lucky video stream
                  if (mVideoStreamIndex == -1) {
                      mVideoStreamIndex = event.getStreamIndex();
                  } // no need to show frames from this video stream
                  else {
                      return;
                  }
              }
  
              // if uninitialized, back date mLastPtsWrite to get the very first frame
              if (mLastPtsWrite == Global.NO_PTS) {
                  mLastPtsWrite = event.getTimeStamp() - MICRO_SECONDS_BETWEEN_FRAMES;
              }
  
              // if it's time to write the next frame
              if (event.getTimeStamp() - mLastPtsWrite
                      &gt;= MICRO_SECONDS_BETWEEN_FRAMES) {
  
                  String outputFilename = dumpImageToFile(event.getImage());
  
                  // indicate file written
                  double seconds = ((double) event.getTimeStamp())
                          / Global.DEFAULT_PTS_PER_SECOND;
                  System.out.printf(
                          "at elapsed time of %6.3f seconds wrote: %s\n",
                          seconds, outputFilename);
  
                  // update last write time
                  mLastPtsWrite += MICRO_SECONDS_BETWEEN_FRAMES;
              }
  
          }
  
          private String dumpImageToFile(BufferedImage image) {
              try {
                  String outputFilename = outputFilePrefix
                          + System.currentTimeMillis() + ".png";
                  ImageIO.write(image, "png", new File(outputFilename));
                  return outputFilename;
              } catch (IOException e) {
                  e.printStackTrace();
                  return null;
              }
          }
      }
  }
  </code></pre>
  
  <p>and I am getting following error in this. </p>
  
  <pre><code>[main] ERROR com.xuggle.ferry.JNILibraryLoader - Could not load library: xuggle-xuggler; version: 3; Visit http://www.xuggle.com/xuggler/faq/ to find common solutions to this problem
  java.lang.UnsatisfiedLinkError: no xuggle-xuggler in java.library.path
      at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
      at java.lang.Runtime.loadLibrary0(Runtime.java:845)
      at java.lang.System.loadLibrary(System.java:1084)
      at com.xuggle.ferry.JNILibraryLoader.loadLibrary0(JNILibraryLoader.java:265)
      at com.xuggle.ferry.JNILibraryLoader.loadLibrary(JNILibraryLoader.java:168)
      at com.xuggle.xuggler.XugglerJNI.&lt;clinit&gt;(XugglerJNI.java:19)
      at com.xuggle.xuggler.Global.&lt;clinit&gt;(Global.java:238)
      at xug.VideoThumbnailsExample.&lt;clinit&gt;(VideoThumbnailsExample.java:28)
  Exception in thread "main" Java Result: 1
  </code></pre>
  
  <p>Please explain why <strong>Class-Loader</strong> is unable to load the <strong>.jar</strong> file.</p>