package com.ard.zlm.api.domain; import com.ard.common.core.annotation.Excel; import com.ard.common.core.web.domain.BaseEntity; import com.ard.zlm.api.config.ZLMServerConfig; import lombok.Data; import lombok.EqualsAndHashCode; import org.springframework.util.ObjectUtils; /** * 流媒体服务信息 * * @author fengcheng */ @EqualsAndHashCode(callSuper = true) @Data public class ZlmMediaServer extends BaseEntity { private static final long serialVersionUID = 1L; /** ID */ private String id; /** IP */ private String ip; /** hook使用的IP(zlm访问WVP使用的IP) */ private String hookIp = "127.0.0.1"; /** SDP IP */ private String sdpIp; /** 流IP */ private String streamIp; /** HTTP端口 */ private Integer httpPort; /** HTTPS端口 */ private Integer httpSslPort; /** RTMP端口 */ private Integer rtmpPort; /** RTMPS端口 */ private Integer rtmpSslPort; /** RTP收流端口(单端口模式有用) */ private Integer rtpProxyPort; /** RTSP端口 */ private Integer rtspPort; /** RTSPS端口 */ private Integer rtspSslPort; /** flv端口 */ private Integer flvPort; /** https-flv端口 */ private Integer flvSslPort; /** mp4端口 */ private Integer mp4Port; /** mp4端口 */ private Integer mp4SslPort; /** ws-flv端口 */ private Integer wsFlvPort; /** wss-flv端口 */ private Integer wsFlvSslPort; /** 1078收流端口(单端口模式有用) */ private Integer jttProxyPort; /** 是否开启自动配置ZLM */ private Boolean autoConfig; /** ZLM鉴权参数 */ private String secret; /** 类型: zlm/abl */ private String type; /** 是否使用多端口模式 */ private Boolean rtpEnable; /** 多端口RTP收流端口范围 */ private String rtpPortRange; /** RTP发流端口范围 */ private String sendRtpPortRange; /** assist服务端口 */ private Integer recordAssistPort; /** 是否是默认ZLM */ private Boolean defaultServer; /** keepalive hook触发间隔,单位秒 */ private Float hookAliveInterval; /** 录像存储路径 */ private String recordPath; /** 录像存储时长 */ private Integer recordDay; /** 转码的前缀 */ private String transcodeSuffix; /** 服务Id */ @Excel(name = "服务Id") private String serverId; /** * 状态(OFFLINE=离线,ON=在线) */ private String status; public ZlmMediaServer() { } public ZlmMediaServer(ZLMServerConfig zlmServerConfig, String sipIp) { id = zlmServerConfig.getGeneralMediaServerId(); ip = zlmServerConfig.getIp(); hookIp = ObjectUtils.isEmpty(zlmServerConfig.getHookIp()) ? sipIp : zlmServerConfig.getHookIp(); sdpIp = ObjectUtils.isEmpty(zlmServerConfig.getSdpIp()) ? zlmServerConfig.getIp() : zlmServerConfig.getSdpIp(); streamIp = ObjectUtils.isEmpty(zlmServerConfig.getStreamIp()) ? zlmServerConfig.getIp() : zlmServerConfig.getStreamIp(); httpPort = zlmServerConfig.getHttpPort(); httpSslPort = zlmServerConfig.getHttpSSLport(); rtmpPort = zlmServerConfig.getRtmpPort(); rtmpSslPort = zlmServerConfig.getRtmpSslPort(); rtpProxyPort = zlmServerConfig.getRtpProxyPort(); rtspPort = zlmServerConfig.getRtspPort(); rtspSslPort = zlmServerConfig.getRtspSSlport(); autoConfig = true; // 默认值true; secret = zlmServerConfig.getApiSecret(); hookAliveInterval = zlmServerConfig.getHookAliveInterval(); rtpEnable = false; // 默认使用单端口;直到用户自己设置开启多端口 rtpPortRange = zlmServerConfig.getPortRange().replace("_", ","); // 默认使用30000,30500作为级联时发送流的端口号 recordAssistPort = 0; // 默认关闭 transcodeSuffix = zlmServerConfig.getTranscodeSuffix(); } }