diff --git a/src/main/java/com/genersoft/iot/vmp/common/StreamURL.java b/src/main/java/com/genersoft/iot/vmp/common/StreamURL.java index 40bd7e250..397feb38b 100644 --- a/src/main/java/com/genersoft/iot/vmp/common/StreamURL.java +++ b/src/main/java/com/genersoft/iot/vmp/common/StreamURL.java @@ -23,6 +23,9 @@ public class StreamURL implements Serializable,Cloneable { @Schema(description = "拼接后的地址") private String url; + @Schema(description = "鉴权的信息") + private String sign; + public StreamURL() { } @@ -65,6 +68,14 @@ public class StreamURL implements Serializable,Cloneable { this.file = file; } + public String getSign() { + return sign; + } + + public void setSign(String sign) { + this.sign = sign; + } + public String getUrl() { return this.toString(); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java index 2640332ce..be79b0a66 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java @@ -746,7 +746,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { .append("<Response>\r\n") .append("<CmdType>RecordInfo</CmdType>\r\n") .append("<SN>" +recordInfo.getSn() + "</SN>\r\n") - .append("<DeviceID>" + deviceChannel.getChannelId() + "</DeviceID>\r\n") + .append("<DeviceID>" + commonGbChannel.getCommonGbDeviceID() + "</DeviceID>\r\n") .append("<SumNum>" + recordInfo.getSumNum() + "</SumNum>\r\n"); if (recordInfo.getRecordList() == null ) { recordXml.append("<RecordList Num=\"0\">\r\n"); diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java index bddbaf3db..527ba7a19 100755 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/streamPush/StreamPushController.java @@ -10,6 +10,7 @@ import com.genersoft.iot.vmp.conf.security.SecurityUtils; import com.genersoft.iot.vmp.conf.security.dto.LoginUser; import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.media.zlm.dto.StreamPush; import com.genersoft.iot.vmp.service.IMediaServerService; import com.genersoft.iot.vmp.service.IMediaService; @@ -285,4 +286,26 @@ public class StreamPushController { throw new ControllerException(ErrorCode.ERROR100); } } + + /** + * 根据推流信息获取一个可能的流地址,方便与设备对接 + */ + @PostMapping(value = "/predict") + @ResponseBody + @Operation(summary = "根据推流信息获取一个可能的流地址,方便与设备对接", security = @SecurityRequirement(name = JwtUtils.HEADER)) + public StreamContent predictStream(@RequestBody StreamPush param){ + if (ObjectUtils.isEmpty(param.getApp()) && ObjectUtils.isEmpty(param.getStream())) { + throw new ControllerException(ErrorCode.ERROR400.getCode(), "app或stream不可为空"); + } + MediaServerItem mediaServerItem = null; + if (ObjectUtils.isEmpty(param.getMediaServerId())) { + mediaServerItem = mediaServerService.getMediaServerForMinimumLoad(null); + }else { + mediaServerItem = mediaServerService.getOne(param.getMediaServerId()); + } + StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(mediaServerItem, param.getApp(), param.getStream(), null, null); + // 获取登录的用户,添加推流SIGN + + + } }