From 67a891ada8ad472316cd4477ce5166978923c981 Mon Sep 17 00:00:00 2001 From: shikong <919411476@qq.com> Date: Thu, 7 Sep 2023 10:35:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=20=E5=BD=95=E5=88=B6?= =?UTF-8?q?=E6=97=B6=E9=95=BF=20=E5=92=8C=20=E8=B6=85=E6=97=B6=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gb28181/wvp/service/video/RecordService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/video/RecordService.java b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/video/RecordService.java index b55b25c..3016498 100644 --- a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/video/RecordService.java +++ b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/video/RecordService.java @@ -69,11 +69,15 @@ public class RecordService { scheduledExecutorService.schedule(() -> { log.info("到达超时时间, 结束录制"); record.set(false); - }, timeout, TimeUnit.SECONDS); - + }, timeout * 2, TimeUnit.SECONDS); + long maxTime = TimeUnit.SECONDS.toMicros(timeout); try { Frame frame; - while (record.get() && (frame = grabber.grab()) != null) { + while (!recorder.isCloseOutputStream() && record.get() && (frame = grabber.grab()) != null) { + long micros = TimeUnit.MICROSECONDS.toMicros(recorder.getTimestamp()); + if(micros >= maxTime){ + break; + } recorder.record(frame); } grabber.close();