2017-12-07 2 views
0

CentOSでは、javacppの呼び出しFFmpegを使用して、自分の開発マシンでフレームをビデオクロッピングします。このコードは問題ありませんが、centos6でがNoClassDefFoundを報告した:これは私のコードである

<dependency> 
    <groupId>org.bytedeco</groupId> 
    <artifactId>javacv</artifactId> 
    <version>1.0</version> 
</dependency> 
<dependency> 
    <groupId>org.bytedeco</groupId> 
    <artifactId>javacpp</artifactId> 
    <version>1.0</version> 
</dependency> 
<dependency> 
    <groupId>com.github.hoary.ffmpeg</groupId> 
    <artifactId>FFmpeg-linux-x86_64</artifactId> 
    <version>2.0.1.1 
    </version> 
</dependency> 
<dependency> 
    <groupId>org.bytedeco.javacpp-presets</groupId> 
    <artifactId>ffmpeg</artifactId> 
    <version>2.7.1-1.0</version> 
</dependency> 

::これは私のポンポン構成である

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avformat$AVFormatContext 
    at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:383) ~[javacv-1.0.jar:1.0] 
    at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:377) ~[javacv-1.0.jar:1.0] 
    at cn.xxtui.support.upload.BasicUpload.convertImage(BasicUpload.java:211) ~[classes/:?] 
    at cn.xxtui.support.upload.BasicUpload.upload(BasicUpload.java:197) ~[classes/:?] 
    at cn.com.ql.wiseBeijing.upload.UploadImage.upload(UploadImage.java:144) ~[classes/:?] 
    at cn.com.ql.wiseBeijing.upload.UploadImage.imageCategory(UploadImage.java:51) ~[classes/:?] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_25] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_25] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_25] 
    at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_25] 
    at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180) ~[cxf-core-3.1.12.jar:3.1.12] 
    at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[cxf-core-3.1.12.jar:3.1.12] 
    ... 37 more 

org.bytedeco.javacpp.avutilクラスを初期化できませんでした

public String convertImage(String filePath, String imagePath) throws IOException, FrameGrabber.Exception { 
    FFmpegFrameGrabber g = new FFmpegFrameGrabber(filePath); 
    g.start(); 
    Java2DFrameConverter java2DFrameConverter = new Java2DFrameConverter(); 
    BufferedImage bufferedImage = java2DFrameConverter.convert(g.grabImage()); 
    String path = imagePath + System.currentTimeMillis() + ".png"; 
    ImageIO.write(bufferedImage, "png", new File(path)); 
    g.stop(); 
    return path; 
} 
+0

in centos system、jdk1.7 ............私のローカルコンピュータが正常に動作していますが、centosでこのエラーが報告されています。見つかりません。 – Xuan

+0

あなたの投稿を書式設定し、正確に何をしようとしているか説明を追加してください。ここでスタックトレースをダンプするだけでは大した助けにはなりません。 – TheSHEEEP

+0

ビデオファイルからフレームを切り取ってcentos6にしたい – Xuan

答えて

0

すべてのライブラリがコンピュータにインストールされていることを確認してください。 この場合、「javacv-platform」。

これはその方向で考えるためのヒントを与えるものである:

java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avformat$AVFormatContext 

「がNoClassDefFoundは」ほとんど常に必要な何かが欠落していることを意味します。

関連する問題