直接上代碼,關鍵位置是加載DLL
package mypkg;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.imgproc.Imgproc;
import org.opencv.videoio.VideoCapture;
public class TestRtsp {
public static void main(String[] args) {
System.out.println("###start rtsp test###");
System.load("F:/lee/apps/opencv/build/java/x64/opencv_java400.dll");
/// ***最重要的地方!!!一定要加載opencv_ffmpeg400_64.dll這個,要不然是無法解碼的,就會失敗****
// 這個問題搞了我一整天 終於出來了
System.load("F:/lee/apps/opencv/build/bin/opencv_ffmpeg400_64.dll");
testRtsp();
System.out.println("###end###");
}
private static void testRtsp() {
VideoCapture vc = new VideoCapture();
boolean isOpen = vc.open("rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov");
System.out.println("isOpen="+isOpen);
Mat mat = new Mat();
String winName = "showFrame";
int height = 600,width = 800;
HighGui.namedWindow(winName);
HighGui.resizeWindow(winName, width, height);
while(vc.read(mat)){
// 重置大小
Mat dst = new Mat();
Imgproc.resize(mat, dst, new Size(width,height));
// 顯示
HighGui.imshow(winName, dst);
// waitkey 必須要,否則無法顯示
int key = HighGui.waitKey(1);
System.out.println("key="+key);
if(key == 27){
break;
}
}
HighGui.destroyAllWindows();
//
vc.release();
}
}