Я пытаюсь загрузить видеофайл с помощью 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? В папке opecv bin есть одна dll ffmpeg.
Если мне придется сделать это, мне понадобится лучший способ включить их с помощью затмения. До сих пор я просто добавляю папку в переменную пути. Например, я добавил это, чтобы opencv работал.
C: \ OpenCV \ построить \ Common \ ТВВ \ ia32 \ VC10 \; C: \ OpenCV \ построить \ x86 \ VC10 \ Bin \;