添加 设备视频下载接口 /device/video.mp4

This commit is contained in:
shikong 2023-10-09 16:03:26 +08:00
parent 845d049ad5
commit 6d1dfc6445
2 changed files with 40 additions and 1 deletions

View File

@ -1,6 +1,8 @@
package cn.skcks.docking.gb28181.wvp.api.video;
import cn.hutool.core.date.DateUtil;
import cn.skcks.docking.gb28181.media.config.ZlmMediaConfig;
import cn.skcks.docking.gb28181.wvp.api.video.dto.VideoMp4Req;
import cn.skcks.docking.gb28181.wvp.api.video.dto.VideoReq;
import cn.skcks.docking.gb28181.wvp.config.SwaggerConfig;
import cn.skcks.docking.gb28181.wvp.config.WvpProxyConfig;
@ -22,6 +24,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Date;
@Slf4j
@Tag(name = "视频api")
@Controller
@ -41,7 +45,7 @@ public class VideoController {
return SwaggerConfig.api("VideoApi", "/video");
}
@Operation(summary = "获取视频 (目前仅供测试)")
@Operation(summary = "获取视频 (返回视频流)")
@GetMapping(produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@ResponseBody
public void video(HttpServletRequest request, HttpServletResponse response, @ParameterObject VideoReq req) {
@ -51,4 +55,13 @@ public class VideoController {
gb28181DownloadService.video(request,response,req.getDeviceCode(), req.getStartTime(), req.getEndTime(), req.getFileHeader());
}
}
@Operation(summary = "获取视频 (返回视频流)")
@GetMapping(value = "/device/video.mp4",produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@ResponseBody
public void video(HttpServletRequest request, HttpServletResponse response, @ParameterObject VideoMp4Req req) {
Date startTime = DateUtil.date(req.getStartTime());
Date endTime = DateUtil.date(req.getEndTime());
gb28181DownloadService.video(request,response,req.getDeviceCode(), startTime, endTime, req.getFileHeader());
}
}

View File

@ -0,0 +1,26 @@
package cn.skcks.docking.gb28181.wvp.api.video.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@Data
public class VideoMp4Req {
@NotBlank(message = "设备编码 不能为空")
@Schema(description = "设备编码")
private String deviceCode;
@Schema(description = "开始时间 (毫秒)",example = "1695593100207")
@NotBlank(message = "开始时间 不能为空")
private Long startTime;
@Schema(description = "结束时间 (毫秒)",example = "1695593190207")
@NotBlank(message = "结束时间 不能为空")
private Long endTime;
@Schema(description = "http 头是否需要文件名 (没有文件名时浏览器会试图直接播放,会导致短时间内重复访问同一设备,导致失败)")
private Boolean fileHeader = true;
}