From a53dce38c2f58c0bfd37203e46dc57aa56025f45 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 17 十一月 2022 18:22:24 +0800
Subject: [PATCH] Merge pull request #673 from 648540858/wvp-28181-2.0-multi-network

---
 src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java |  550 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 334 insertions(+), 216 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
index 93d837c..460f418 100644
--- a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
+++ b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
@@ -2,8 +2,10 @@
 
 import io.swagger.v3.oas.annotations.media.Schema;
 
+import java.io.Serializable;
+
 @Schema(description = "娴佷俊鎭�")
-public class StreamInfo {
+public class StreamInfo implements Serializable, Cloneable{
 
     @Schema(description = "搴旂敤鍚�")
     private String app;
@@ -13,54 +15,56 @@
     private String deviceID;
     @Schema(description = "閫氶亾缂栧彿")
     private String channelId;
-    @Schema(description = "HTTP-FLV娴佸湴鍧�")
-    private String flv;
 
     @Schema(description = "IP")
     private String ip;
+
+    @Schema(description = "HTTP-FLV娴佸湴鍧�")
+    private StreamURL flv;
+
     @Schema(description = "HTTPS-FLV娴佸湴鍧�")
-    private String https_flv;
+    private StreamURL https_flv;
     @Schema(description = "Websocket-FLV娴佸湴鍧�")
-    private String ws_flv;
+    private StreamURL ws_flv;
     @Schema(description = "Websockets-FLV娴佸湴鍧�")
-    private String wss_flv;
+    private StreamURL wss_flv;
     @Schema(description = "HTTP-FMP4娴佸湴鍧�")
-    private String fmp4;
+    private StreamURL fmp4;
     @Schema(description = "HTTPS-FMP4娴佸湴鍧�")
-    private String https_fmp4;
+    private StreamURL https_fmp4;
     @Schema(description = "Websocket-FMP4娴佸湴鍧�")
-    private String ws_fmp4;
+    private StreamURL ws_fmp4;
     @Schema(description = "Websockets-FMP4娴佸湴鍧�")
-    private String wss_fmp4;
+    private StreamURL wss_fmp4;
     @Schema(description = "HLS娴佸湴鍧�")
-    private String hls;
+    private StreamURL hls;
     @Schema(description = "HTTPS-HLS娴佸湴鍧�")
-    private String https_hls;
+    private StreamURL https_hls;
     @Schema(description = "Websocket-HLS娴佸湴鍧�")
-    private String ws_hls;
+    private StreamURL ws_hls;
     @Schema(description = "Websockets-HLS娴佸湴鍧�")
-    private String wss_hls;
+    private StreamURL wss_hls;
     @Schema(description = "HTTP-TS娴佸湴鍧�")
-    private String ts;
+    private StreamURL ts;
     @Schema(description = "HTTPS-TS娴佸湴鍧�")
-    private String https_ts;
+    private StreamURL https_ts;
     @Schema(description = "Websocket-TS娴佸湴鍧�")
-    private String ws_ts;
+    private StreamURL ws_ts;
     @Schema(description = "Websockets-TS娴佸湴鍧�")
-    private String wss_ts;
+    private StreamURL wss_ts;
     @Schema(description = "RTMP娴佸湴鍧�")
-    private String rtmp;
+    private StreamURL rtmp;
     @Schema(description = "RTMPS娴佸湴鍧�")
-    private String rtmps;
+    private StreamURL rtmps;
     @Schema(description = "RTSP娴佸湴鍧�")
-    private String rtsp;
+    private StreamURL rtsp;
     @Schema(description = "RTSPS娴佸湴鍧�")
-    private String rtsps;
+    private StreamURL rtsps;
     @Schema(description = "RTC娴佸湴鍧�")
-    private String rtc;
+    private StreamURL rtc;
 
     @Schema(description = "RTCS娴佸湴鍧�")
-    private String rtcs;
+    private StreamURL rtcs;
     @Schema(description = "娴佸獟浣揑D")
     private String mediaServerId;
     @Schema(description = "娴佺紪鐮佷俊鎭�")
@@ -74,6 +78,190 @@
 
     @Schema(description = "鏄惁鏆傚仠锛堝綍鍍忓洖鏀句娇鐢級")
     private boolean pause;
+
+    public void setFlv(StreamURL flv) {
+        this.flv = flv;
+    }
+
+    public void setHttps_flv(StreamURL https_flv) {
+        this.https_flv = https_flv;
+    }
+
+    public void setWs_flv(StreamURL ws_flv) {
+        this.ws_flv = ws_flv;
+    }
+
+    public void setWss_flv(StreamURL wss_flv) {
+        this.wss_flv = wss_flv;
+    }
+
+    public void setFmp4(StreamURL fmp4) {
+        this.fmp4 = fmp4;
+    }
+
+    public void setHttps_fmp4(StreamURL https_fmp4) {
+        this.https_fmp4 = https_fmp4;
+    }
+
+    public void setWs_fmp4(StreamURL ws_fmp4) {
+        this.ws_fmp4 = ws_fmp4;
+    }
+
+    public void setWss_fmp4(StreamURL wss_fmp4) {
+        this.wss_fmp4 = wss_fmp4;
+    }
+
+    public void setHls(StreamURL hls) {
+        this.hls = hls;
+    }
+
+    public void setHttps_hls(StreamURL https_hls) {
+        this.https_hls = https_hls;
+    }
+
+    public void setWs_hls(StreamURL ws_hls) {
+        this.ws_hls = ws_hls;
+    }
+
+    public void setWss_hls(StreamURL wss_hls) {
+        this.wss_hls = wss_hls;
+    }
+
+    public void setTs(StreamURL ts) {
+        this.ts = ts;
+    }
+
+    public void setHttps_ts(StreamURL https_ts) {
+        this.https_ts = https_ts;
+    }
+
+    public void setWs_ts(StreamURL ws_ts) {
+        this.ws_ts = ws_ts;
+    }
+
+    public void setWss_ts(StreamURL wss_ts) {
+        this.wss_ts = wss_ts;
+    }
+
+    public void setRtmp(StreamURL rtmp) {
+        this.rtmp = rtmp;
+    }
+
+    public void setRtmps(StreamURL rtmps) {
+        this.rtmps = rtmps;
+    }
+
+    public void setRtsp(StreamURL rtsp) {
+        this.rtsp = rtsp;
+    }
+
+    public void setRtsps(StreamURL rtsps) {
+        this.rtsps = rtsps;
+    }
+
+    public void setRtc(StreamURL rtc) {
+        this.rtc = rtc;
+    }
+
+    public void setRtcs(StreamURL rtcs) {
+        this.rtcs = rtcs;
+    }
+
+    public void setRtmp(String host, int port, int sslPort, String app, String stream, String callIdParam) {
+        String file = String.format("%s/%s/%s", app, stream, callIdParam);
+        this.rtmp = new StreamURL("rtmp", host, port, file);
+        if (sslPort != 0) {
+            this.rtmps = new StreamURL("rtmps", host, sslPort, file);
+        }
+    }
+
+    public void setRtsp(String host, int port, int sslPort, String app, String stream, String callIdParam) {
+        String file = String.format("%s/%s/%s", app, stream, callIdParam);
+        this.rtsp = new StreamURL("rtsp", host, port, file);
+        if (sslPort != 0) {
+            this.rtsps = new StreamURL("rtsps", host, sslPort, file);
+        }
+    }
+
+    public void setFlv(String host, int port, int sslPort, String app, String stream, String callIdParam) {
+        String file = String.format("%s/%s.live.flv%s", app, stream, callIdParam);
+        this.flv = new StreamURL("http", host, port, file);
+        this.ws_flv = new StreamURL("ws", host, port, file);
+        if (sslPort != 0) {
+            this.https_flv = new StreamURL("https", host, sslPort, file);
+            this.wss_flv = new StreamURL("wss", host, sslPort, file);
+        }
+    }
+
+    public void setFmp4(String host, int port, int sslPort, String app, String stream, String callIdParam) {
+        String file = String.format("%s/%s.live.mp4%s", app, stream, callIdParam);
+        this.fmp4 = new StreamURL("http", host, port, file);
+        this.ws_fmp4 = new StreamURL("ws", host, port, file);
+        if (sslPort != 0) {
+            this.https_fmp4 = new StreamURL("https", host, sslPort, file);
+            this.wss_fmp4 = new StreamURL("wss", host, sslPort, file);
+        }
+    }
+
+    public void setHls(String host, int port, int sslPort, String app, String stream, String callIdParam) {
+        String file = String.format("%s/%s/hls.m3u8%s", app, stream, callIdParam);
+        this.hls = new StreamURL("http", host, port, file);
+        this.ws_hls = new StreamURL("ws", host, port, file);
+        if (sslPort != 0) {
+            this.https_hls = new StreamURL("https", host, sslPort, file);
+            this.wss_hls = new StreamURL("wss", host, sslPort, file);
+        }
+    }
+
+    public void setTs(String host, int port, int sslPort, String app, String stream, String callIdParam) {
+        String file = String.format("%s/%s.live.ts%s", app, stream, callIdParam);
+        this.ts = new StreamURL("http", host, port, file);
+        this.ws_ts = new StreamURL("ws", host, port, file);
+        if (sslPort != 0) {
+            this.https_ts = new StreamURL("https", host, sslPort, file);
+            this.wss_ts = new StreamURL("wss", host, sslPort, file);
+        }
+    }
+
+    public void setRtc(String host, int port, int sslPort, String app, String stream, String callIdParam) {
+        String file = String.format("index/api/webrtc?app=%s&stream=%s&type=play%s", app, stream, callIdParam);
+        this.rtc = new StreamURL("http", host, port, file);
+        if (sslPort != 0) {
+            this.rtcs = new StreamURL("https", host, sslPort, file);
+        }
+    }
+
+    public void channgeStreamIp(String localAddr) {
+        this.flv.setHost(localAddr);
+        this.ws_flv.setHost(localAddr);
+        this.hls.setHost(localAddr);
+        this.ws_hls.setHost(localAddr);
+        this.ts.setHost(localAddr);
+        this.ws_ts.setHost(localAddr);
+        this.fmp4.setHost(localAddr);
+        this.ws_fmp4.setHost(localAddr);
+        this.rtc.setHost(localAddr);
+        if (this.https_flv != null) {
+            this.https_flv.setHost(localAddr);
+            this.wss_flv.setHost(localAddr);
+            this.https_hls.setHost(localAddr);
+            this.wss_hls.setHost(localAddr);
+            this.wss_ts.setHost(localAddr);
+            this.https_fmp4.setHost(localAddr);
+            this.wss_fmp4.setHost(localAddr);
+            this.rtcs.setHost(localAddr);
+        }
+        this.rtsp.setHost(localAddr);
+        if (this.rtsps != null) {
+            this.rtsps.setHost(localAddr);
+        }
+        this.rtmp.setHost(localAddr);
+        if (this.rtmps != null) {
+            this.rtmps.setHost(localAddr);
+        }
+
+    }
+
 
     public static class TransactionInfo{
         public String callId;
@@ -108,94 +296,6 @@
         this.channelId = channelId;
     }
 
-    public String getFlv() {
-        return flv;
-    }
-
-    public void setFlv(String flv) {
-        this.flv = flv;
-    }
-
-    public String getWs_flv() {
-        return ws_flv;
-    }
-
-    public void setWs_flv(String ws_flv) {
-        this.ws_flv = ws_flv;
-    }
-
-    public String getRtmp() {
-        return rtmp;
-    }
-
-    public void setRtmp(String rtmp) {
-        this.rtmp = rtmp;
-    }
-
-    public String getHls() {
-        return hls;
-    }
-
-    public void setHls(String hls) {
-        this.hls = hls;
-    }
-
-    public String getRtsp() {
-        return rtsp;
-    }
-
-    public void setRtsp(String rtsp) {
-        this.rtsp = rtsp;
-    }
-
-    public Object getTracks() {
-        return tracks;
-    }
-
-    public void setTracks(Object tracks) {
-        this.tracks = tracks;
-    }
-
-    public String getFmp4() {
-        return fmp4;
-    }
-
-    public void setFmp4(String fmp4) {
-        this.fmp4 = fmp4;
-    }
-
-    public String getWs_fmp4() {
-        return ws_fmp4;
-    }
-
-    public void setWs_fmp4(String ws_fmp4) {
-        this.ws_fmp4 = ws_fmp4;
-    }
-
-    public String getWs_hls() {
-        return ws_hls;
-    }
-
-    public void setWs_hls(String ws_hls) {
-        this.ws_hls = ws_hls;
-    }
-
-    public String getTs() {
-        return ts;
-    }
-
-    public void setTs(String ts) {
-        this.ts = ts;
-    }
-
-    public String getWs_ts() {
-        return ws_ts;
-    }
-
-    public void setWs_ts(String ws_ts) {
-        this.ws_ts = ws_ts;
-    }
-
     public String getStream() {
         return stream;
     }
@@ -204,20 +304,108 @@
         this.stream = stream;
     }
 
-    public String getRtc() {
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public StreamURL getFlv() {
+        return flv;
+    }
+
+    public StreamURL getHttps_flv() {
+        return https_flv;
+    }
+
+    public StreamURL getWs_flv() {
+        return ws_flv;
+    }
+
+
+    public StreamURL getWss_flv() {
+        return wss_flv;
+    }
+
+    public StreamURL getFmp4() {
+        return fmp4;
+    }
+
+
+
+    public StreamURL getHttps_fmp4() {
+        return https_fmp4;
+    }
+
+    public StreamURL getWs_fmp4() {
+        return ws_fmp4;
+    }
+
+    public StreamURL getWss_fmp4() {
+        return wss_fmp4;
+    }
+
+    public StreamURL getHls() {
+        return hls;
+    }
+
+
+    public StreamURL getHttps_hls() {
+        return https_hls;
+    }
+
+    public StreamURL getWs_hls() {
+        return ws_hls;
+    }
+
+    public StreamURL getWss_hls() {
+        return wss_hls;
+    }
+
+    public StreamURL getTs() {
+        return ts;
+    }
+
+
+    public StreamURL getHttps_ts() {
+        return https_ts;
+    }
+
+
+    public StreamURL getWs_ts() {
+        return ws_ts;
+    }
+
+
+    public StreamURL getWss_ts() {
+        return wss_ts;
+    }
+
+
+    public StreamURL getRtmp() {
+        return rtmp;
+    }
+
+    public StreamURL getRtmps() {
+        return rtmps;
+    }
+
+    public StreamURL getRtsp() {
+        return rtsp;
+    }
+
+    public StreamURL getRtsps() {
+        return rtsps;
+    }
+
+    public StreamURL getRtc() {
         return rtc;
     }
 
-    public void setRtc(String rtc) {
-        this.rtc = rtc;
-    }
-
-    public TransactionInfo getTransactionInfo() {
-        return transactionInfo;
-    }
-
-    public void setTransactionInfo(TransactionInfo transactionInfo) {
-        this.transactionInfo = transactionInfo;
+    public StreamURL getRtcs() {
+        return rtcs;
     }
 
     public String getMediaServerId() {
@@ -228,86 +416,13 @@
         this.mediaServerId = mediaServerId;
     }
 
-    public String getHttps_flv() {
-        return https_flv;
+    public Object getTracks() {
+        return tracks;
     }
 
-    public void setHttps_flv(String https_flv) {
-        this.https_flv = https_flv;
+    public void setTracks(Object tracks) {
+        this.tracks = tracks;
     }
-
-    public String getWss_flv() {
-        return wss_flv;
-    }
-
-    public void setWss_flv(String wss_flv) {
-        this.wss_flv = wss_flv;
-    }
-
-    public String getWss_fmp4() {
-        return wss_fmp4;
-    }
-
-    public void setWss_fmp4(String wss_fmp4) {
-        this.wss_fmp4 = wss_fmp4;
-    }
-
-    public String getWss_hls() {
-        return wss_hls;
-    }
-
-    public void setWss_hls(String wss_hls) {
-        this.wss_hls = wss_hls;
-    }
-
-    public String getWss_ts() {
-        return wss_ts;
-    }
-
-    public void setWss_ts(String wss_ts) {
-        this.wss_ts = wss_ts;
-    }
-
-    public String getRtmps() {
-        return rtmps;
-    }
-
-    public void setRtmps(String rtmps) {
-        this.rtmps = rtmps;
-    }
-
-    public String getRtsps() {
-        return rtsps;
-    }
-
-    public void setRtsps(String rtsps) {
-        this.rtsps = rtsps;
-    }
-
-    public String getHttps_hls() {
-        return https_hls;
-    }
-
-    public void setHttps_hls(String https_hls) {
-        this.https_hls = https_hls;
-    }
-
-    public String getHttps_fmp4() {
-        return https_fmp4;
-    }
-
-    public void setHttps_fmp4(String https_fmp4) {
-        this.https_fmp4 = https_fmp4;
-    }
-
-    public String getHttps_ts() {
-        return https_ts;
-    }
-
-    public void setHttps_ts(String https_ts) {
-        this.https_ts = https_ts;
-    }
-
 
     public String getStartTime() {
         return startTime;
@@ -333,22 +448,6 @@
         this.progress = progress;
     }
 
-    public String getIp() {
-        return ip;
-    }
-
-    public void setIp(String ip) {
-        this.ip = ip;
-    }
-
-    public String getRtcs() {
-        return rtcs;
-    }
-
-    public void setRtcs(String rtcs) {
-        this.rtcs = rtcs;
-    }
-
     public boolean isPause() {
         return pause;
     }
@@ -356,4 +455,23 @@
     public void setPause(boolean pause) {
         this.pause = pause;
     }
+
+    public TransactionInfo getTransactionInfo() {
+        return transactionInfo;
+    }
+
+    public void setTransactionInfo(TransactionInfo transactionInfo) {
+        this.transactionInfo = transactionInfo;
+    }
+
+    @Override
+    public StreamInfo clone() {
+        StreamInfo instance = null;
+        try{
+            instance = (StreamInfo)super.clone();
+        }catch(CloneNotSupportedException e) {
+            e.printStackTrace();
+        }
+        return instance;
+    }
 }

--
Gitblit v1.8.0