添加发送媒体流, 添加媒体服务器节点管理ui,修复修改密码

This commit is contained in:
648540858
2021-09-25 22:12:15 +08:00
parent 4d92074505
commit 720231d33f
30 changed files with 890 additions and 47 deletions

View File

@@ -8,6 +8,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.HashMap;
import java.util.Map;
@@ -44,8 +45,15 @@ public class ZLMRTPServerFactory {
Map<String, Object> param = new HashMap<>();
int result = -1;
int newPort = getPortFromportRange(mediaServerItem);
param.put("port", newPort);
/**
* 不设置推流端口端则使用随机端口
*/
if (StringUtils.isEmpty(mediaServerItem.getSendRtpPortRange())){
param.put("port", 0);
}else {
int newPort = getPortFromportRange(mediaServerItem);
param.put("port", newPort);
}
param.put("enable_tcp", 1);
param.put("stream_id", streamId);
JSONObject openRtpServerResultJson = zlmresTfulUtils.openRtpServer(mediaServerItem, param);
@@ -53,24 +61,24 @@ public class ZLMRTPServerFactory {
if (openRtpServerResultJson != null) {
switch (openRtpServerResultJson.getInteger("code")){
case 0:
result= newPort;
result= openRtpServerResultJson.getInteger("port");
break;
case -300: // id已经存在, 可能已经在其他端口推流
Map<String, Object> closeRtpServerParam = new HashMap<>();
closeRtpServerParam.put("stream_id", streamId);
zlmresTfulUtils.closeRtpServer(mediaServerItem, closeRtpServerParam);
result = newPort;
result = createRTPServer(mediaServerItem, streamId);;
break;
case -400: // 端口占用
result= createRTPServer(mediaServerItem, streamId);
break;
default:
logger.error("创建RTP Server 失败 {}: " + openRtpServerResultJson.getString("msg"), newPort);
logger.error("创建RTP Server 失败 {}: " + openRtpServerResultJson.getString("msg"), param.get("port"));
break;
}
}else {
// 检查ZLM状态
logger.error("创建RTP Server 失败 {}: 请检查ZLM服务", newPort);
logger.error("创建RTP Server 失败 {}: 请检查ZLM服务", param.get("port"));
}
return result;
}
@@ -98,7 +106,7 @@ public class ZLMRTPServerFactory {
private int getPortFromportRange(MediaServerItem mediaServerItem) {
int currentPort = mediaServerItem.getCurrentPort();
if (currentPort == 0) {
String[] portRangeStrArray = mediaServerItem.getRtpPortRange().split(",");
String[] portRangeStrArray = mediaServerItem.getSendRtpPortRange().split(",");
portRangeArray[0] = Integer.parseInt(portRangeStrArray[0]);
portRangeArray[1] = Integer.parseInt(portRangeStrArray[1]);
}
@@ -229,7 +237,9 @@ public class ZLMRTPServerFactory {
*/
public int totalReaderCount(MediaServerItem mediaServerItem, String app, String streamId) {
JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo(mediaServerItem, app, "rtmp", streamId);
if (mediaInfo == null) return 0;
if (mediaInfo == null) {
return 0;
}
return mediaInfo.getInteger("totalReaderCount");
}

View File

@@ -108,8 +108,10 @@ public class ZLMRunner implements CommandLineRunner {
}
public ZLMServerConfig getMediaServerConfig(MediaServerItem mediaServerItem) {
if (startGetMedia == null) return null;
if ( startGetMedia.get(mediaServerItem.getId()) == null || !startGetMedia.get(mediaServerItem.getId())) return null;
if (startGetMedia == null) { return null;}
if ( startGetMedia.get(mediaServerItem.getId()) == null || !startGetMedia.get(mediaServerItem.getId())) {
return null;
}
JSONObject responseJSON = zlmresTfulUtils.getMediaServerConfig(mediaServerItem);
ZLMServerConfig ZLMServerConfig = null;
if (responseJSON != null) {

View File

@@ -41,14 +41,20 @@ public class MediaServerItem{
private boolean rtpEnable;
private boolean status;
private String rtpPortRange;
private String sendRtpPortRange;
private int recordAssistPort;
private String createTime;
private String updateTime;
private String lastKeepaliveTime;
private boolean defaultServer;
private SsrcConfig ssrcConfig;
@@ -82,6 +88,7 @@ public class MediaServerItem{
secret = zlmServerConfig.getApiSecret();
streamNoneReaderDelayMS = zlmServerConfig.getGeneralStreamNoneReaderDelayMS();
rtpEnable = false; // 默认使用单端口;直到用户自己设置开启多端口
rtpPortRange = "30000,30500"; // 默认使用30000,30500作为级联时发送流的端口号
recordAssistPort = 0; // 默认关闭
}
@@ -278,5 +285,27 @@ public class MediaServerItem{
this.currentPort = currentPort;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public String getLastKeepaliveTime() {
return lastKeepaliveTime;
}
public void setLastKeepaliveTime(String lastKeepaliveTime) {
this.lastKeepaliveTime = lastKeepaliveTime;
}
public String getSendRtpPortRange() {
return sendRtpPortRange;
}
public void setSendRtpPortRange(String sendRtpPortRange) {
this.sendRtpPortRange = sendRtpPortRange;
}
}