我正在尝试使用 OpenCV 在 java 中创建一个应用程序,以从网络服务中获取视频流,该服务是一个带有几个摄像头和一个记录设备的摄像头系统。
我找到了地址“rtsp://login:pass@IP地址:Port/cam/realmonitor?channel=1&subtype=0”用于访问通道1上的摄像头。
为了打开相机流,我使用了这段代码(目前它捕获本地 USB 相机):
视频采集上限;Mat2Image mat2Img = new Mat2Image();
public VideoGrabber(){
cap = new VideoCapture(0);
try {
System.out.println("Sleeping..");
Thread.sleep(4000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Camera on..");
cap.open("0");
if(!cap.isOpened()){
System.out.println("Camera Error");
}
else{
System.out.println("Camera OK?");
}
}
Run Code Online (Sandbox Code Playgroud)
抓取视频流后,我将其放入 JFrame 中。
我想我应该将视频流服务地址放在 cap.open( ... ) 中,但是使用 rtsp://login:pass@ http://192.168.1.14:8006/cam/realmonitor?channel=1&subtype=0给了我“线程“AWT-EventQueue-0”java.lang.IllegalArgumentException 中出现异常:宽度 (0) 和高度 (0) 必须 > 0”。
请帮忙,
编辑我发现 rtsp://login:pass@ http://192.168.1.14 : 554 /cam/realmonitor?channel=1&subtype=0 在 vlc 中工作,但在 opencv 中仍然没有运气。
编辑 #2 …