预防始终读取第一帧图像。 Integer res = 0; String rtsp = ""; rtsp = webcamBean.getRstp(); if (rtsp.contains(":\\")) { SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式 Date curDate = new Date(); String sCurDate = sdf1.format(curDate); //判断是否抓拍分析过 if (snapshotBeanList.size() > 0) continue; } VideoCapture cap = new VideoCapture(rtsp); try { Mat image = new Mat(); int spaceFramesCount = 0; int iFrequency = Integer.parseInt(eventMonitorStrategyBean.getFrequency()); int frate = (int) cap.get(5); int frame_frequency = iFrequency * frate; int times = 0; while (cap.isOpened()) { boolean flag; flag = cap.read(image); if (rtsp.contains(":\\")) { times++; if (times % frame_frequency != 0) continue; //跳过总帧数跳出 if (times > cap.get(7)) break; } if (!rtsp.contains(":\\")) break; } image.release(); cap.release(); } catch (Exception ee) { cap.release(); }