[+] 结构调整

This commit is contained in:
acgist
2023-02-22 07:42:40 +08:00
parent a4696a9b9b
commit 6358255458
103 changed files with 1056 additions and 250 deletions

View File

@@ -0,0 +1,158 @@
const os = require("os");
/**
* 配置
*/
module.exports = {
// 服务名称
name: "taoyao-client-media",
// 服务版本
version: "1.0.0",
// 欢迎页面
welcome: `${__dirname}/index.html`,
// 日志级别
logLevel: "DEBUG",
// 录像目录
recordStoragePath: "/data/record",
// 信令服务
https: {
// 信令服务地址端口
listenIp: process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
listenPort: process.env.HTTPS_LISTEN_PORT || 9443,
// 信令服务安全配置
username: "taoyao",
password: "taoyao",
// 信令服务证书配置
tls: {
cert: process.env.HTTPS_CERT_PUBLIC_KEY || `${__dirname}/certs/publicKey.pem`,
key: process.env.HTTPS_CERT_PRIVATE_KEY || `${__dirname}/certs/privateKey.pem`,
},
},
// 水印
watermark: {
enabled: false,
text: "taoyao",
posx: 0,
posy: 0,
opacity: 1,
},
// Mediasoup
mediasoup: {
// 配置Worker进程数量
workerSize: Object.keys(os.cpus()).length,
// Workerhttps://mediasoup.org/documentation/v3/mediasoup/api/#WorkerSettings
workerSettings: {
// 级别debug | warn | error | none
logLevel: "warn",
logTags: [
"bwe",
"ice",
"rtp",
"rtx",
"svc",
"dtls",
"info",
"rtcp",
"sctp",
"srtp",
"score",
"message",
"simulcast",
],
rtcMinPort: process.env.MEDIASOUP_MIN_PORT || 40000,
rtcMaxPort: process.env.MEDIASOUP_MAX_PORT || 49999,
},
// Routerhttps://mediasoup.org/documentation/v3/mediasoup/api/#RouterOptions
routerOptions: {
mediaCodecs: [
{
kind: "audio",
mimeType: "audio/opus",
clockRate: 48000,
channels: 2,
},
{
kind: "video",
mimeType: "video/VP8",
clockRate: 90000,
parameters: {
"x-google-start-bitrate": 1000,
},
},
{
kind: "video",
mimeType: "video/VP9",
clockRate: 90000,
parameters: {
"profile-id": 2,
"x-google-start-bitrate": 1000,
},
},
{
kind: "video",
mimeType: "video/h264",
clockRate: 90000,
parameters: {
"packetization-mode": 1,
"profile-level-id": "4d0032",
"level-asymmetry-allowed": 1,
"x-google-start-bitrate": 1000,
},
},
{
kind: "video",
mimeType: "video/h264",
clockRate: 90000,
parameters: {
"packetization-mode": 1,
"profile-level-id": "42e01f",
"level-asymmetry-allowed": 1,
"x-google-start-bitrate": 1000,
},
},
],
},
// WebRtcServerhttps://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcServerOptions
webRtcServerOptions: {
listenInfos: [
{
protocol: "udp",
ip: process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
port: 44444,
// 公网地址
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP,
},
{
protocol: "tcp",
ip: process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
port: 44444,
// 公网地址
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP,
},
],
},
// WebRtcTransporthttps://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcTransportOptions
webRtcTransportOptions: {
listenIps: [
{
ip: process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
// 公网地址
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP,
},
],
initialAvailableOutgoingBitrate: 1000000,
minimumAvailableOutgoingBitrate: 600000,
maxSctpMessageSize: 262144,
maxIncomingBitrate: 1500000,
},
// PlainTransporthttps://mediasoup.org/documentation/v3/mediasoup/api/#PlainTransportOptions
plainTransportOptions: {
listenIp: {
ip: process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
// 公网地址
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP,
},
maxSctpMessageSize: 262144,
},
},
};