vanwang / xuggle

Automatically exported from code.google.com/p/xuggle
0 stars 0 forks source link

java.lang.UnsatisfiedLinkError #255

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Running 64-bit CentOS 5.2
2. Installed all required software
3. Did advanced build because the normal build did not work
4. Tried java -cp $XUGGLE_HOME/share/java/jars/xuggle-xuggler.jar 
com.xuggle.xuggler.Configuration

What is the expected output? What do you see instead?

Exception in thread "main" java.lang.UnsatisfiedLinkError: 
/usr/local/xuggler/lib/libxuggle-xuggler.so.3.4.1012: /lib64/libc.so.6: version 
`GLIBC_2.7' not found (required by /usr/local/xuggler/lib/libavformat.so.52)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1028)
        at com.xuggle.ferry.JNILibraryLoader.loadLibrary0(JNILibraryLoader.java:265)
        at com.xuggle.ferry.JNILibraryLoader.loadLibrary(JNILibraryLoader.java:168)
        at com.xuggle.xuggler.XugglerJNI.<clinit>(XugglerJNI.java:19)
        at com.xuggle.xuggler.IContainerFormat.make(IContainerFormat.java:543)
        at com.xuggle.xuggler.GetSupportedCodecs.main(GetSupportedCodecs.java:47)

What operating system and JVM version are you using.
JRE: 1.6_20-b02
JVM: 16.3-b01

Attach relevant log/output files.

Original issue reported on code.google.com by mahasen....@gmail.com on 25 Nov 2010 at 11:44

GoogleCodeExporter commented 9 years ago
Did you try xuggle-xuggler-x86_64-linux.sh installer? I use x32 Ubuntu 10.04 
and it works for me. I suggest you to review your current codec related 
libraries. May be there are old version libs etc.

Original comment by vadym.vi...@gmail.com on 27 Nov 2010 at 5:24

GoogleCodeExporter commented 9 years ago
I tried the xuggle-xuggler-x86_64-linux.sh installer and it didn't work. Is it 
because I'm using 64-bit linux?

Original comment by mahasen....@gmail.com on 7 Dec 2010 at 5:36

GoogleCodeExporter commented 9 years ago
Looks like It's problems with a lib in your OS. (/lib64/libc.so.6). I will 
install xuggle on Ubuntu 10 64bit and then I give you feedback. 

Original comment by vadym.vi...@gmail.com on 18 Dec 2010 at 2:15

GoogleCodeExporter commented 9 years ago
Solution is here:

in a new file /etc/ld.so.conf.d/xuggler.conf add one line 

/usr/local/xuggler/lib 

and then run 

sudo ldconfig -v

It means that OS requires to refresh native libs cache.

Original comment by vadym.vi...@gmail.com on 22 Dec 2010 at 5:53

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
i am too geting this error. after adding "/usr/local/xuggler/lib " in 
/etc/ld.so.conf.d/xuggler.conf file 

i did all given below process ===>

1. Installed xuggler (/usr/local/) at this location
2. export XUGGLE_HOME=/usr/local/xuggler
export LD_LIBRARY_PATH=$XUGGLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$XUGGLE_HOME/bin:$PATH

added in Environment Variable of server
3. using this command
[root@orion1 ~]# ffmpeg -i /invalid/file
ffmpeg: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ffmpeg)
ffmpeg: /lib/libc.so.6: version `GLIBC_2.7' not found (required by 
/usr/local/xuggler/lib/libavformat.so.52)
ffmpeg: /lib/libc.so.6: version `GLIBC_2.7' not found (required by 
/usr/local/xuggler/lib/libavcodec.so.52)
ffmpeg: /lib/libc.so.6: version `GLIBC_2.7' not found (required by 
/usr/local/xuggler/lib/libx264.so.83)

getting these error.
4. and i write also one service for streaming vedio for that i set library in 
my lib file
and getting these errors

