From b6e604f2449bb65dfaafb0f0741ba54ff0d2f9c2 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 30 四月 2024 15:20:03 +0800
Subject: [PATCH] 修改云端录像详情页使用直接访问zlm的方式播放录像
---
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManger.java | 27 +++++++++++++++++----------
1 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManger.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManger.java
index 86faa25..cdf1e3f 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManger.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaServerStatusManger.java
@@ -5,10 +5,10 @@
import com.alibaba.fastjson2.JSONObject;
import com.genersoft.iot.vmp.conf.DynamicTask;
import com.genersoft.iot.vmp.conf.UserSetting;
-import com.genersoft.iot.vmp.media.event.MediaServerChangeEvent;
-import com.genersoft.iot.vmp.media.event.MediaServerDeleteEvent;
+import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerChangeEvent;
+import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerDeleteEvent;
import com.genersoft.iot.vmp.media.service.IMediaServerService;
-import com.genersoft.iot.vmp.media.zlm.dto.MediaServer;
+import com.genersoft.iot.vmp.media.bean.MediaServer;
import com.genersoft.iot.vmp.media.zlm.dto.ZLMServerConfig;
import com.genersoft.iot.vmp.media.zlm.event.HookZlmServerKeepaliveEvent;
import com.genersoft.iot.vmp.media.zlm.event.HookZlmServerStartEvent;
@@ -55,6 +55,9 @@
@Value("${server.port}")
private Integer serverPort;
+ @Value("${server.servlet.context-path:}")
+ private String serverServletContextPath;
+
@Autowired
private UserSetting userSetting;
@@ -74,6 +77,7 @@
logger.info("[ZLM-娣诲姞寰呬笂绾胯妭鐐筣 ID锛�" + mediaServerItem.getId());
offlineZlmPrimaryMap.put(mediaServerItem.getId(), mediaServerItem);
offlineZlmTimeMap.put(mediaServerItem.getId(), System.currentTimeMillis());
+ execute();
}
}
@@ -193,10 +197,12 @@
}
}
if (config != null) {
+ initPort(mediaServerItem, config);
setZLMConfig(mediaServerItem, "0".equals(config.getHookEnable())
|| !Objects.equals(mediaServerItem.getHookAliveInterval(), config.getHookAliveInterval()));
}
}
+ mediaServerService.update(mediaServerItem);
}
// 璁剧疆涓ゆ蹇冭烦鏈敹鍒板垯璁や负zlm绂荤嚎
String key = "zlm-keepalive-" + mediaServerItem.getId();
@@ -210,22 +216,23 @@
}, (int)(mediaServerItem.getHookAliveInterval() * 2 * 1000));
}
private void initPort(MediaServer mediaServerItem, ZLMServerConfig zlmServerConfig) {
- if (mediaServerItem.getHttpSSlPort() != 0) {
+ // 绔彛鍙細浠庨厤缃腑璇诲彇涓�娆★紝涓�鏃﹁嚜宸遍厤缃垨鑰呰鍙栬繃浜嗗皢涓嶅湪閰嶇疆
+ if (mediaServerItem.getHttpSSlPort() == 0) {
mediaServerItem.setHttpSSlPort(zlmServerConfig.getHttpSSLport());
}
- if (mediaServerItem.getRtmpPort() != 0) {
+ if (mediaServerItem.getRtmpPort() == 0) {
mediaServerItem.setRtmpPort(zlmServerConfig.getRtmpPort());
}
- if (mediaServerItem.getRtmpSSlPort() != 0) {
+ if (mediaServerItem.getRtmpSSlPort() == 0) {
mediaServerItem.setRtmpSSlPort(zlmServerConfig.getRtmpSslPort());
}
- if (mediaServerItem.getRtspPort() != 0) {
+ if (mediaServerItem.getRtspPort() == 0) {
mediaServerItem.setRtspPort(zlmServerConfig.getRtspPort());
}
- if (mediaServerItem.getRtspSSLPort() != 0) {
+ if (mediaServerItem.getRtspSSLPort() == 0) {
mediaServerItem.setRtspSSLPort(zlmServerConfig.getRtspSSlport());
}
- if (mediaServerItem.getRtpProxyPort() != 0) {
+ if (mediaServerItem.getRtpProxyPort() == 0) {
mediaServerItem.setRtpProxyPort(zlmServerConfig.getRtpProxyPort());
}
mediaServerItem.setHookAliveInterval(10F);
@@ -235,7 +242,7 @@
logger.info("[濯掍綋鏈嶅姟鑺傜偣] 姝e湪璁剧疆 锛歿} -> {}:{}",
mediaServerItem.getId(), mediaServerItem.getIp(), mediaServerItem.getHttpPort());
String protocol = sslEnabled ? "https" : "http";
- String hookPrefix = String.format("%s://%s:%s/index/hook", protocol, mediaServerItem.getHookIp(), serverPort);
+ String hookPrefix = String.format("%s://%s:%s%s/index/hook", protocol, mediaServerItem.getHookIp(), serverPort, (serverServletContextPath == null || "/".equals(serverServletContextPath)) ? "" : serverServletContextPath);
Map<String, Object> param = new HashMap<>();
param.put("api.secret",mediaServerItem.getSecret()); // -profile:v Baseline
--
Gitblit v1.8.0