【opencv】VideoCapture打不开本地视频文件或者网络IP摄像头

1、前提:成功打开本地USB摄像头

// 创建VideoCapture对象
VideoCapture vc = new VideoCapture();
// 可以成功打开本地USB摄像头
// 参数可以是 0~n,结合自身情况
boolean ans = vc.open(0);
// 返回结果为true
System.out.println(ans);

2、当改为本地视频文件、图片文件or网络图片or网络IP摄像头地址时,打开错误!

// 创建VideoCapture对象
VideoCapture vc = new VideoCapture();
// 打开的音视频地址
String address = "";
// 测试本地视频文件
address = "D:/opencv/1.avi";
// 测试网络IP摄像头,通过rtsp来获取视频流
// 通用的rtsp地址格式为"rtsp://user:password@ip:port"
// 此处使用的是科达的摄像头,后面添加的id =0为主码流,id=1为子码流
// 如果不知道你使用的摄相头格式,下载 ONVIF Device Manage 即可得到
address = "rtsp://admin:123456@192.168.XXX.XXX:554/id=0";
boolean ans = vc.open(address);
// 返回结果为false
System.out.println(ans);

3、解决办法:在配置opencv环境时,dll文件没有拷贝齐全!!常理情况下,你已经将opencv_java320.dll拷贝到jdk安装路径下的jre/bin目录下了,不然的话不能成功加载库。解决上面问题方法就是将你下载下来的 opencv解压后的 文件夹中bulid 文件夹下 相关的 dll 文件都拷贝到 jre/bin目录下。什么叫相关,那就是全部的dll都考进去!!保险些。至此打不开网络摄像头的问题解决!

附: 获取网络摄像头rtsp地址方法

原文地址:https://www.cnblogs.com/oldwei/p/9599944.html