[+] 精简
This commit is contained in:
@@ -19,7 +19,6 @@
|
||||
|taoyao-webrtc-sfu|WebRTC SFU架构|SFU架构|
|
||||
|taoyao-webrtc-mcu|WebRTC MCU架构|MCU架构|
|
||||
|taoyao-webrtc-mesh|WebRTC MESH架构|MESH架构|
|
||||
|taoyao-webrtc-jitsi|WebRTC协议簇jitsi实现|WebRTC协议簇jitsi实现|
|
||||
|taoyao-webrtc-kurento|WebRTC协议簇kurento实现|WebRTC协议簇kurento实现|
|
||||
|
||||
> 终端负责推流,服务端负责处理媒体流,这些功能也可以在终端实现。主次码流没在终端实现,服务端实现可以有更多选择。
|
||||
@@ -36,7 +35,7 @@
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| taoyao-mcu / taoyao-sfu | |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ taoyao-mesh +
|
||||
| taoyao-jitsi / taoyao-kurento | |
|
||||
| taoyao-kurento | |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| taoyao-signal |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
@@ -44,6 +43,8 @@
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
```
|
||||
|
||||
> 综合比较jitsi|kurento两个框架最后选择kurento
|
||||
|
||||
## 架构比较
|
||||
|
||||
### Mesh
|
||||
|
||||
@@ -59,6 +59,11 @@ sysctl -p
|
||||
yum install git
|
||||
```
|
||||
|
||||
# KMS
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
## Java
|
||||
|
||||
安装之前需要卸载旧版,如果旧版已经是`17+`可以忽略安装。
|
||||
@@ -162,6 +167,7 @@ keytool -genkeypair -keyalg RSA -dname "CN=localhost, OU=acgist, O=taoyao, L=GZ,
|
||||
https://www.jianshu.com/p/fa047d7054eb
|
||||
https://www.jianshu.com/p/59da3d350488
|
||||
https://www.jianshu.com/p/fa047d7054eb
|
||||
http://koca.szkingdom.com/forum/t/topic/218
|
||||
https://segmentfault.com/a/1190000039782685
|
||||
https://www.cnblogs.com/bolingcavalry/p/15473808.html
|
||||
http://www.manoner.com/post/音视频基础/WebRTC核心组件和协议栈/
|
||||
@@ -169,7 +175,10 @@ https://blog.csdn.net/eguid_1/article/details/117277841
|
||||
https://blog.csdn.net/xiang_6119/article/details/108779678
|
||||
https://blog.csdn.net/qq_40321119/article/details/108336324
|
||||
https://blog.csdn.net/ababab12345/article/details/115585378
|
||||
https://blog.csdn.net/m0_64867003/article/details/121901782
|
||||
https://blog.csdn.net/jisuanji111111/article/details/121634199
|
||||
https://blog.csdn.net/weixin_48638578/article/details/120191152
|
||||
https://blog.csdn.net/weixin_45565568/article/details/108929438
|
||||
https://lequ7.com/guan-yu-webrtc-yi-wen-xiang-jie-webrtc-ji-chu.html
|
||||
https://blog.csdn.net/weixin_40425640/article/details/125444018
|
||||
http://t.zoukankan.com/yjmyzz-p-webrtc-groupcall-using-kurento.html
|
||||
https://lequ7.com/guan-yu-webrtc-yi-wen-xiang-jie-webrtc-ji-chu.html
|
||||
18
pom.xml
18
pom.xml
@@ -29,8 +29,6 @@
|
||||
<springdoc.version>2.0.0-RC1</springdoc.version>
|
||||
<mapstruct.version>1.5.3.Final</mapstruct.version>
|
||||
<collections4.version>4.4</collections4.version>
|
||||
<jitsi.ice4j.version>3.0-59-g71e244d</jitsi.ice4j.version>
|
||||
<jitsi.libjitsi.version>1.1-22-g5c9346c5</jitsi.libjitsi.version>
|
||||
<!-- 配置 -->
|
||||
<taoyao.maven.basedir>${project.basedir}</taoyao.maven.basedir>
|
||||
<taoyao.maven.encoding>UTF-8</taoyao.maven.encoding>
|
||||
@@ -161,27 +159,11 @@
|
||||
<artifactId>taoyao-webrtc-mesh</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-jitsi</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-kurento</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<!-- WebRTC:jitsi -->
|
||||
<dependency>
|
||||
<groupId>org.jitsi</groupId>
|
||||
<artifactId>ice4j</artifactId>
|
||||
<version>${jitsi.ice4j.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jitsi</groupId>
|
||||
<artifactId>libjitsi</artifactId>
|
||||
<version>${jitsi.libjitsi.version}</version>
|
||||
</dependency>
|
||||
<!-- WebRTC:kurento -->
|
||||
<dependency>
|
||||
<groupId>org.kurento</groupId>
|
||||
|
||||
@@ -77,8 +77,8 @@ public class BootAutoConfiguration {
|
||||
|
||||
@Value("${spring.application.name:taoyao}")
|
||||
private String name;
|
||||
@Value("${taoyao.webrtc.model:SFU}")
|
||||
private String model;
|
||||
@Value("${taoyao.webrtc.framework:SFU}")
|
||||
private String framework;
|
||||
|
||||
@Autowired
|
||||
private ApplicationContext context;
|
||||
@@ -162,7 +162,7 @@ public class BootAutoConfiguration {
|
||||
this.context.getBeansOfType(TaskScheduler.class).forEach((k, v) -> {
|
||||
log.info("系统定时任务线程池:{}-{}", k, v);
|
||||
});
|
||||
log.info("WebRTC架构:{}", this.model);
|
||||
log.info("WebRTC架构:{}", this.framework);
|
||||
this.registerException();
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ public class WebrtcProperties {
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
public enum Model {
|
||||
public enum Framework {
|
||||
|
||||
/**
|
||||
* SFU架构
|
||||
@@ -39,33 +39,10 @@ public class WebrtcProperties {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 基础框架
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
public enum Framework {
|
||||
|
||||
/**
|
||||
* jitsi
|
||||
*/
|
||||
JITSI,
|
||||
/**
|
||||
* kurento
|
||||
*/
|
||||
KURENTO;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 模型
|
||||
*/
|
||||
@Schema(title = "架构模型", description = "WebRTC架构模型")
|
||||
private Model model;
|
||||
/**
|
||||
* 框架
|
||||
*/
|
||||
@Schema(title = "基础框架", description = "WebRTC基础框架")
|
||||
private Framework framework;
|
||||
/**
|
||||
* stun服务器
|
||||
|
||||
@@ -29,14 +29,6 @@
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-mesh</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-jitsi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-kurento</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -69,8 +69,7 @@ taoyao:
|
||||
quality: high|standard|quick
|
||||
# WebRTC配置
|
||||
webrtc:
|
||||
model: MESH
|
||||
framework: JITSI
|
||||
framework: MESH
|
||||
stun:
|
||||
- stun:stun1.l.google.com:19302
|
||||
- stun:stun2.l.google.com:19302
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
<module>taoyao-webrtc-sfu</module>
|
||||
<module>taoyao-webrtc-mcu</module>
|
||||
<module>taoyao-webrtc-mesh</module>
|
||||
<module>taoyao-webrtc-jitsi</module>
|
||||
<module>taoyao-webrtc-kurento</module>
|
||||
</modules>
|
||||
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>taoyao-webrtc-jitsi</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>taoyao-webrtc-jitsi</name>
|
||||
<description>WebRTC协议簇实现:jitsi</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.jitsi</groupId>
|
||||
<artifactId>ice4j</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jitsi</groupId>
|
||||
<artifactId>libjitsi</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@@ -17,10 +17,6 @@
|
||||
<description>WebRTC MCU架构实现</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-jitsi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-kurento</artifactId>
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author acgist
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnProperty(prefix = "taoyao.webrtc", name = "model", havingValue = "MCU", matchIfMissing = false)
|
||||
@ConditionalOnProperty(prefix = "taoyao.webrtc", name = "framework", havingValue = "MCU", matchIfMissing = false)
|
||||
public class McuAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.acgist.taoyao.webrtc.mesh.listener.MediaSubscribeListener;
|
||||
* @author acgist
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnProperty(prefix = "taoyao.webrtc", name = "model", havingValue = "MESH", matchIfMissing = false)
|
||||
@ConditionalOnProperty(prefix = "taoyao.webrtc", name = "framework", havingValue = "MESH", matchIfMissing = false)
|
||||
public class MeshAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
|
||||
@@ -17,10 +17,6 @@
|
||||
<description>WebRTC SFU架构实现</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-jitsi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.acgist</groupId>
|
||||
<artifactId>taoyao-webrtc-kurento</artifactId>
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author acgist
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnProperty(prefix = "taoyao.webrtc", name = "model", havingValue = "SFU", matchIfMissing = true)
|
||||
@ConditionalOnProperty(prefix = "taoyao.webrtc", name = "framework", havingValue = "SFU", matchIfMissing = true)
|
||||
public class SfuAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user