[*] 配置结构调整

This commit is contained in:
acgist
2022-12-02 22:46:38 +08:00
parent b1ed244d4d
commit 18cc4e536d
25 changed files with 127 additions and 54 deletions

View File

@@ -29,7 +29,7 @@
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| taoyao-media |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| taoyao-moon(MCU/SFU) | |
| taoyao-moon | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ taoyao-mesh +
| taoyao-kurento | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -47,7 +47,7 @@
流媒体点对点连接,不经过服务端。
#### 注意事项
#### 功能简介
* ~~直播~~
* 会议:一对一、~~多对多~~
@@ -60,7 +60,7 @@
> 为什么叫`Moon`:因为这是古诗词中最美丽的意象
#### 注意事项
#### 功能简介
* 需要安装[KMS服务](./docs/Deploy.md#kmskurento-media-server)
* 提供混音、变声、美颜、录制等等媒体功能

View File

@@ -48,6 +48,11 @@ import org.springframework.web.servlet.NoHandlerFoundException;
import com.acgist.taoyao.boot.controller.TaoyaoControllerAdvice;
import com.acgist.taoyao.boot.controller.TaoyaoErrorController;
import com.acgist.taoyao.boot.model.MessageCode;
import com.acgist.taoyao.boot.property.IdProperties;
import com.acgist.taoyao.boot.property.MediaProperties;
import com.acgist.taoyao.boot.property.SecurityProperties;
import com.acgist.taoyao.boot.property.TaoyaoProperties;
import com.acgist.taoyao.boot.property.WebrtcProperties;
import com.acgist.taoyao.boot.service.IdService;
import com.acgist.taoyao.boot.service.impl.IdServiceImpl;
import com.acgist.taoyao.boot.utils.ErrorUtils;

View File

@@ -1,29 +0,0 @@
package com.acgist.taoyao.boot.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* 媒体配置
*
* @author acgist
*/
@Getter
@Setter
@Schema(title = "媒体配置", description = "媒体配置")
@ConfigurationProperties(prefix = "taoyao.media")
public class MediaProperties {
/**
* 音频配置
*/
private MediaAudioProperties audio;
/**
* 视频配置
*/
private MediaVideoProperties video;
}

View File

@@ -11,6 +11,9 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import com.acgist.taoyao.boot.property.SecurityProperties;
import com.acgist.taoyao.boot.property.TaoyaoProperties;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;

View File

@@ -1,4 +1,4 @@
package com.acgist.taoyao.boot.config;
package com.acgist.taoyao.boot.property;
import org.springframework.boot.context.properties.ConfigurationProperties;

View File

@@ -1,4 +1,4 @@
package com.acgist.taoyao.boot.config;
package com.acgist.taoyao.boot.property;
import com.fasterxml.jackson.annotation.JsonIgnore;

View File

@@ -1,4 +1,4 @@
package com.acgist.taoyao.boot.config;
package com.acgist.taoyao.boot.property;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;

View File

@@ -0,0 +1,46 @@
package com.acgist.taoyao.boot.property;
import org.springframework.boot.context.properties.ConfigurationProperties;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* 媒体配置
*
* @author acgist
*/
@Getter
@Setter
@Schema(title = "媒体配置", description = "媒体配置")
@ConfigurationProperties(prefix = "taoyao.media")
public class MediaProperties {
/**
* 音频配置
*/
@Schema(title = "音频配置", description = "音频配置")
private MediaAudioProperties audio;
/**
* 视频配置
*/
@Schema(title = "视频配置", description = "视频配置")
private MediaVideoProperties video;
/**
* 高清视频
*/
@Schema(title = "高清视频", description = "高清视频")
private MediaVideoProperties highVideo;
/**
* 标清视频
*/
@Schema(title = "标清视频", description = "标清视频")
private MediaVideoProperties normVideo;
/**
* 流畅视频
*/
@Schema(title = "流畅视频", description = "流畅视频")
private MediaVideoProperties flowVideo;
}

View File

@@ -1,4 +1,4 @@
package com.acgist.taoyao.boot.config;
package com.acgist.taoyao.boot.property;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;

View File

@@ -0,0 +1,23 @@
package com.acgist.taoyao.boot.property;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* Moon架构配置
*
* @author acgist
*/
@Getter
@Setter
@Schema(title = "Moon架构配置", description = "Moon架构配置")
public class MoonProperties {
/**
* 是否混音
*/
@Schema(title = "是否混音", description = "是否混音")
private Boolean audioMix;
}

View File

@@ -1,4 +1,4 @@
package com.acgist.taoyao.boot.config;
package com.acgist.taoyao.boot.property;
import org.springframework.boot.context.properties.ConfigurationProperties;

View File

@@ -1,4 +1,4 @@
package com.acgist.taoyao.boot.config;
package com.acgist.taoyao.boot.property;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;

View File

@@ -1,4 +1,4 @@
package com.acgist.taoyao.boot.config;
package com.acgist.taoyao.boot.property;
import org.springframework.boot.context.properties.ConfigurationProperties;

View File

@@ -1,4 +1,4 @@
package com.acgist.taoyao.boot.config;
package com.acgist.taoyao.boot.property;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -65,6 +65,11 @@ public class WebrtcProperties {
*/
@Schema(title = "KMS配置", description = "KMS配置")
private KmsProperties kms;
/**
* Moon架构配置
*/
@Schema(title = "Moon架构配置", description = "Moon架构配置")
private MoonProperties moon;
/**
* 信令配置
*/

View File

@@ -4,7 +4,7 @@ import java.time.LocalDateTime;
import org.springframework.beans.factory.annotation.Autowired;
import com.acgist.taoyao.boot.config.IdProperties;
import com.acgist.taoyao.boot.property.IdProperties;
import com.acgist.taoyao.boot.service.IdService;
public class IdServiceImpl implements IdService {

View File

@@ -14,7 +14,7 @@
<packaging>jar</packaging>
<name>taoyao-media</name>
<description>媒体录制、视频水印、美颜、AI识别)、音频(降噪、混音、变声</description>
<description>媒体:录制、音频(降噪、混音、变声)、视频水印、美颜、AI识别</description>
<dependencies>
<dependency>

View File

@@ -5,9 +5,9 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.acgist.taoyao.boot.config.MediaProperties;
import com.acgist.taoyao.boot.config.WebrtcProperties;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.boot.property.MediaProperties;
import com.acgist.taoyao.boot.property.WebrtcProperties;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;

View File

@@ -8,8 +8,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import com.acgist.taoyao.boot.config.SecurityProperties;
import com.acgist.taoyao.boot.interceptor.InterceptorAdapter;
import com.acgist.taoyao.boot.property.SecurityProperties;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

View File

@@ -2,8 +2,8 @@ package com.acgist.taoyao.interceptor;
import org.springframework.beans.factory.annotation.Autowired;
import com.acgist.taoyao.boot.config.TaoyaoProperties;
import com.acgist.taoyao.boot.interceptor.InterceptorAdapter;
import com.acgist.taoyao.boot.property.TaoyaoProperties;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

View File

@@ -65,8 +65,25 @@ taoyao:
format: H264
bitrate: 1200
frame-rate: 24
resolution: 1280*760
quality: high|standard|quick
resolution: 1920*1080
# 高清视频
high-video:
format: H264
bitrate: 1000
frame-rate: 18
resolution: 1280*720
# 标清视频
norm-video:
format: H264
bitrate: 800
frame-rate: 16
resolution: 720*480
# 流畅视频
flow-video:
format: H264
bitrate: 600
frame-rate: 16
resolution: 640*480
# WebRTC配置
webrtc:
# 架构模式
@@ -94,6 +111,9 @@ taoyao:
websocket: /websocket.signal
username: username
password: password
# Moon架构配置
moon:
audio-mix: true
# 信令服务配置
signal:
host: 192.168.1.100

View File

@@ -9,8 +9,8 @@ import org.springframework.context.ApplicationContext;
import org.springframework.scheduling.annotation.Scheduled;
import com.acgist.taoyao.boot.annotation.Manager;
import com.acgist.taoyao.boot.config.TaoyaoProperties;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.boot.property.TaoyaoProperties;
import com.acgist.taoyao.signal.event.client.ClientCloseEvent;
import lombok.extern.slf4j.Slf4j;

View File

@@ -4,10 +4,10 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import com.acgist.taoyao.boot.config.TaoyaoProperties;
import com.acgist.taoyao.boot.model.Header;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.boot.model.MessageCode;
import com.acgist.taoyao.boot.property.TaoyaoProperties;
import com.acgist.taoyao.boot.service.IdService;
import com.acgist.taoyao.signal.client.ClientSessionManager;
import com.acgist.taoyao.signal.event.ApplicationEventAdapter;

View File

@@ -6,9 +6,9 @@ import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import com.acgist.taoyao.boot.annotation.Protocol;
import com.acgist.taoyao.boot.config.MediaProperties;
import com.acgist.taoyao.boot.config.WebrtcProperties;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.boot.property.MediaProperties;
import com.acgist.taoyao.boot.property.WebrtcProperties;
import com.acgist.taoyao.boot.utils.DateUtils;
import com.acgist.taoyao.boot.utils.DateUtils.DateTimeStyle;
import com.acgist.taoyao.signal.client.ClientSession;

View File

@@ -6,9 +6,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.acgist.taoyao.boot.annotation.Protocol;
import com.acgist.taoyao.boot.config.SecurityProperties;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.boot.model.MessageCode;
import com.acgist.taoyao.boot.property.SecurityProperties;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.client.ClientRegisterEvent;
import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;

View File

@@ -17,8 +17,8 @@
<description>WebRTC模块</description>
<modules>
<module>taoyao-webrtc-moon</module>
<module>taoyao-webrtc-mesh</module>
<module>taoyao-webrtc-moon</module>
<module>taoyao-webrtc-kurento</module>
</modules>