From af40be890ea6dd673a32a2d4fc72f14ca665bf9a Mon Sep 17 00:00:00 2001 From: shikong <919411476@qq.com> Date: Thu, 7 Sep 2023 11:37:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E4=B8=BA=20flv=20=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=20=E5=AE=9E=E6=97=B6=E6=B5=81=E4=B8=8B=E8=BD=BD=20=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E9=9C=80=E8=A6=81=E4=B8=B4=E6=97=B6=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=BD=AC=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gb28181/wvp/service/video/RecordService.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 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 a163655..bee8606 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 @@ -11,11 +11,11 @@ import org.bytedeco.ffmpeg.global.avcodec; import org.bytedeco.ffmpeg.global.avutil; import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.FFmpegFrameRecorder; -import org.bytedeco.javacv.FFmpegLogCallback; import org.bytedeco.javacv.FrameGrabber; import org.springframework.stereotype.Service; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.io.OutputStream; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -48,19 +48,15 @@ public class RecordService { @SneakyThrows public void record(ServletResponse response, String url, long time) { - // response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); -// Path tmp = Path.of(System.getProperty("java.io.tmpdir"), IdUtil.getSnowflakeNextIdStr()).toAbsolutePath(); -// File file = new File(tmp + ".mp4"); -// log.info("创建文件 {}, {}", file, file.createNewFile()); - ByteArrayOutputStream stream = new ByteArrayOutputStream(); OutputStream outputStream = response.getOutputStream(); log.info("url {}", url); - FFmpegLogCallback.set(); + // FFmpeg 调试日志 +// FFmpegLogCallback.set(); FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(url); grabber.start(); + FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(stream, grabber.getImageWidth(), grabber.getImageHeight(), grabber.getAudioChannels()); -// log.info("{}", file); recorder.setInterleaved(true); recorder.setVideoOption("preset", "ultrafast"); recorder.setVideoOption("tune", "zerolatency"); @@ -104,7 +100,7 @@ public class RecordService { recorder.close(); } catch (FFmpegFrameRecorder.Exception | FrameGrabber.Exception e) { throw new RuntimeException(e); - } + } catch (IOException ignore){} log.info("结束录制"); outputStream.close();