| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- package com.genersoft.iot.vmp.conf;
- import com.genersoft.iot.vmp.media.bean.MediaServer;
- import com.genersoft.iot.vmp.utils.DateUtil;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.core.annotation.Order;
- import org.springframework.util.ObjectUtils;
- import java.net.InetAddress;
- import java.net.UnknownHostException;
- import java.util.regex.Pattern;
- @Slf4j
- @Configuration("mediaConfig")
- @Order(0)
- public class MediaConfig{
- // 修改必须配置,不再支持自动获取
- @Value("${media.id}")
- private String id;
- @Value("${media.ip}")
- private String ip;
- @Value("${media.wan_ip:}")
- private String wanIp;
- @Value("${media.hook-ip:127.0.0.1}")
- private String hookIp;
- @Value("${sip.domain}")
- private String sipDomain;
- @Value("${media.sdp-ip:${media.wan_ip:}}")
- private String sdpIp;
- @Value("${media.stream-ip:${media.wan_ip:}}")
- private String streamIp;
- @Value("${media.http-port:0}")
- private Integer httpPort;
- @Value("${media.flv-port:0}")
- private Integer flvPort = 0;
- @Value("${media.ws-flv-port:0}")
- private Integer wsFlvPort = 0;
- @Value("${media.http-ssl-port:0}")
- private Integer httpSSlPort = 0;
- @Value("${media.flv-ssl-port:0}")
- private Integer flvSSlPort = 0;
- @Value("${media.ws-flv-ssl-port:0}")
- private Integer wsFlvSSlPort = 0;
- @Value("${media.rtmp-port:0}")
- private Integer rtmpPort = 0;
- @Value("${media.rtmp-ssl-port:0}")
- private Integer rtmpSSlPort = 0;
- @Value("${media.rtp-proxy-port:0}")
- private Integer rtpProxyPort = 0;
- @Value("${media.rtsp-port:0}")
- private Integer rtspPort = 0;
- @Value("${media.rtsp-ssl-port:0}")
- private Integer rtspSSLPort = 0;
- @Value("${media.auto-config:true}")
- private boolean autoConfig = true;
- @Value("${media.secret}")
- private String secret;
- @Value("${media.rtp.enable}")
- private boolean rtpEnable;
- @Value("${media.rtp.port-range}")
- private String rtpPortRange;
- @Value("${media.rtp.send-port-range}")
- private String rtpSendPortRange;
- @Value("${media.record-assist-port:0}")
- private Integer recordAssistPort = 0;
- @Value("${media.record-day:7}")
- private Integer recordDay;
- @Value("${media.record-path:}")
- private String recordPath;
- @Value("${media.type:zlm}")
- private String type;
- public String getId() {
- return id;
- }
- public String getIp() {
- return ip;
- }
- public String getHookIp() {
- return hookIp;
- }
- public int getHttpPort() {
- return httpPort;
- }
- public int getHttpSSlPort() {
- return httpSSlPort;
- }
- public int getRtmpPort() {
- return rtmpPort;
- }
-
- public int getRtmpSSlPort() {
- return rtmpSSlPort;
- }
- public int getRtpProxyPort() {
- if (rtpProxyPort == null) {
- return 0;
- }else {
- return rtpProxyPort;
- }
- }
- public int getRtspPort() {
- return rtspPort;
- }
- public int getRtspSSLPort() {
- return rtspSSLPort;
- }
- public boolean isAutoConfig() {
- return autoConfig;
- }
- public String getSecret() {
- return secret;
- }
- public boolean isRtpEnable() {
- return rtpEnable;
- }
- public String getRtpPortRange() {
- return rtpPortRange;
- }
-
- public int getRecordAssistPort() {
- return recordAssistPort;
- }
- public String getSdpIp() {
- if (ObjectUtils.isEmpty(sdpIp)){
- return ip;
- }else {
- if (isValidIPAddress(sdpIp)) {
- return sdpIp;
- }else {
- // 按照域名解析
- String hostAddress = null;
- try {
- hostAddress = InetAddress.getByName(sdpIp).getHostAddress();
- } catch (UnknownHostException e) {
- log.error("[获取SDP IP]: 域名解析失败");
- }
- return hostAddress;
- }
- }
- }
- public String getStreamIp() {
- if (ObjectUtils.isEmpty(streamIp)){
- return ip;
- }else {
- return streamIp;
- }
- }
- public String getSipDomain() {
- return sipDomain;
- }
- public MediaServer getMediaSerItem(){
- MediaServer mediaServer = new MediaServer();
- mediaServer.setId(id);
- mediaServer.setIp(ip);
- mediaServer.setDefaultServer(true);
- mediaServer.setHookIp(getHookIp());
- mediaServer.setSdpIp(getSdpIp());
- mediaServer.setStreamIp(getStreamIp());
- mediaServer.setHttpPort(httpPort);
- if (flvPort == 0) {
- mediaServer.setFlvPort(httpPort);
- }else {
- mediaServer.setFlvPort(flvPort);
- }
- if (wsFlvPort == 0) {
- mediaServer.setWsFlvPort(httpPort);
- }else {
- mediaServer.setWsFlvPort(wsFlvPort);
- }
- if (flvSSlPort == 0) {
- mediaServer.setFlvSSLPort(httpSSlPort);
- }else {
- mediaServer.setFlvSSLPort(flvSSlPort);
- }
- if (wsFlvSSlPort == 0) {
- mediaServer.setWsFlvSSLPort(httpSSlPort);
- }else {
- mediaServer.setWsFlvSSLPort(wsFlvSSlPort);
- }
- mediaServer.setHttpSSlPort(httpSSlPort);
- mediaServer.setRtmpPort(rtmpPort);
- mediaServer.setRtmpSSlPort(rtmpSSlPort);
- mediaServer.setRtpProxyPort(getRtpProxyPort());
- mediaServer.setRtspPort(rtspPort);
- mediaServer.setRtspSSLPort(rtspSSLPort);
- mediaServer.setAutoConfig(autoConfig);
- mediaServer.setSecret(secret);
- mediaServer.setRtpEnable(rtpEnable);
- mediaServer.setRtpPortRange(rtpPortRange);
- mediaServer.setSendRtpPortRange(rtpSendPortRange);
- mediaServer.setRecordAssistPort(recordAssistPort);
- mediaServer.setHookAliveInterval(10f);
- mediaServer.setRecordDay(recordDay);
- mediaServer.setStatus(false);
- mediaServer.setType(type);
- if (recordPath != null) {
- mediaServer.setRecordPath(recordPath);
- }
- mediaServer.setCreateTime(DateUtil.getNow());
- mediaServer.setUpdateTime(DateUtil.getNow());
- return mediaServer;
- }
- public Integer getRecordDay() {
- return recordDay;
- }
- public void setRecordDay(Integer recordDay) {
- this.recordDay = recordDay;
- }
- public String getRecordPath() {
- return recordPath;
- }
- public void setRecordPath(String recordPath) {
- this.recordPath = recordPath;
- }
- public String getRtpSendPortRange() {
- return rtpSendPortRange;
- }
- public void setRtpSendPortRange(String rtpSendPortRange) {
- this.rtpSendPortRange = rtpSendPortRange;
- }
- private boolean isValidIPAddress(String ipAddress) {
- if ((ipAddress != null) && (!ipAddress.isEmpty())) {
- return Pattern.matches("^([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}$", ipAddress);
- }
- return false;
- }
- public String getWanIp() {
- return wanIp;
- }
- public void setWanIp(String wanIp) {
- this.wanIp = wanIp;
- }
- }
|