From 49101a37e0f71f22fee25b811a54895f2f6f3e82 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 17 五月 2024 16:32:01 +0800
Subject: [PATCH] 兼容zlm-pro转码

---
 数据库/2.7.1/更新-mysql-2.7.1.sql                                                                                         |    2 ++
 src/main/java/com/genersoft/iot/vmp/storager/dao/MediaServerMapper.java                                              |    4 ++++
 src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java                                         |    2 +-
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMServerConfig.java                                                   |   11 +++++++++++
 src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java                                         |    2 +-
 src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java                                               |    5 ++++-
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java |    4 ++--
 src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItem.java                                               |   12 ++++++++++++
 数据库/2.7.1/更新-postgresql-kingbase-2.7.1.sql                                                                           |    2 ++
 9 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java
index 96e4eca..c811177 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForMobilePositionProcessor.java
@@ -143,8 +143,8 @@
 					}
 				}
 
-//			logger.info("[鏀跺埌绉诲姩浣嶇疆璁㈤槄閫氱煡]锛歿}/{}->{}.{}, 鏃堕棿锛� {}", mobilePosition.getDeviceId(), mobilePosition.getChannelId(),
-//					mobilePosition.getLongitude(), mobilePosition.getLatitude(), System.currentTimeMillis() - startTime);
+			logger.debug("[鏀跺埌绉诲姩浣嶇疆璁㈤槄閫氱煡]锛歿}/{}->{}.{}, 鏃堕棿锛� {}", mobilePosition.getDeviceId(), mobilePosition.getChannelId(),
+					mobilePosition.getLongitude(), mobilePosition.getLatitude(), System.currentTimeMillis() - startTime);
 				mobilePosition.setReportSource("Mobile Position");
 
 				mobilePositionService.add(mobilePosition);
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMServerConfig.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMServerConfig.java
index 80910c0..6d6dcf6 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMServerConfig.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMServerConfig.java
@@ -331,6 +331,9 @@
     @JSONField(name = "shell.shell")
     private String shellPhell;
 
+    @JSONField(name = "transcode.suffix")
+    private String transcodeSuffix;
+
 
     public String getHookIp() {
         return hookIp;
@@ -1211,4 +1214,12 @@
     public void setHookOnRtpServerTimeout(String hookOnRtpServerTimeout) {
         this.hookOnRtpServerTimeout = hookOnRtpServerTimeout;
     }
+
+    public String getTranscodeSuffix() {
+        return transcodeSuffix;
+    }
+
+    public void setTranscodeSuffix(String transcodeSuffix) {
+        this.transcodeSuffix = transcodeSuffix;
+    }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItem.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItem.java
index cebfec3..d5a0f7f 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItem.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/dto/MediaServerItem.java
@@ -86,6 +86,9 @@
     @Schema(description = "褰曞儚瀛樺偍璺緞")
     private String recordPath;
 
+    @Schema(description = "杞爜鐨勫墠缂�")
+    private String transcodeSuffix;
+
     public MediaServerItem() {
     }
 
@@ -108,6 +111,7 @@
         rtpEnable = false; // 榛樿浣跨敤鍗曠鍙�;鐩村埌鐢ㄦ埛鑷繁璁剧疆寮�鍚绔彛
         rtpPortRange = zlmServerConfig.getPortRange().replace("_",","); // 榛樿浣跨敤30000,30500浣滀负绾ц仈鏃跺彂閫佹祦鐨勭鍙e彿
         recordAssistPort = 0; // 榛樿鍏抽棴
+        transcodeSuffix = zlmServerConfig.getTranscodeSuffix();
 
     }
 
@@ -318,4 +322,12 @@
     public void setRecordPath(String recordPath) {
         this.recordPath = recordPath;
     }
+
+    public String getTranscodeSuffix() {
+        return transcodeSuffix;
+    }
+
+    public void setTranscodeSuffix(String transcodeSuffix) {
+        this.transcodeSuffix = transcodeSuffix;
+    }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
index aeb0dc8..7620baa 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -410,6 +410,7 @@
         if (serverItem.getRtpProxyPort() == 0) {
             serverItem.setRtpProxyPort(zlmServerConfig.getRtpProxyPort());
         }
+        serverItem.setTranscodeSuffix(zlmServerConfig.getTranscodeSuffix());
         serverItem.setStatus(true);
 
         if (ObjectUtils.isEmpty(serverItem.getId())) {
@@ -423,7 +424,6 @@
         }
         redisTemplate.opsForValue().set(key, serverItem);
         resetOnlineServerItem(serverItem);
