bytedeco / javacv

Java interface to OpenCV, FFmpeg, and more
Other
7.39k stars 1.56k forks source link

javacv 1.5.10 java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.ffmpeg.global.avutil #2212

Closed Love122 closed 2 months ago

Love122 commented 2 months ago

run env {"java version":"1.8.0u192","nginx version":"openresty/1.9.7.3","tomcat version":"Tomcat/8.5.42","linux version":"CentOS release 6.6 (Final)","":"v3tomcat"}

export error code:
File sourceFile = new File(fileName); frameGrabber = FFmpegFrameGrabber.createDefault(sourceFile);

trace log : Exception in thread "pool-23-thread-1" java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.ffmpeg.global.avutil at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.bytedeco.javacpp.Loader.load(Loader.java:1289) at org.bytedeco.javacpp.Loader.load(Loader.java:1234) at org.bytedeco.javacpp.Loader.load(Loader.java:1210) at org.bytedeco.ffmpeg.avformat.Read_packet_Pointer_BytePointer_int.(Read_packet_Pointer_BytePointer_int.java:45) at org.bytedeco.javacv.FFmpegFrameGrabber.(FFmpegFrameGrabber.java:366) at com.jd.ershou.oss.VideoHelper.convert2Mp4(VideoHelper.java:256) at com.jd.ershou.oss.VideoHelper.start(VideoHelper.java:187) at com.jd.ershou.sns.web.controller.FileUploadController$1.run(FileUploadController.java:406) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

nocarethancare commented 2 months ago

i have the same problem 1.5.9 is ok

Love122 commented 2 months ago

I find some function load by : Loader.load(avutil.class); Loader.load(swresample.class); Loader.load(avcodec.class); But also had error,like that : java.lang.UnsatisfiedLinkError: no jniavutil in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864) ~[?:1.8.0_60] at java.lang.Runtime.loadLibrary0(Runtime.java:870) ~[?:1.8.0_60] at java.lang.System.loadLibrary(System.java:1122) ~[?:1.8.0_60] at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1832) ~[javacpp-1.5.10.jar:1.5.10] at org.bytedeco.javacpp.Loader.load(Loader.java:1423) ~[javacpp-1.5.10.jar:1.5.10] at org.bytedeco.javacpp.Loader.load(Loader.java:1234) ~[javacpp-1.5.10.jar:1.5.10] at org.bytedeco.javacpp.Loader.load(Loader.java:1210) ~[javacpp-1.5.10.jar:1.5.10] at org.bytedeco.ffmpeg.global.avutil.(avutil.java:14) ~[ffmpeg-6.1.1-1.5.10.jar:6.1.1-1.5.10] at java.lang.Class.forName0(Native Method) ~[?:1.8.0_60] at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_60] at org.bytedeco.javacpp.Loader.load(Loader.java:1289) ~[javacpp-1.5.10.jar:1.5.10] Caused by: java.lang.UnsatisfiedLinkError: /home/admin/.javacpp/cache/ffmpeg-6.1.1-1.5.10-linux-x86_64.jar/org/bytedeco/ffmpeg/linux-x86_64/libjniavutil.so: libdrm.so.2: Unable to open shared object file: No file or directory available

Please help me fix this peoblem,thanks,in my mac book run all well,but in linux centos7 always export this error

Love122 commented 2 months ago

someone tell me, In Linux, it is necessary to compile the corresponding so file,right ? @paul-hammant

Love122 commented 2 months ago

@saudet help ~~

saudet commented 2 months ago

Please try again with Ubuntu

saudet commented 2 months ago

Duplicate of https://github.com/bytedeco/javacpp-presets/issues/1379

Love122 commented 2 months ago

thanks, I use 1.5.9 version and os mirror base on centos7 install ffmpeg 4.3.1, can fix this problem