src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -351,6 +351,11 @@ logger.info("[ZLM HOOK] 流变化未找到ZLM, {}", param.getMediaServerId()); return; } if (!ObjectUtils.isEmpty(mediaInfo.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaInfo.getTranscodeSuffix()) && param.getStream().endsWith(mediaInfo.getTranscodeSuffix()) ) { return; } if (subscribe != null) { subscribe.response(mediaInfo, param); } @@ -563,6 +568,19 @@ logger.info("[ZLM HOOK]流无人观看:{}->{}->{}/{}", param.getMediaServerId(), param.getSchema(), param.getApp(), param.getStream()); MediaServerItem mediaInfo = mediaServerService.getOne(param.getMediaServerId()); if (mediaInfo == null) { JSONObject ret = new JSONObject(); ret.put("code", 0); return ret; } if (!ObjectUtils.isEmpty(mediaInfo.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaInfo.getTranscodeSuffix()) && param.getStream().endsWith(mediaInfo.getTranscodeSuffix()) ) { param.setStream(param.getStream().substring(0, param.getStream().lastIndexOf(mediaInfo.getTranscodeSuffix()) -1 )); } JSONObject ret = new JSONObject(); ret.put("code", 0); // 国标类型的流 src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
@@ -92,7 +92,7 @@ } if (!"broadcast".equalsIgnoreCase(app) && !ObjectUtils.isEmpty(mediaInfo.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaInfo.getTranscodeSuffix())) { stream = stream + "_" + mediaInfo.getTranscodeSuffix(); streamInfoResult.setStream(stream); // streamInfoResult.setStream(stream); } streamInfoResult.setIp(addr); src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
@@ -37,6 +37,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; @@ -147,6 +148,9 @@ } streamInfo.channgeStreamIp(host); } if (!ObjectUtils.isEmpty(newMediaServerItem.getTranscodeSuffix()) && !"null".equalsIgnoreCase(newMediaServerItem.getTranscodeSuffix())) { streamInfo.setStream(streamInfo.getStream() + "_" + newMediaServerItem.getTranscodeSuffix()); } wvpResult.setData(new StreamContent(streamInfo)); }else { wvpResult.setCode(code);