我正在尝试使用javacv加载视频文件,但是我遇到了一些问题。
我已经编译了一个应用程序,可以在屏幕上显示图像,因此我认为我的设置是正确的。
我正在使用以下代码。
import java.io.File;
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FFmpegFrameGrabber;
public class TestCV{
public static void main(String[] args) throws Exception {
File f = new File("input.mp4");
FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(f);
final CanvasFrame canvas = new CanvasFrame("My Image");
canvas.showImage(grabber.grab());
}
}
这里出现了错误
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\takas\AppData\Local\Temp\jniavutil3690549951281752227.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at com.googlecode.javacpp.Loader.load(Loader.java:337)
at com.googlecode.javacpp.Loader.load(Loader.java:271)
at com.googlecode.javacv.cpp.avutil.<clinit>(avutil.java:76)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.googlecode.javacpp.Loader.load(Loader.java:291)
at com.googlecode.javacv.cpp.avcodec.<clinit>(avcodec.java:87)
at com.googlecode.javacv.FFmpegFrameGrabber.<init>(FFmpegFrameGrabber.java:73)
at com.googlecode.javacv.FFmpegFrameGrabber.<init>(FFmpegFrameGrabber.java:69)
at tester.t.JavaFlow.main(JavaFlow.java:13)
我需要使用单独的ffmpeg dll吗?在opecv bin文件夹中有一个ffmpeg dll。
如果必须这样做,我需要更好的方法来使用eclipse将它们包含进去。到目前为止,我只是将文件夹添加到路径变量中。例如,我添加了以下内容以使opencv工作。
C:\opencv\build\common\tbb\ia32\vc10\;C:\opencv\build\x86\vc10\bin\;