Commit 57b562d622f3e9ac59372349efadbc56e66e80fa

Authored by 64850858
1 parent c8260812

添加流IP单独配置

src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java
@@ -17,6 +17,9 @@ public class MediaConfig { @@ -17,6 +17,9 @@ public class MediaConfig {
17 @Value("${media.sdpIp:${media.ip}}") 17 @Value("${media.sdpIp:${media.ip}}")
18 private String sdpIp; 18 private String sdpIp;
19 19
  20 + @Value("${media.streamIp:${media.ip}}")
  21 + private String streamIp;
  22 +
20 @Value("${media.httpPort}") 23 @Value("${media.httpPort}")
21 private String httpPort; 24 private String httpPort;
22 25
@@ -60,135 +63,67 @@ public class MediaConfig { @@ -60,135 +63,67 @@ public class MediaConfig {
60 return ip; 63 return ip;
61 } 64 }
62 65
63 - public void setIp(String ip) {  
64 - this.ip = ip;  
65 - }  
66 -  
67 public String getHookIp() { 66 public String getHookIp() {
68 return hookIp; 67 return hookIp;
69 } 68 }
70 69
71 - public void setHookIp(String hookIp) {  
72 - this.hookIp = hookIp;  
73 - }  
74 -  
75 - public String getHttpPort() {  
76 - return httpPort;  
77 - }  
78 -  
79 - public void setHttpPort(String httpPort) {  
80 - this.httpPort = httpPort;  
81 - }  
82 -  
83 - public boolean isAutoConfig() {  
84 - return autoConfig;  
85 - }  
86 -  
87 - public boolean getAutoConfig() {  
88 - return autoConfig;  
89 - }  
90 -  
91 - public void setAutoConfig(boolean autoConfig) {  
92 - this.autoConfig = autoConfig;  
93 - }  
94 -  
95 - public String getSecret() {  
96 - return secret;  
97 - }  
98 -  
99 - public void setSecret(String secret) {  
100 - this.secret = secret;  
101 - }  
102 -  
103 - public String getStreamNoneReaderDelayMS() {  
104 - return streamNoneReaderDelayMS;  
105 - }  
106 -  
107 - public void setStreamNoneReaderDelayMS(String streamNoneReaderDelayMS) {  
108 - this.streamNoneReaderDelayMS = streamNoneReaderDelayMS;  
109 - }  
110 -  
111 - public boolean isRtpEnable() {  
112 - return rtpEnable;  
113 - }  
114 -  
115 - public void setRtpEnable(boolean rtpEnable) {  
116 - this.rtpEnable = rtpEnable; 70 + public String getSdpIp() {
  71 + return sdpIp;
117 } 72 }
118 73
119 - public String getRtpPortRange() {  
120 - return rtpPortRange; 74 + public String getStreamIp() {
  75 + return streamIp;
121 } 76 }
122 77
123 - public void setRtpPortRange(String rtpPortRange) {  
124 - this.rtpPortRange = rtpPortRange; 78 + public String getHttpPort() {
  79 + return httpPort;
125 } 80 }
126 81
127 public String getHttpSSlPort() { 82 public String getHttpSSlPort() {
128 return httpSSlPort; 83 return httpSSlPort;
129 } 84 }
130 85
131 - public void setHttpSSlPort(String httpSSlPort) {  
132 - this.httpSSlPort = httpSSlPort;  
133 - }  
134 -  
135 public String getRtmpPort() { 86 public String getRtmpPort() {
136 return rtmpPort; 87 return rtmpPort;
137 } 88 }
138 89
139 - public void setRtmpPort(String rtmpPort) {  
140 - this.rtmpPort = rtmpPort;  
141 - }  
142 -  
143 public String getRtmpSSlPort() { 90 public String getRtmpSSlPort() {
144 return rtmpSSlPort; 91 return rtmpSSlPort;
145 } 92 }
146 93
147 - public void setRtmpSSlPort(String rtmpSSlPort) {  
148 - this.rtmpSSlPort = rtmpSSlPort;  
149 - }  
150 -  
151 public String getRtpProxyPort() { 94 public String getRtpProxyPort() {
152 return rtpProxyPort; 95 return rtpProxyPort;
153 } 96 }
154 97
155 - public void setRtpProxyPort(String rtpProxyPort) {  
156 - this.rtpProxyPort = rtpProxyPort;  
157 - }  
158 -  
159 public String getRtspPort() { 98 public String getRtspPort() {
160 return rtspPort; 99 return rtspPort;
161 } 100 }
162 101
163 - public void setRtspPort(String rtspPort) {  
164 - this.rtspPort = rtspPort;  
165 - }  
166 -  
167 public String getRtspSSLPort() { 102 public String getRtspSSLPort() {
168 return rtspSSLPort; 103 return rtspSSLPort;
169 } 104 }
170 105
171 - public void setRtspSSLPort(String rtspSSLPort) {  
172 - this.rtspSSLPort = rtspSSLPort; 106 + public boolean isAutoConfig() {
  107 + return autoConfig;
173 } 108 }
174 109
175 - public int getRecordAssistPort() {  
176 - return recordAssistPort; 110 + public String getSecret() {
  111 + return secret;
177 } 112 }
178 113
179 - public void setRecordAssistPort(int recordAssistPort) {  
180 - this.recordAssistPort = recordAssistPort; 114 + public String getStreamNoneReaderDelayMS() {
  115 + return streamNoneReaderDelayMS;
181 } 116 }
182 117
183 - public String getSdpIp() {  
184 - if (StringUtils.isEmpty(sdpIp)) {  
185 - return ip;  
186 - }else {  
187 - return sdpIp;  
188 - } 118 + public boolean isRtpEnable() {
  119 + return rtpEnable;
  120 + }
  121 +
  122 + public String getRtpPortRange() {
  123 + return rtpPortRange;
189 } 124 }
190 125
191 - public void setSdpIp(String sdpIp) {  
192 - this.sdpIp = sdpIp; 126 + public int getRecordAssistPort() {
  127 + return recordAssistPort;
193 } 128 }
194 } 129 }
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java
@@ -24,7 +24,6 @@ import org.slf4j.LoggerFactory; @@ -24,7 +24,6 @@ import org.slf4j.LoggerFactory;
24 */ 24 */
25 public class AckRequestProcessor extends SIPRequestAbstractProcessor { 25 public class AckRequestProcessor extends SIPRequestAbstractProcessor {
26 26
27 -  
28 private Logger logger = LoggerFactory.getLogger(AckRequestProcessor.class); 27 private Logger logger = LoggerFactory.getLogger(AckRequestProcessor.class);
29 28
30 private IRedisCatchStorage redisCatchStorage; 29 private IRedisCatchStorage redisCatchStorage;
src/main/java/com/genersoft/iot/vmp/gb28181/utils/NumericUtil.java
@@ -20,10 +20,10 @@ public class NumericUtil { @@ -20,10 +20,10 @@ public class NumericUtil {
20 public static boolean isDouble(String str) { 20 public static boolean isDouble(String str) {
21 try { 21 try {
22 Double num2 = Double.valueOf(str); 22 Double num2 = Double.valueOf(str);
23 - logger.debug(num2 + " is a valid numeric string!"); 23 +// logger.debug(num2 + " is a valid numeric string!");
24 return true; 24 return true;
25 } catch (Exception e) { 25 } catch (Exception e) {
26 - logger.debug(str + " is an invalid numeric string!"); 26 +// logger.debug(str + " is an invalid numeric string!");
27 return false; 27 return false;
28 } 28 }
29 } 29 }
@@ -36,10 +36,10 @@ public class NumericUtil { @@ -36,10 +36,10 @@ public class NumericUtil {
36 public static boolean isInteger(String str) { 36 public static boolean isInteger(String str) {
37 try { 37 try {
38 int num2 = Integer.valueOf(str); 38 int num2 = Integer.valueOf(str);
39 - logger.debug(num2 + " is an integer!"); 39 +// logger.debug(num2 + " is an integer!");
40 return true; 40 return true;
41 } catch (Exception e) { 41 } catch (Exception e) {
42 - logger.debug(str + " is not an integer!"); 42 +// logger.debug(str + " is not an integer!");
43 return false; 43 return false;
44 } 44 }
45 } 45 }
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
@@ -6,8 +6,6 @@ import com.alibaba.fastjson.JSONObject; @@ -6,8 +6,6 @@ import com.alibaba.fastjson.JSONObject;
6 import com.genersoft.iot.vmp.conf.MediaConfig; 6 import com.genersoft.iot.vmp.conf.MediaConfig;
7 import com.genersoft.iot.vmp.conf.SipConfig; 7 import com.genersoft.iot.vmp.conf.SipConfig;
8 import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; 8 import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
9 -import com.genersoft.iot.vmp.storager.IRedisCatchStorage;  
10 -//import com.genersoft.iot.vmp.storager.IVideoManagerStorager;  
11 import com.genersoft.iot.vmp.storager.IVideoManagerStorager; 9 import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
12 import com.genersoft.iot.vmp.service.IStreamProxyService; 10 import com.genersoft.iot.vmp.service.IStreamProxyService;
13 import org.slf4j.Logger; 11 import org.slf4j.Logger;
@@ -17,7 +15,6 @@ import org.springframework.beans.factory.annotation.Value; @@ -17,7 +15,6 @@ import org.springframework.beans.factory.annotation.Value;
17 import org.springframework.boot.CommandLineRunner; 15 import org.springframework.boot.CommandLineRunner;
18 import org.springframework.core.annotation.Order; 16 import org.springframework.core.annotation.Order;
19 import org.springframework.stereotype.Component; 17 import org.springframework.stereotype.Component;
20 -import org.springframework.util.StringUtils;  
21 18
22 import java.util.HashMap; 19 import java.util.HashMap;
23 import java.util.List; 20 import java.util.List;
@@ -33,14 +30,8 @@ public class ZLMRunner implements CommandLineRunner { @@ -33,14 +30,8 @@ public class ZLMRunner implements CommandLineRunner {
33 private IVideoManagerStorager storager; 30 private IVideoManagerStorager storager;
34 31
35 @Autowired 32 @Autowired
36 - private IRedisCatchStorage redisCatchStorage;  
37 -  
38 - @Autowired  
39 private MediaConfig mediaConfig; 33 private MediaConfig mediaConfig;
40 34
41 - @Autowired  
42 - private SipConfig sipConfig;  
43 -  
44 @Value("${server.port}") 35 @Value("${server.port}")
45 private String serverPort; 36 private String serverPort;
46 37
@@ -106,7 +97,6 @@ public class ZLMRunner implements CommandLineRunner { @@ -106,7 +97,6 @@ public class ZLMRunner implements CommandLineRunner {
106 97
107 private void saveZLMConfig() { 98 private void saveZLMConfig() {
108 logger.info("设置zlm..."); 99 logger.info("设置zlm...");
109 - if (StringUtils.isEmpty(mediaConfig.getHookIp())) mediaConfig.setHookIp(sipConfig.getSipIp());  
110 String protocol = sslEnabled ? "https" : "http"; 100 String protocol = sslEnabled ? "https" : "http";
111 String hookPrex = String.format("%s://%s:%s/index/hook", protocol, mediaConfig.getHookIp(), serverPort); 101 String hookPrex = String.format("%s://%s:%s/index/hook", protocol, mediaConfig.getHookIp(), serverPort);
112 String recordHookPrex = null; 102 String recordHookPrex = null;
@@ -149,7 +139,7 @@ public class ZLMRunner implements CommandLineRunner { @@ -149,7 +139,7 @@ public class ZLMRunner implements CommandLineRunner {
149 logger.info( "[ id: " + zlmServerConfig.getGeneralMediaServerId() + "] zlm接入成功..."); 139 logger.info( "[ id: " + zlmServerConfig.getGeneralMediaServerId() + "] zlm接入成功...");
150 // 关闭循环获取zlm配置 140 // 关闭循环获取zlm配置
151 startGetMedia = false; 141 startGetMedia = false;
152 - if (mediaConfig.getAutoConfig()) saveZLMConfig(); 142 + if (mediaConfig.isAutoConfig()) saveZLMConfig();
153 zlmServerManger.updateServerCatch(zlmServerConfig); 143 zlmServerManger.updateServerCatch(zlmServerConfig);
154 144
155 // 清空所有session 145 // 清空所有session
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMServerConfig.java
@@ -39,6 +39,8 @@ public class ZLMServerConfig { @@ -39,6 +39,8 @@ public class ZLMServerConfig {
39 39
40 private String sdpIp; 40 private String sdpIp;
41 41
  42 + private String streamIp;
  43 +
42 private long updateTime; 44 private long updateTime;
43 45
44 @JSONField(name = "hls.fileBufSize") 46 @JSONField(name = "hls.fileBufSize")
@@ -765,4 +767,12 @@ public class ZLMServerConfig { @@ -765,4 +767,12 @@ public class ZLMServerConfig {
765 public void setSdpIp(String sdpIp) { 767 public void setSdpIp(String sdpIp) {
766 this.sdpIp = sdpIp; 768 this.sdpIp = sdpIp;
767 } 769 }
  770 +
  771 + public String getStreamIp() {
  772 + return streamIp;
  773 + }
  774 +
  775 + public void setStreamIp(String streamIp) {
  776 + this.streamIp = streamIp;
  777 + }
768 } 778 }
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMServerManger.java
@@ -19,6 +19,7 @@ public class ZLMServerManger { @@ -19,6 +19,7 @@ public class ZLMServerManger {
19 public void updateServerCatch(ZLMServerConfig zlmServerConfig) { 19 public void updateServerCatch(ZLMServerConfig zlmServerConfig) {
20 20
21 zlmServerConfig.setIp(mediaConfig.getIp()); 21 zlmServerConfig.setIp(mediaConfig.getIp());
  22 + zlmServerConfig.setStreamIp(mediaConfig.getStreamIp());
22 zlmServerConfig.setSdpIp(mediaConfig.getSdpIp()); 23 zlmServerConfig.setSdpIp(mediaConfig.getSdpIp());
23 zlmServerConfig.setHttpPort(mediaConfig.getHttpPort()); 24 zlmServerConfig.setHttpPort(mediaConfig.getHttpPort());
24 25
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
@@ -32,17 +32,17 @@ public class MediaServiceImpl implements IMediaService { @@ -32,17 +32,17 @@ public class MediaServiceImpl implements IMediaService {
32 StreamInfo streamInfoResult = new StreamInfo(); 32 StreamInfo streamInfoResult = new StreamInfo();
33 streamInfoResult.setStreamId(stream); 33 streamInfoResult.setStreamId(stream);
34 streamInfoResult.setApp(app); 34 streamInfoResult.setApp(app);
35 - streamInfoResult.setRtmp(String.format("rtmp://%s:%s/%s/%s", mediaInfo.getIp(), mediaInfo.getRtmpPort(), app, stream));  
36 - streamInfoResult.setRtsp(String.format("rtsp://%s:%s/%s/%s", mediaInfo.getIp(), mediaInfo.getRtspPort(), app, stream));  
37 - streamInfoResult.setFlv(String.format("http://%s:%s/%s/%s.flv", mediaInfo.getIp(), mediaInfo.getHttpPort(), app, stream));  
38 - streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.flv", mediaInfo.getIp(), mediaInfo.getHttpPort(), app, stream));  
39 - streamInfoResult.setHls(String.format("http://%s:%s/%s/%s/hls.m3u8", mediaInfo.getIp(), mediaInfo.getHttpPort(), app, stream));  
40 - streamInfoResult.setWs_hls(String.format("ws://%s:%s/%s/%s/hls.m3u8", mediaInfo.getIp(), mediaInfo.getHttpPort(), app, stream));  
41 - streamInfoResult.setFmp4(String.format("http://%s:%s/%s/%s.live.mp4", mediaInfo.getIp(), mediaInfo.getHttpPort(), app, stream));  
42 - streamInfoResult.setWs_fmp4(String.format("ws://%s:%s/%s/%s.live.mp4", mediaInfo.getIp(), mediaInfo.getHttpPort(), app, stream));  
43 - streamInfoResult.setTs(String.format("http://%s:%s/%s/%s.live.ts", mediaInfo.getIp(), mediaInfo.getHttpPort(), app, stream));  
44 - streamInfoResult.setWs_ts(String.format("ws://%s:%s/%s/%s.live.ts", mediaInfo.getIp(), mediaInfo.getHttpPort(), app, stream));  
45 - streamInfoResult.setRtc(String.format("http://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play", mediaInfo.getIp(), mediaInfo.getHttpPort(), app, stream)); 35 + streamInfoResult.setRtmp(String.format("rtmp://%s:%s/%s/%s", mediaInfo.getStreamIp(), mediaInfo.getRtmpPort(), app, stream));
  36 + streamInfoResult.setRtsp(String.format("rtsp://%s:%s/%s/%s", mediaInfo.getStreamIp(), mediaInfo.getRtspPort(), app, stream));
  37 + streamInfoResult.setFlv(String.format("http://%s:%s/%s/%s.flv", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream));
  38 + streamInfoResult.setWs_flv(String.format("ws://%s:%s/%s/%s.flv", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream));
  39 + streamInfoResult.setHls(String.format("http://%s:%s/%s/%s/hls.m3u8", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream));
  40 + streamInfoResult.setWs_hls(String.format("ws://%s:%s/%s/%s/hls.m3u8", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream));
  41 + streamInfoResult.setFmp4(String.format("http://%s:%s/%s/%s.live.mp4", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream));
  42 + streamInfoResult.setWs_fmp4(String.format("ws://%s:%s/%s/%s.live.mp4", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream));
  43 + streamInfoResult.setTs(String.format("http://%s:%s/%s/%s.live.ts", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream));
  44 + streamInfoResult.setWs_ts(String.format("ws://%s:%s/%s/%s.live.ts", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream));
  45 + streamInfoResult.setRtc(String.format("http://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app, stream));
46 streamInfoResult.setTracks(tracks); 46 streamInfoResult.setTracks(tracks);
47 return streamInfoResult; 47 return streamInfoResult;
48 } 48 }
src/main/resources/all-application.yml
@@ -68,10 +68,12 @@ sip: @@ -68,10 +68,12 @@ sip:
68 # [可选] 心跳超时时间, 建议设置为心跳周期的三倍 68 # [可选] 心跳超时时间, 建议设置为心跳周期的三倍
69 keepaliveTimeOut: 180 69 keepaliveTimeOut: 180
70 70
71 -#zlm服务器配置 71 +#zlm 默认服务器配置
72 media: 72 media:
73 # [必须修改] zlm服务器的内网IP 73 # [必须修改] zlm服务器的内网IP
74 ip: 192.168.0.100 74 ip: 192.168.0.100
  75 + # [可选] 返回流地址时的ip,置空使用 media.ip
  76 + streamIp:
75 # [可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip 77 # [可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip
76 sdpIp: 78 sdpIp:
77 # [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip 79 # [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip
src/main/resources/application-dev.yml
@@ -42,7 +42,7 @@ sip: @@ -42,7 +42,7 @@ sip:
42 # [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验 42 # [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
43 password: admin123 43 password: admin123
44 44
45 -#zlm服务器配置 45 +#zlm 默认服务器配置
46 media: 46 media:
47 # [必须修改] zlm服务器的内网IP 47 # [必须修改] zlm服务器的内网IP
48 ip: 192.168.0.100 48 ip: 192.168.0.100