2011-01-09 23:49:33,305 [btpool0-2] DEBUG : ServletDispatcher::execute() 
requestServiceName = xugglerImpl accessLevel = public
ServletDispatcher::execute() received Response queue from transaction manager.
2011-01-09 23:49:33,305 [Txn-Thread-1] INFO  : 00000000000000
2011-01-09 23:49:33,316 [Txn-Thread-1] WARN  com.xuggle.ferry.JNILibraryLoader 
- Failure: library load of library: xuggle-xuggler; version: 3: absolute path: 
/usr/local/xuggler/lib/libxuggle-xuggler.so.3; error: 
java.lang.UnsatisfiedLinkError: 
/usr/local/xuggler/lib/libxuggle-xuggler.so.3.4.1012: /lib/libc.so.6: version 
`GLIBC_2.7' not found (required by /usr/local/xuggler/lib/libavformat.so.52)
2011-01-09 23:49:33,318 [Txn-Thread-1] WARN  com.xuggle.ferry.JNILibraryLoader 
- Failure: library load of library: xuggle-xuggler; version: 3: absolute path: 
/usr/local/xuggler/lib/libxuggle-xuggler.so.3; error: 
java.lang.UnsatisfiedLinkError: 
/usr/local/xuggler/lib/libxuggle-xuggler.so.3.4.1012: /lib/libc.so.6: version 
`GLIBC_2.7' not found (required by /usr/local/xuggler/lib/libavformat.so.52)
2011-01-09 23:49:33,320 [Txn-Thread-1] WARN  com.xuggle.ferry.JNILibraryLoader 
- Failure: library load of library: xuggle-xuggler; version: 3: absolute path: 
/usr/local/xuggler/lib/libxuggle-xuggler.so; error: 
java.lang.UnsatisfiedLinkError: 
/usr/local/xuggler/lib/libxuggle-xuggler.so.3.4.1012: /lib/libc.so.6: version 
`GLIBC_2.7' not found (required by /usr/local/xuggler/lib/libavformat.so.52)
2011-01-09 23:49:33,322 [Txn-Thread-1] WARN  com.xuggle.ferry.JNILibraryLoader 
- Failure: library load of library: xuggle-xuggler; version: 3: absolute path: 
/usr/local/xuggler/lib/libxuggle-xuggler.so; error: 
java.lang.UnsatisfiedLinkError: 
/usr/local/xuggler/lib/libxuggle-xuggler.so.3.4.1012: /lib/libc.so.6: version 
`GLIBC_2.7' not found (required by /usr/local/xuggler/lib/libavformat.so.52)
2011-01-09 23:49:33,323 [Txn-Thread-1] 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
2011-01-09 23:49:33,324 [Txn-Thread-1] INFO  : finally generating success 
response....
Exception in thread "Txn-Thread-1" java.lang.UnsatisfiedLinkError: 
/usr/local/xuggler/lib/libxuggle-xuggler.so.3.4.1012: /lib/libc.so.6: version 
`GLIBC_2.7' not found (required by /usr/local/xuggler/lib/libavformat.so.52)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1030)
        at com.xuggle.ferry.JNILibraryLoader.loadLibrary0(JNILibraryLoader.java:265)
        at com.xuggle.ferry.JNILibraryLoader.loadLibrary(JNILibraryLoader.java:168)
        at com.xuggle.xuggler.XugglerJNI.<clinit>(XugglerJNI.java:19)
        at com.xuggle.xuggler.IContainer.<clinit>(IContainer.java:1457)
        at com.trignos.zinni.xuggle.XugglerImpl.execute(Unknown Source)
        at com.innovedic.spacelets.Spacelet.execute(Unknown Source)

if any expert can tell me what should i config for use xuggler

this is my service code

IContainer container = IContainer.make();
IContainerFormat containerFormat_live = IContainerFormat.make();
 containerFormat_live.setOutputFormat("flv", url + fileName, null);
 container.setInputBufferLength(0);
  Log.info(this,"111111111111111111",null,"info",false);
 int retVal = container.open(url + fileName, IContainer.Type.WRITE, containerFormat_live);
  if (retVal < 0)
  {
  Log.error(this,"Could not open output container for live stream",null,"info",false);
          //System.exit(1); 
  }
              IStream stream = container.addNewStream(0);
              IStreamCoder coder = stream.getStreamCoder();

              ICodec codec = ICodec.findEncodingCodec(ICodec.ID.CODEC_ID_H264);
              Log.info(this,"222222222222222222",null,"info",false);
              coder.setNumPicturesInGroupOfPictures(5);
              coder.setCodec(codec);
              coder.setBitRate(200000);
              coder.setPixelType(IPixelFormat.Type.YUV420P);
              coder.setHeight(IN_HEIGHT);
              coder.setWidth(IN_WIDTH);
              Log.info(this,"[ENCODER] video size is " + IN_WIDTH + "x" + IN_HEIGHT,null,"info",false);
              coder.setFlag(IStreamCoder.Flags.FLAG_QSCALE, true);
              coder.setGlobalQuality(0);
              IRational frameRate = IRational.make(5, 1);
              coder.setFrameRate(frameRate);
              coder.setTimeBase(IRational.make(frameRate.getDenominator(), frameRate.getNumerator()));
              Properties props = new Properties();
              InputStream isss = XugglerImpl.class.getResourceAsStream("/libx264-normal.ffpreset");
              Log.info(this,"333333333333333"+isss,null,"info",false);
              try
              {  
                  props.load(isss);  
              }
              catch (IOException e) 
              {  
                  Log.error(this,"You need the libx264-normal.ffpreset file from the Xuggle distribution in your classpath.",null,"info",false);
                  error = "libx264-normal.ffpreset file from the Xuggle distribution in your classpath "+e.getMessage();
                  //System.exit(1);
              }
              Log.info(this,"44444444444444444",null,"info",false);
              Configuration.configure(props, coder);     
              coder.open();  
              container.writeHeader();   
              long firstTimeStamp = System.currentTimeMillis();   
              long lastTimeStamp = -1;    
              int i = 0;
              Log.info(this,"55555555555555555",null,"info",false);
              try 
              {  
                  Robot robot = new Robot();     
                  while (i<framesToEncode)
                  {   
                      //long iterationStartTime = System.currentTimeMillis();    
                      long now = System.currentTimeMillis();      
                      //grab the screenshot   
                      BufferedImage image = robot.createScreenCapture(new Rectangle(x, y, IN_WIDTH, OUT_HEIGHT));
                      //convert it for Xuggler
                      BufferedImage currentScreenshot = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_3BYTE_BGR);
                      currentScreenshot.getGraphics().drawImage(image, 0, 0, null);
                      //start the encoding process
                      IPacket packet = IPacket.make();
                      IConverter converter = ConverterFactory.createConverter(currentScreenshot, IPixelFormat.Type.YUV420P);
                      long timeStamp = (now - firstTimeStamp) * 1000;
                      IVideoPicture outFrame = converter.toPicture(currentScreenshot, timeStamp);
                      if (i==0) 
                      {   
                          //make first frame keyframe    
                          outFrame.setKeyFrame(true);    
                      }  
                      outFrame.setQuality(0);    
                      coder.encodeVideo(packet, outFrame, 0);    
                      outFrame.delete();    
                      if (packet.isComplete())
                      {  
                          container.writePacket(packet);    
                          Log.info(this,"[ENCODER] writing packet of size...."+ packet.getSize()+ " for elapsed time " + ((timeStamp - lastTimeStamp) / 1000),null,"info",false);
                          lastTimeStamp = timeStamp;     
                      }
                      Log.info(this,"[ENCODER] encoded image " + i + " in " + (System.currentTimeMillis() - now),null,"info",false);
                         //System.out.println();
                      i++;  
                      try
                      {  
                          // sleep for framerate milliseconds   
                          Thread.sleep(Math.max((long) (1000 / frameRate.getDouble()) - (System.currentTimeMillis() - now), 0));
                      }
                      catch (InterruptedException e) 
                      { 
                          error = "InterruptedException "+e.getMessage();
                      } 
                  } 
                  Log.info(this,"666666666666",null,"info",false);
              }
              catch (AWTException e)
              {
                  error = "AWTException "+e.getMessage();
              }
              Log.info(this,"77777777777777777",null,"info",false);
              container.writeTrailer();
              Log.info(this,"8888888888888888",null,"info",false);
        }
        catch(Exception e)
        {           
            error = "Unknown exception occured. "+e.getMessage();
        }
        finally
        {
            if(error == null)
            {               
                Log.info(this, "finally generating success response....", null, "" ,true);
                sb.append(IConstants.XML_VER+"<response><status>1</status><message>success</message></response>");  
            }
            else
            {
                Log.info(this, "finally generating failure response....", null, "" ,true);
                sb.append(IConstants.XML_VER+"<response><status>0</status><message>failure</message><error>"+ error +"</error></response>");
            }
        }

thanks in advance 
vijay

Original comment by vkt...@gmail.com on 10 Jan 2011 at 8:07

GoogleCodeExporter commented 9 years ago
I investigated the problem. Unfortunately there is no simple way to run an 
application that requires glibc > 2.5 on CentOS. Because the newest version in 
the os only glibc 2.5 even if you install latest CentOS 5.5. I tryed to compile 
the xuggler sources but it is still failed. You may be more lucky and compile 
the source successfully. I use Xuggle video transcoding on Ubuntu 10.10 64bit 
and it works good.

Best wishes,
Vadym O Vikulin 

Original comment by vadym.vi...@gmail.com on 12 Jan 2011 at 2:32

GoogleCodeExporter commented 9 years ago
Hi

I am also facing the same issue. Can you suggest some library similar to 
xuggler. I need to extract frames from .flv file.

Original comment by ankit.sa...@gmail.com on 14 Jul 2011 at 11:25

GoogleCodeExporter commented 9 years ago
i have same issue and not solved yet, how to solve it

Original comment by ravidrea...@gmail.com on 6 Jan 2012 at 11:56

GoogleCodeExporter commented 9 years ago
I have recompiled and now it is working fine.

Original comment by ankit.sa...@gmail.com on 9 Jan 2012 at 6:57

GoogleCodeExporter commented 9 years ago

Original comment by art.cla...@gmail.com on 7 Apr 2012 at 5:41