wvp-GB28181-pro/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java

528 lines
13 KiB
Java
Raw Normal View History

package com.genersoft.iot.vmp.common;
import io.swagger.v3.oas.annotations.media.Schema;
2022-11-10 09:40:01 +08:00
import java.io.Serializable;
2022-10-28 16:40:12 +08:00
@Schema(description = "流信息")
2022-11-17 17:01:54 +08:00
public class StreamInfo implements Serializable, Cloneable{
@Schema(description = "应用名")
private String app;
@Schema(description = "流ID")
2022-03-03 15:57:28 +08:00
private String stream;
@Schema(description = "设备编号")
private String deviceID;
@Schema(description = "通道编号")
private String channelId;
@Schema(description = "IP")
private String ip;
2022-10-28 16:40:12 +08:00
@Schema(description = "HTTP-FLV流地址")
private StreamURL flv;
@Schema(description = "HTTPS-FLV流地址")
2022-10-28 16:40:12 +08:00
private StreamURL https_flv;
@Schema(description = "Websocket-FLV流地址")
2022-10-28 16:40:12 +08:00
private StreamURL ws_flv;
@Schema(description = "Websockets-FLV流地址")
2022-10-28 16:40:12 +08:00
private StreamURL wss_flv;
@Schema(description = "HTTP-FMP4流地址")
2022-10-28 16:40:12 +08:00
private StreamURL fmp4;
@Schema(description = "HTTPS-FMP4流地址")
2022-10-28 16:40:12 +08:00
private StreamURL https_fmp4;
@Schema(description = "Websocket-FMP4流地址")
2022-10-28 16:40:12 +08:00
private StreamURL ws_fmp4;
@Schema(description = "Websockets-FMP4流地址")
2022-10-28 16:40:12 +08:00
private StreamURL wss_fmp4;
@Schema(description = "HLS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL hls;
@Schema(description = "HTTPS-HLS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL https_hls;
@Schema(description = "Websocket-HLS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL ws_hls;
@Schema(description = "Websockets-HLS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL wss_hls;
@Schema(description = "HTTP-TS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL ts;
@Schema(description = "HTTPS-TS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL https_ts;
@Schema(description = "Websocket-TS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL ws_ts;
@Schema(description = "Websockets-TS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL wss_ts;
@Schema(description = "RTMP流地址")
2022-10-28 16:40:12 +08:00
private StreamURL rtmp;
@Schema(description = "RTMPS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL rtmps;
@Schema(description = "RTSP流地址")
2022-10-28 16:40:12 +08:00
private StreamURL rtsp;
@Schema(description = "RTSPS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL rtsps;
@Schema(description = "RTC流地址")
2022-10-28 16:40:12 +08:00
private StreamURL rtc;
@Schema(description = "RTCS流地址")
2022-10-28 16:40:12 +08:00
private StreamURL rtcs;
@Schema(description = "流媒体ID")
2021-07-16 16:34:51 +08:00
private String mediaServerId;
@Schema(description = "流编码信息")
private Object tracks;
@Schema(description = "开始时间")
private String startTime;
@Schema(description = "结束时间")
private String endTime;
@Schema(description = "进度(录像下载使用)")
private double progress;
@Schema(description = "是否暂停(录像回放使用)")
2022-09-30 17:54:58 +08:00
private boolean pause;
2022-11-10 09:40:01 +08:00
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;
}
2022-10-28 16:40:12 +08:00
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);
if (port > 0) {
this.rtmp = new StreamURL("rtmp", host, port, file);
}
if (sslPort > 0) {
2022-10-28 16:40:12 +08:00
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);
if (port > 0) {
this.rtsp = new StreamURL("rtsp", host, port, file);
}
if (sslPort > 0) {
2022-10-28 16:40:12 +08:00
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);
if (port > 0) {
this.flv = new StreamURL("http", host, port, file);
}
2022-10-28 16:40:12 +08:00
this.ws_flv = new StreamURL("ws", host, port, file);
if (sslPort > 0) {
2022-10-28 16:40:12 +08:00
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);
if (port > 0) {
this.fmp4 = new StreamURL("http", host, port, file);
this.ws_fmp4 = new StreamURL("ws", host, port, file);
}
if (sslPort > 0) {
2022-10-28 16:40:12 +08:00
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);
if (port > 0) {
this.hls = new StreamURL("http", host, port, file);
this.ws_hls = new StreamURL("ws", host, port, file);
}
if (sslPort > 0) {
2022-10-28 16:40:12 +08:00
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);
if (port > 0) {
this.ts = new StreamURL("http", host, port, file);
this.ws_ts = new StreamURL("ws", host, port, file);
}
if (sslPort > 0) {
2022-10-28 16:40:12 +08:00
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);
if (port > 0) {
this.rtc = new StreamURL("http", host, port, file);
}
if (sslPort > 0) {
2022-10-28 16:40:12 +08:00
this.rtcs = new StreamURL("https", host, sslPort, file);
}
}
public void channgeStreamIp(String localAddr) {
if (this.flv != null) {
this.flv.setHost(localAddr);
}
if (this.ws_flv != null ){
this.ws_flv.setHost(localAddr);
}
if (this.hls != null ) {
this.hls.setHost(localAddr);
}
if (this.ws_hls != null ) {
this.ws_hls.setHost(localAddr);
}
if (this.ts != null ) {
this.ts.setHost(localAddr);
}
if (this.ws_ts != null ) {
this.ws_ts.setHost(localAddr);
}
if (this.fmp4 != null ) {
this.fmp4.setHost(localAddr);
}
if (this.ws_fmp4 != null ) {
this.ws_fmp4.setHost(localAddr);
}
if (this.rtc != null ) {
this.rtc.setHost(localAddr);
}
2022-10-28 16:40:12 +08:00
if (this.https_flv != null) {
this.https_flv.setHost(localAddr);
}
if (this.wss_flv != null) {
2022-10-28 16:40:12 +08:00
this.wss_flv.setHost(localAddr);
}
if (this.https_hls != null) {
2022-10-28 16:40:12 +08:00
this.https_hls.setHost(localAddr);
}
if (this.wss_hls != null) {
2022-10-28 16:40:12 +08:00
this.wss_hls.setHost(localAddr);
}
if (this.wss_ts != null) {
2022-10-28 16:40:12 +08:00
this.wss_ts.setHost(localAddr);
}
if (this.https_fmp4 != null) {
2022-10-28 16:40:12 +08:00
this.https_fmp4.setHost(localAddr);
}
if (this.wss_fmp4 != null) {
2022-10-28 16:40:12 +08:00
this.wss_fmp4.setHost(localAddr);
}
if (this.rtcs != null) {
2022-10-28 16:40:12 +08:00
this.rtcs.setHost(localAddr);
}
if (this.rtsp != null) {
this.rtsp.setHost(localAddr);
}
2022-10-28 16:40:12 +08:00
if (this.rtsps != null) {
this.rtsps.setHost(localAddr);
}
if (this.rtmp != null) {
this.rtmp.setHost(localAddr);
}
2022-10-28 16:40:12 +08:00
if (this.rtmps != null) {
this.rtmps.setHost(localAddr);
}
}
public static class TransactionInfo{
public String callId;
public String localTag;
public String remoteTag;
public String branch;
}
private TransactionInfo transactionInfo;
public String getApp() {
return app;
}
public void setApp(String app) {
this.app = app;
}
public String getDeviceID() {
return deviceID;
}
public void setDeviceID(String deviceID) {
this.deviceID = deviceID;
}
public String getChannelId() {
return channelId;
}
public void setChannelId(String channelId) {
this.channelId = channelId;
}
2022-10-28 16:40:12 +08:00
public String getStream() {
return stream;
}
2022-10-28 16:40:12 +08:00
public void setStream(String stream) {
this.stream = stream;
}
2022-10-28 16:40:12 +08:00
public String getIp() {
return ip;
}
2022-10-28 16:40:12 +08:00
public void setIp(String ip) {
this.ip = ip;
}
2022-10-28 16:40:12 +08:00
public StreamURL getFlv() {
return flv;
}
2022-10-28 16:40:12 +08:00
public StreamURL getHttps_flv() {
return https_flv;
}
2022-10-28 16:40:12 +08:00
public StreamURL getWs_flv() {
return ws_flv;
}
2022-10-28 16:40:12 +08:00
public StreamURL getWss_flv() {
return wss_flv;
}
2022-10-28 16:40:12 +08:00
public StreamURL getFmp4() {
return fmp4;
}
2022-10-28 16:40:12 +08:00
public StreamURL getHttps_fmp4() {
return https_fmp4;
2021-04-11 14:44:27 +08:00
}
2022-10-28 16:40:12 +08:00
public StreamURL getWs_fmp4() {
return ws_fmp4;
2021-04-11 14:44:27 +08:00
}
2022-10-28 16:40:12 +08:00
public StreamURL getWss_fmp4() {
return wss_fmp4;
}
2022-10-28 16:40:12 +08:00
public StreamURL getHls() {
return hls;
}
2021-07-16 16:34:51 +08:00
2022-10-28 16:40:12 +08:00
public StreamURL getHttps_hls() {
return https_hls;
2021-07-16 16:34:51 +08:00
}
2022-10-28 16:40:12 +08:00
public StreamURL getWs_hls() {
return ws_hls;
}
2022-10-28 16:40:12 +08:00
public StreamURL getWss_hls() {
return wss_hls;
}
2022-10-28 16:40:12 +08:00
public StreamURL getTs() {
return ts;
}
2022-10-28 16:40:12 +08:00
public StreamURL getHttps_ts() {
return https_ts;
}
2022-10-28 16:40:12 +08:00
public StreamURL getWs_ts() {
return ws_ts;
}
2022-10-28 16:40:12 +08:00
public StreamURL getWss_ts() {
return wss_ts;
}
2022-10-28 16:40:12 +08:00
public StreamURL getRtmp() {
return rtmp;
}
2022-10-28 16:40:12 +08:00
public StreamURL getRtmps() {
return rtmps;
}
2022-10-28 16:40:12 +08:00
public StreamURL getRtsp() {
return rtsp;
}
2022-10-28 16:40:12 +08:00
public StreamURL getRtsps() {
return rtsps;
}
2022-10-28 16:40:12 +08:00
public StreamURL getRtc() {
return rtc;
}
2022-10-28 16:40:12 +08:00
public StreamURL getRtcs() {
return rtcs;
}
2022-10-28 16:40:12 +08:00
public String getMediaServerId() {
return mediaServerId;
}
2022-10-28 16:40:12 +08:00
public void setMediaServerId(String mediaServerId) {
this.mediaServerId = mediaServerId;
}
2022-10-28 16:40:12 +08:00
public Object getTracks() {
return tracks;
}
2022-10-28 16:40:12 +08:00
public void setTracks(Object tracks) {
this.tracks = tracks;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public double getProgress() {
return progress;
}
public void setProgress(double progress) {
this.progress = progress;
}
2022-09-30 17:54:58 +08:00
public boolean isPause() {
return pause;
}
public void setPause(boolean pause) {
this.pause = pause;
}
2022-10-28 16:40:12 +08:00
public TransactionInfo getTransactionInfo() {
return transactionInfo;
}
public void setTransactionInfo(TransactionInfo transactionInfo) {
this.transactionInfo = transactionInfo;
}
2022-11-17 17:01:54 +08:00
@Override
public StreamInfo clone() {
StreamInfo instance = null;
try{
instance = (StreamInfo)super.clone();
}catch(CloneNotSupportedException e) {
2023-03-17 14:02:16 +08:00
e.printStackTrace();
2022-11-17 17:01:54 +08:00
}
return instance;
}
}