| | |
| | | @Override |
| | | public ArdVtdu addPath(ArdVtdu ardVtdu) { |
| | | try { |
| | | String rtspUrl = "rtsp://" + mediamtxConfig.getPlayHost() + ":8554/" + ardVtdu.getName(); |
| | | String rtmpUrl = "rtmp://" + mediamtxConfig.getPlayHost() + ":1935/" + ardVtdu.getName(); |
| | | String rtspUrl = |
| | | "rtsp://" + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getRtspPort() + "/" + ardVtdu.getName(); |
| | | String rtmpUrl = |
| | | "rtmp://" + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getRtmpPort() + "/" + ardVtdu.getName(); |
| | | String protocol = mediamtxConfig.isHttps() ? "https://" : "http://"; |
| | | String webrtcUrl = protocol + mediamtxConfig.getPlayHost() + ":8889/" + ardVtdu.getName(); |
| | | |
| | | String webrtcUrl = |
| | | protocol + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getWebrtcPort() + "/" + ardVtdu.getName(); |
| | | String source = ardVtdu.getRtspSource(); |
| | | Conf conf = new Conf(); |
| | | conf.setSource(ardVtdu.getRtspSource()); |
| | | conf.setRunOnDemandRestart(false); |
| | | conf.setRunOnDemandCloseAfter("5s"); |
| | | conf.setName(ardVtdu.getName()); |
| | | conf.setSource(source); |
| | | // 如果是拉流则配置按需 |
| | | if (!"publisher".equalsIgnoreCase(source)) { |
| | | conf.setSourceOnDemand(true); // 按需拉 |
| | | conf.setRunOnDemandCloseAfter("5s"); // 无观众 5 秒断开 |
| | | } |
| | | conf.setMaxReaders(100); |
| | | conf.setSourceProtocol("tcp"); |
| | | |
| | |
| | | } else { |
| | | mediaClient.editPath(ardVtdu.getName(), conf); |
| | | } |
| | | |
| | | ardVtdu.setCameraId(ardVtdu.getName().split("_")[0]); |
| | | ardVtdu.setRtspUrl(rtspUrl); |
| | | ardVtdu.setRtmpUrl(rtmpUrl); |
| | |
| | | @Override |
| | | public ArdVtdu editPath(ArdVtdu ardVtdu) { |
| | | try { |
| | | String rtspUrl = "rtsp://" + mediamtxConfig.getPlayHost() + ":8554/" + ardVtdu.getName(); |
| | | String rtmpUrl = "rtmp://" + mediamtxConfig.getPlayHost() + ":1935/" + ardVtdu.getName(); |
| | | String rtspUrl = |
| | | "rtsp://" + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getRtspPort() + "/" + ardVtdu.getName(); |
| | | String rtmpUrl = |
| | | "rtmp://" + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getRtmpPort() + "/" + ardVtdu.getName(); |
| | | String protocol = mediamtxConfig.isHttps() ? "https://" : "http://"; |
| | | String webrtcUrl = protocol + mediamtxConfig.getPlayHost() + ":8889/" + ardVtdu.getName(); |
| | | String webrtcUrl = |
| | | protocol + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getWebrtcPort() + "/" + ardVtdu.getName(); |
| | | |
| | | Conf conf = new Conf(); |
| | | conf.setSource(ardVtdu.getRtspSource()); |
| | | conf.setName(ardVtdu.getName()); |
| | | conf.setRunOnDemand(""); |
| | | if(!"publisher".equalsIgnoreCase(conf.getSource())) { |
| | | conf.setSourceOnDemand(true); |
| | | } |
| | | conf.setRunOnDemandRestart(false); |
| | | conf.setRunOnDemandCloseAfter("5s"); |
| | | conf.setMaxReaders(100); |
| | |
| | | String name = item.getName(); |
| | | info.setName(name); |
| | | Conf conf = mediaClient.getPathConfig(name); |
| | | //源 |
| | | info.setRtspSource(conf.getSource()); |
| | | //RTMP播放地址 |
| | | String rtmpUrl = "rtmp://" + mediamtxConfig.getPlayHost() + ":1935/" + name; |
| | | String rtmpUrl = "rtmp://" + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getRtmpPort() + "/" + name; |
| | | info.setRtmpUrl(rtmpUrl); |
| | | //RTSP播放地址 |
| | | String rtspUrl = "rtsp://" + mediamtxConfig.getPlayHost() + ":8554/" + name; |
| | | String rtspUrl = "rtsp://" + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getRtspPort() + "/" + name; |
| | | info.setRtspUrl(rtspUrl); |
| | | //WEBRTC播放地址 |
| | | String protocol = mediamtxConfig.isHttps() ? "https://" : "http://"; |
| | | String webrtcUrl = protocol + mediamtxConfig.getPlayHost() + ":8889/" + name; |
| | | String webrtcUrl = |
| | | protocol + mediamtxConfig.getPlayHost() + ":" + mediamtxConfig.getWebrtcPort() + "/" + name; |
| | | info.setWebrtcUrl(webrtcUrl); |
| | | Source source = item.getSource(); |
| | | if (source == null || source.getId().equals("")) { |
| | | //会话ID |
| | | info.setId("0"); |
| | | //下行流量 |
| | | long bytesReceived = item.getBytesReceived(); |
| | | String formatReceivedSize = ArdTool.formatFileSize(bytesReceived); |
| | | info.setDownTraffic(formatReceivedSize); |
| | | //上行流量 |
| | | long bytesSent = item.getBytesSent(); |
| | | String formatSentdSize = ArdTool.formatFileSize(bytesSent); |
| | | info.setUpTraffic(formatSentdSize); |
| | | info.setBeginTime(item.getReadyTime()); |
| | | } else { |
| | | RtspSession rtspSession = getRtspSessionById(source.getId()); |
| | | //会话ID |
| | | info.setId(rtspSession.getId()); |
| | | //开始推流时间 |
| | | info.setBeginTime(rtspSession.getCreated()); |
| | | //上行流量 |
| | | long bytesReceived = rtspSession.getBytesReceived(); |
| | | String formatReceivedSize = ArdTool.formatFileSize(bytesReceived); |
| | | info.setUpTraffic(formatReceivedSize); |
| | | //下行流量 |
| | | long bytesSent = rtspSession.getBytesSent(); |
| | | String formatSentSize = ArdTool.formatFileSize(bytesSent); |
| | | info.setDownTraffic(formatSentSize); |
| | | //推流服务器 |
| | | info.setRemoteAddr(rtspSession.getRemoteAddr()); |
| | | } |
| | | //RTSP源地址 |
| | | String runOn = ""; |
| | | if (StringUtils.isNotEmpty(conf.getRunOnDemand())) { |
| | | runOn = conf.getRunOnDemand(); |
| | | } |
| | | Matcher matcher = Pattern.compile("rtsp://[^\\s\"]+").matcher(runOn); |
| | | if (matcher.find()) { |
| | | info.setRtspSource(matcher.group()); |
| | | } else { |
| | | info.setRtspSource(conf.getSource()); |
| | | } |
| | | |
| | | //上行流量 |
| | | long bytesReceived = item.getBytesReceived(); |
| | | String formatReceivedSize = ArdTool.formatFileSize(bytesReceived); |
| | | info.setUpTraffic(formatReceivedSize); |
| | | //下行流量 |
| | | long bytesSent = item.getBytesSent(); |
| | | String formatSentSize = ArdTool.formatFileSize(bytesSent); |
| | | info.setDownTraffic(formatSentSize); |
| | | //传输协议 |
| | | info.setProtocol(conf.getSourceProtocol()); |
| | | //拉流数量 |
| | | List<Readers> readers = item.getReaders(); |
| | | //开始时间 |
| | | info.setBeginTime(item.getReadyTime()); |
| | | info.setNum(readers.size()); |
| | | |
| | | PushStreamInfoList.add(info); |