| | |
| | | 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; |
| | |
| | | @Schema(description = "流媒体ID") |
| | | private String mediaServerId; |
| | | @Schema(description = "流编码信息") |
| | | private Object tracks; |
| | | 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; |
| | | |
| | | @Schema(description = "产生源类型,包括 unknown = 0,rtmp_push=1,rtsp_push=2,rtp_push=3,pull=4,ffmpeg_pull=5,mp4_vod=6,device_chn=7") |
| | | private int originType; |
| | | |
| | | public void setFlv(StreamURL flv) { |
| | | this.flv = flv; |
| | |
| | | } |
| | | } |
| | | |
| | | 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); |
| | | public void setFlv(String host, int port, int sslPort, String file) { |
| | | 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 setWsFlv(String host, int port, int sslPort, String file) { |
| | | if (port > 0) { |
| | | this.ws_flv = new StreamURL("ws", host, port, file); |
| | | } |
| | | if (sslPort > 0) { |
| | | this.wss_flv = new StreamURL("wss", host, sslPort, file); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | public void setRtc(String host, int port, int sslPort, String app, String stream, String callIdParam) { |
| | | callIdParam = Objects.equals(callIdParam, "") ? callIdParam : callIdParam.replace("?", "&"); |
| | | String file = String.format("index/api/webrtc?app=%s&stream=%s&type=play%s", app, stream, callIdParam); |
| | | 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); |
| | | } |
| | |
| | | this.mediaServerId = mediaServerId; |
| | | } |
| | | |
| | | public Object getTracks() { |
| | | return tracks; |
| | | public MediaInfo getMediaInfo() { |
| | | return mediaInfo; |
| | | } |
| | | |
| | | public void setTracks(Object tracks) { |
| | | this.tracks = tracks; |
| | | public void setMediaInfo(MediaInfo mediaInfo) { |
| | | this.mediaInfo = mediaInfo; |
| | | } |
| | | |
| | | public String getStartTime() { |
| | |
| | | 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; |
| | | } |
| | | |
| | | public int getOriginType() { |
| | | return originType; |
| | | } |
| | | |
| | | public void setOriginType(int originType) { |
| | | this.originType = originType; |
| | | } |
| | | } |