| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619 |
- package com.genersoft.iot.vmp.common;
- import com.genersoft.iot.vmp.media.bean.MediaInfo;
- import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;
- import io.swagger.v3.oas.annotations.media.Schema;
- import java.io.Serializable;
- import java.util.Objects;
- @Schema(description = "流信息")
- public class StreamInfo implements Serializable, Cloneable{
- @Schema(description = "应用名")
- private String app;
- @Schema(description = "流ID")
- private String stream;
- @Schema(description = "设备编号")
- private String deviceID;
- @Schema(description = "通道编号")
- private String channelId;
- @Schema(description = "IP")
- private String ip;
- @Schema(description = "HTTP-FLV流地址")
- private StreamURL flv;
- @Schema(description = "HTTPS-FLV流地址")
- private StreamURL https_flv;
- @Schema(description = "Websocket-FLV流地址")
- private StreamURL ws_flv;
- @Schema(description = "Websockets-FLV流地址")
- private StreamURL wss_flv;
- @Schema(description = "HTTP-FMP4流地址")
- private StreamURL fmp4;
- @Schema(description = "HTTPS-FMP4流地址")
- private StreamURL https_fmp4;
- @Schema(description = "Websocket-FMP4流地址")
- private StreamURL ws_fmp4;
- @Schema(description = "Websockets-FMP4流地址")
- private StreamURL wss_fmp4;
- @Schema(description = "HLS流地址")
- private StreamURL hls;
- @Schema(description = "HTTPS-HLS流地址")
- private StreamURL https_hls;
- @Schema(description = "Websocket-HLS流地址")
- private StreamURL ws_hls;
- @Schema(description = "Websockets-HLS流地址")
- private StreamURL wss_hls;
- @Schema(description = "HTTP-TS流地址")
- private StreamURL ts;
- @Schema(description = "HTTPS-TS流地址")
- private StreamURL https_ts;
- @Schema(description = "Websocket-TS流地址")
- private StreamURL ws_ts;
- @Schema(description = "Websockets-TS流地址")
- private StreamURL wss_ts;
- @Schema(description = "RTMP流地址")
- private StreamURL rtmp;
- @Schema(description = "RTMPS流地址")
- private StreamURL rtmps;
- @Schema(description = "RTSP流地址")
- private StreamURL rtsp;
- @Schema(description = "RTSPS流地址")
- private StreamURL rtsps;
- @Schema(description = "RTC流地址")
- private StreamURL rtc;
- @Schema(description = "RTCS流地址")
- private StreamURL rtcs;
- @Schema(description = "流媒体ID")
- private String mediaServerId;
- @Schema(description = "流编码信息")
- private MediaInfo mediaInfo;
- @Schema(description = "开始时间")
- private String startTime;
- @Schema(description = "结束时间")
- private String endTime;
- @Schema(description = "进度(录像下载使用)")
- private double progress;
- @Schema(description = "文件下载地址(录像下载使用)")
- private DownloadFileInfo downLoadFilePath;
- @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);
- if (port > 0) {
- 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);
- if (port > 0) {
- 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);
- if (port > 0) {
- 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);
- if (port > 0) {
- 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);
- if (port > 0) {
- 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);
- if (port > 0) {
- 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, boolean isPlay) {
- if (callIdParam != null) {
- callIdParam = Objects.equals(callIdParam, "") ? callIdParam : callIdParam.replace("?", "&");
- }
- String file = String.format("index/api/webrtc?app=%s&stream=%s&type=%s%s", app, stream, isPlay?"play":"push", callIdParam);
- if (port > 0) {
- this.rtc = new StreamURL("http", host, port, file);
- }
- if (sslPort > 0) {
- 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);
- }
- if (this.https_flv != null) {
- this.https_flv.setHost(localAddr);
- }
- if (this.wss_flv != null) {
- this.wss_flv.setHost(localAddr);
- }
- if (this.https_hls != null) {
- this.https_hls.setHost(localAddr);
- }
- if (this.wss_hls != null) {
- this.wss_hls.setHost(localAddr);
- }
- if (this.wss_ts != null) {
- this.wss_ts.setHost(localAddr);
- }
- if (this.https_fmp4 != null) {
- this.https_fmp4.setHost(localAddr);
- }
- if (this.wss_fmp4 != null) {
- this.wss_fmp4.setHost(localAddr);
- }
- if (this.rtcs != null) {
- this.rtcs.setHost(localAddr);
- }
- if (this.rtsp != null) {
- this.rtsp.setHost(localAddr);
- }
- if (this.rtsps != null) {
- this.rtsps.setHost(localAddr);
- }
- if (this.rtmp != null) {
- this.rtmp.setHost(localAddr);
- }
- 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;
- }
- public String getStream() {
- return stream;
- }
- public void setStream(String stream) {
- this.stream = stream;
- }
- 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 StreamURL getRtcs() {
- return rtcs;
- }
- public String getMediaServerId() {
- return mediaServerId;
- }
- public void setMediaServerId(String mediaServerId) {
- this.mediaServerId = mediaServerId;
- }
- public MediaInfo getMediaInfo() {
- return mediaInfo;
- }
- public void setMediaInfo(MediaInfo mediaInfo) {
- this.mediaInfo = mediaInfo;
- }
- 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;
- }
- public boolean isPause() {
- return pause;
- }
- 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();
- if (this.flv != null) {
- instance.flv=this.flv.clone();
- }
- if (this.ws_flv != null ){
- instance.ws_flv= this.ws_flv.clone();
- }
- if (this.hls != null ) {
- instance.hls= this.hls.clone();
- }
- if (this.ws_hls != null ) {
- instance.ws_hls= this.ws_hls.clone();
- }
- if (this.ts != null ) {
- instance.ts= this.ts.clone();
- }
- if (this.ws_ts != null ) {
- instance.ws_ts= this.ws_ts.clone();
- }
- if (this.fmp4 != null ) {
- instance.fmp4= this.fmp4.clone();
- }
- if (this.ws_fmp4 != null ) {
- instance.ws_fmp4= this.ws_fmp4.clone();
- }
- if (this.rtc != null ) {
- instance.rtc= this.rtc.clone();
- }
- if (this.https_flv != null) {
- instance.https_flv= this.https_flv.clone();
- }
- if (this.wss_flv != null) {
- instance.wss_flv= this.wss_flv.clone();
- }
- if (this.https_hls != null) {
- instance.https_hls= this.https_hls.clone();
- }
- if (this.wss_hls != null) {
- instance.wss_hls= this.wss_hls.clone();
- }
- if (this.wss_ts != null) {
- instance.wss_ts= this.wss_ts.clone();
- }
- if (this.https_fmp4 != null) {
- instance.https_fmp4= this.https_fmp4.clone();
- }
- if (this.wss_fmp4 != null) {
- instance.wss_fmp4= this.wss_fmp4.clone();
- }
- if (this.rtcs != null) {
- instance.rtcs= this.rtcs.clone();
- }
- if (this.rtsp != null) {
- instance.rtsp= this.rtsp.clone();
- }
- if (this.rtsps != null) {
- instance.rtsps= this.rtsps.clone();
- }
- if (this.rtmp != null) {
- instance.rtmp= this.rtmp.clone();
- }
- if (this.rtmps != null) {
- instance.rtmps= this.rtmps.clone();
- }
- }catch(CloneNotSupportedException e) {
- e.printStackTrace();
- }
- return instance;
- }
- /*=========================设备主子码流逻辑START====================*/
- @Schema(description = "是否为子码流(true-是,false-主码流)")
- private boolean subStream;
- public boolean isSubStream() {
- return subStream;
- }
- public void setSubStream(boolean subStream) {
- this.subStream = subStream;
- }
- public DownloadFileInfo getDownLoadFilePath() {
- return downLoadFilePath;
- }
- public void setDownLoadFilePath(DownloadFileInfo downLoadFilePath) {
- this.downLoadFilePath = downLoadFilePath;
- }
- }
|