| | |
| | | if (0 == wvpResult.getCode()) { |
| | | log.error("请求成功"); |
| | | StreamContent data = (StreamContent) wvpResult.getData(); |
| | | log.error("拿到取流响应结果:" + data); |
| | | String rtspUrl = data.getRtsp(); |
| | | log.error("目标地址:" + rtspUrl); |
| | | if (StringUtils.hasText(rtspUrl)) { |
| | | try { |
| | | // 创建FFmpegFrameGrabber对象 |
| | |
| | | grabber.start(); // 开始捕获 |
| | | |
| | | Frame frame; |
| | | if ((frame = grabber.grabFrame()) != null) { |
| | | // 将帧转换为图片 |
| | | Java2DFrameConverter converter = new Java2DFrameConverter(); |
| | | BufferedImage image = converter.convert(frame); |
| | | File outputfile = new File(serverConfig.getUrl() + PlatformConfig.getUploadPath() + deviceId + IdUtils.fastSimpleUUID() + ".png"); |
| | | ImageIO.write(image, "png", outputfile); |
| | | String imgPath = outputfile.getAbsolutePath(); |
| | | System.out.println("Saved " + imgPath); |
| | | return imgPath; |
| | | String imgPath; |
| | | while (true) { |
| | | frame = grabber.grabFrame(); |
| | | if (Objects.nonNull(frame)) { |
| | | // 将帧转换为图片 |
| | | Java2DFrameConverter converter = new Java2DFrameConverter(); |
| | | BufferedImage image = converter.convert(frame); |
| | | File outputfile = new File(serverConfig.getUrl() + PlatformConfig.getUploadPath() + deviceId + IdUtils.fastSimpleUUID() + ".png"); |
| | | ImageIO.write(image, "png", outputfile); |
| | | imgPath = outputfile.getAbsolutePath(); |
| | | log.error("图片地址: " + imgPath); |
| | | break; |
| | | } |
| | | } |
| | | grabber.stop(); // 停止捕获 |
| | | grabber.release(); // 释放资源 |
| | | return imgPath; |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |