From 9f5b9db2c8cdbcf74bd2eecefc3557d4048b8d4c Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 28 八月 2024 17:54:51 +0800
Subject: [PATCH] 打通大华OSD

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index 5cd3093..050a9cf 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -669,8 +669,8 @@
         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瀵硅薄
@@ -678,18 +678,23 @@
                     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();
                 }

--
Gitblit v1.8.0