-
 
         if (serverItem.isAutoConfig()) {
             setZLMConfig(serverItem, "0".equals(zlmServerConfig.getHookEnable()));
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
index 784f43f..f2eb754 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
@@ -1,6 +1,5 @@
 package com.genersoft.iot.vmp.service.impl;
 
-import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.genersoft.iot.vmp.common.StreamInfo;
@@ -91,6 +90,10 @@
         if (addr == null) {
             addr = mediaInfo.getStreamIp();
         }
+        if (!"broadcast".equalsIgnoreCase(app) && !ObjectUtils.isEmpty(mediaInfo.getTranscodeSuffix()) && !"null".equalsIgnoreCase(mediaInfo.getTranscodeSuffix())) {
+            stream = stream + "_" + mediaInfo.getTranscodeSuffix();
+            streamInfoResult.setStream(stream);
+        }
 
         streamInfoResult.setIp(addr);
         streamInfoResult.setMediaServerId(mediaInfo.getId());
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/MediaServerMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/MediaServerMapper.java
index 4678591..da71212 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/MediaServerMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/MediaServerMapper.java
@@ -36,6 +36,7 @@
             "default_server,"+
             "create_time,"+
             "update_time,"+
+            "transcode_suffix,"+
             "hook_alive_interval"+
             ") VALUES " +
             "(" +
@@ -62,6 +63,7 @@
             "#{defaultServer}, " +
             "#{createTime}, " +
             "#{updateTime}, " +
+            "#{transcodeSuffix}, " +
             "#{hookAliveInterval})")
     int add(MediaServerItem mediaServerItem);
 
@@ -88,6 +90,7 @@
             "<if test=\"hookAliveInterval != null\">, hook_alive_interval=#{hookAliveInterval}</if>" +
             "<if test=\"recordDay != null\">, record_day=#{recordDay}</if>" +
             "<if test=\"recordPath != null\">, record_path=#{recordPath}</if>" +
+            "<if test=\"transcodeSuffix != null\">, transcode_suffix=#{transcodeSuffix}</if>" +
             "WHERE id=#{id}"+
             " </script>"})
     int update(MediaServerItem mediaServerItem);
@@ -113,6 +116,7 @@
             "<if test=\"recordAssistPort != null\">, record_assist_port=#{recordAssistPort}</if>" +
             "<if test=\"recordDay != null\">, record_day=#{recordDay}</if>" +
             "<if test=\"recordPath != null\">, record_path=#{recordPath}</if>" +
+            "<if test=\"transcodeSuffix != null\">, transcode_suffix=#{transcodeSuffix}</if>" +
             "<if test=\"hookAliveInterval != null\">, hook_alive_interval=#{hookAliveInterval}</if>" +
             "WHERE ip=#{ip} and http_port=#{httpPort}"+
             " </script>"})
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
index e42ea68..9a18c9a 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -570,7 +570,7 @@
     @Override
     public void sendMobilePositionMsg(JSONObject jsonObject) {
         String key = VideoManagerConstants.VM_MSG_SUBSCRIBE_MOBILE_POSITION;
-        logger.info("[redis鍙戦�侀�氱煡] 鍙戦�� 绉诲姩浣嶇疆 {}: {}", key, jsonObject.toString());
+        logger.debug("[redis鍙戦�侀�氱煡] 鍙戦�� 绉诲姩浣嶇疆 {}: {}", key, jsonObject.toString());
         redisTemplate.convertAndSend(key, jsonObject);
     }
 
diff --git "a/\346\225\260\346\215\256\345\272\223/2.7.1/\346\233\264\346\226\260-mysql-2.7.1.sql" "b/\346\225\260\346\215\256\345\272\223/2.7.1/\346\233\264\346\226\260-mysql-2.7.1.sql"
new file mode 100644
index 0000000..86e8d0d
--- /dev/null
+++ "b/\346\225\260\346\215\256\345\272\223/2.7.1/\346\233\264\346\226\260-mysql-2.7.1.sql"
@@ -0,0 +1,2 @@
+alter table wvp_media_server
+    add transcode_suffix character varying(255);
\ No newline at end of file
diff --git "a/\346\225\260\346\215\256\345\272\223/2.7.1/\346\233\264\346\226\260-postgresql-kingbase-2.7.1.sql" "b/\346\225\260\346\215\256\345\272\223/2.7.1/\346\233\264\346\226\260-postgresql-kingbase-2.7.1.sql"
new file mode 100644
index 0000000..86e8d0d
--- /dev/null
+++ "b/\346\225\260\346\215\256\345\272\223/2.7.1/\346\233\264\346\226\260-postgresql-kingbase-2.7.1.sql"
@@ -0,0 +1,2 @@
+alter table wvp_media_server
+    add transcode_suffix character varying(255);
\ No newline at end of file

--
Gitblit v1.8.0