149 lines
3.4 KiB
JavaScript
149 lines
3.4 KiB
JavaScript
/**
|
||
* 配置
|
||
*/
|
||
const os = require('os');
|
||
|
||
module.exports =
|
||
{
|
||
domain : process.env.DOMAIN || 'localhost',
|
||
// Signal
|
||
https :
|
||
{
|
||
listenIp : '0.0.0.0',
|
||
listenPort : process.env.PROTOO_LISTEN_PORT || 4443,
|
||
tls :
|
||
{
|
||
cert : process.env.HTTPS_CERT_FULLCHAIN || `${__dirname}/certs/fullchain.pem`,
|
||
key : process.env.HTTPS_CERT_PRIVKEY || `${__dirname}/certs/privkey.pem`
|
||
}
|
||
},
|
||
// Mediasoup
|
||
mediasoup :
|
||
{
|
||
// 按照CPU数量配置进程数量
|
||
numWorkers : Object.keys(os.cpus()).length,
|
||
// Worker:https://mediasoup.org/documentation/v3/mediasoup/api/#WorkerSettings
|
||
workerSettings :
|
||
{
|
||
logLevel : 'warn',
|
||
logTags :
|
||
[
|
||
'bwe',
|
||
'ice',
|
||
'rtp',
|
||
'rtx',
|
||
'svc',
|
||
'dtls',
|
||
'info',
|
||
'sctp',
|
||
'srtp',
|
||
'rtcp',
|
||
'score',
|
||
'message',
|
||
'simulcast'
|
||
],
|
||
rtcMinPort : process.env.MEDIASOUP_MIN_PORT || 40000,
|
||
rtcMaxPort : process.env.MEDIASOUP_MAX_PORT || 49999
|
||
},
|
||
// Router:https://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
|
||
}
|
||
}
|
||
]
|
||
},
|
||
// WebRtcServer:https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcServerOptions
|
||
webRtcServerOptions :
|
||
{
|
||
listenInfos :
|
||
[
|
||
{
|
||
protocol : 'udp',
|
||
ip : process.env.MEDIASOUP_LISTEN_IP || '0.0.0.0',
|
||
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP,
|
||
port : 44444
|
||
},
|
||
{
|
||
protocol : 'tcp',
|
||
ip : process.env.MEDIASOUP_LISTEN_IP || '0.0.0.0',
|
||
announcedIp : process.env.MEDIASOUP_ANNOUNCED_IP,
|
||
port : 44444
|
||
}
|
||
],
|
||
},
|
||
// WebRtcTransport:https://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
|
||
},
|
||
// PlainTransport:https://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
|
||
}
|
||
}
|
||
}; |