From 2e42490440dc80284c3b3d2ba71c9b317a755ec1 Mon Sep 17 00:00:00 2001 From: shikong <919411476@qq.com> Date: Mon, 11 Sep 2023 14:10:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BD=95=E5=88=B6=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=A0=BC=E5=BC=8F=E4=B8=BA=E6=B5=8F=E8=A7=88=E5=99=A8?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=9A=84=20fmp4(Fragmented=20MP4)=20?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../docking/gb28181/wvp/api/video/RecordController.java | 2 +- .../docking/gb28181/wvp/service/video/RecordService.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/video/RecordController.java b/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/video/RecordController.java index 210d359..ddaea82 100644 --- a/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/video/RecordController.java +++ b/gb28181-wvp-proxy-api/src/main/java/cn/skcks/docking/gb28181/wvp/api/video/RecordController.java @@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.*; public class RecordController { private final RecordService recordService; - @Operation(summary = "返回文件下载 http 头信息",description = "禁止多线程下载, 默认文件名为 record.flv") + @Operation(summary = "返回文件下载 http 头信息",description = "禁止多线程下载, 默认文件名为 record.mp4") @RequestMapping(method = {RequestMethod.HEAD,RequestMethod.OPTIONS}) public void record(HttpServletResponse response){ recordService.header(response); 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 382af32..269e7ce 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 @@ -30,10 +30,10 @@ public class RecordService { * @param response HttpServletResponse 响应 */ public void header(HttpServletResponse response) { - response.setContentType("video/x-flv"); + response.setContentType("video/mp4"); response.setHeader("Accept-Ranges", "none"); response.setHeader("Connection", "close"); - response.setHeader("Content-Disposition","attachment; filename=\"record.flv\""); + response.setHeader("Content-Disposition","attachment; filename=\"record.mp4\""); } /** @@ -82,6 +82,7 @@ public class RecordService { recorder.setFrameRate(grabber.getFrameRate()); recorder.setSampleRate(grabber.getSampleRate()); recorder.setOption("flvflags", "no_duration_filesize"); + recorder.setOption("movflags","frag_keyframe+empty_moov"); if (grabber.getAudioChannels() > 0) { recorder.setAudioChannels(grabber.getAudioChannels()); recorder.setAudioBitrate(grabber.getAudioBitrate()); @@ -92,7 +93,7 @@ public class RecordService { recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264); recorder.setPixelFormat(avutil.AV_PIX_FMT_YUV420P); // 视频源数据yuv recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC); // 设置音频压缩方式 - recorder.setFormat("flv"); + recorder.setFormat("mp4"); recorder.setVideoOption("threads", String.valueOf(Runtime.getRuntime().availableProcessors())); // 解码线程数 recorder.start(grabber.getFormatContext()); log.info("开始录制 {}", url);