main
parent
67317d8918
commit
af403afb01
@ -1,9 +1,9 @@
|
||||
node_modules/
|
||||
|
||||
/server/config.*
|
||||
# /server/config.*
|
||||
!/server/config.example.js
|
||||
/server/public/
|
||||
/server/certs/
|
||||
# /server/certs/
|
||||
/server/mediasoup_valgrind_*
|
||||
|
||||
/.vscode/
|
||||
|
@ -0,0 +1,16 @@
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIICijCCAXICAQAwRTELMAkGA1UEBhMCY24xEzARBgNVBAgMClNvbWUtU3RhdGUx
|
||||
ITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcN
|
||||
AQEBBQADggEPADCCAQoCggEBAKNYRJ97bWmNrlCAuGzRXY/FHmqgKkC+fLgP3jjk
|
||||
YH91D8HQ64d8aF2qBqswgocsNrCxrrhQdGZPiyJZUbONxJIzw8pT/GnpnqyFNrv/
|
||||
sB8Mwwm/EnZtC9K63Z4PP6pyjaKrIYR3iLtCoWcrk9uBcK4cg3WdSkc8pNSxC+fH
|
||||
HJrUBkEyDcyTsRiJyH3vCBMHW6DMnriYoFPyUXv4NS6ACdh/aL7Ztd2Kxzp8yOyI
|
||||
TKuqij5JcHx6m5o+YMCccFBb4rgdqab9TeS5mrEGdMjtXmSNcPqVlbI3z1sadFNU
|
||||
9nFo5M+P16gJg1+owKnHrLccKhrrNHF9bGP3MqBpXeAbVMcCAwEAAaAAMA0GCSqG
|
||||
SIb3DQEBCwUAA4IBAQBuzhDv1RZKf/TFHJdz8WtK3ERO4uysvbwuAFqkVK9naRX+
|
||||
LtN6bbfi/DnDoewnAp3YHKLZ/mGJNcjUtmmQBTeA99y42ilTWmnuqCd2rZueOz59
|
||||
1WR2+aF9kZRY2/KkNAKh3DZEV79wdRDGa24J6c6QLiEFR/xr/rgVE6fZDx/+hbUC
|
||||
Vbazl/mFYj9rEwb41UdaROYcWq1rtcEGYODqDxIku2F9PqJjqhxskRK2Z2ZnQRBN
|
||||
2arr7JLnYg615zxYsZlnHs+WIkIuWZUdTOC8vmoe8QK3WhVqosQQAEFmm9at2Uqp
|
||||
Kelwz72fgcJ8Q9NEZUgjJ0oA2B2nQZ1zefvXBAeu
|
||||
-----END CERTIFICATE REQUEST-----
|
@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDOTCCAiGgAwIBAgIUWucupnHeoLvK7/kdzCDEN7/YalMwDQYJKoZIhvcNAQEL
|
||||
BQAwRTELMAkGA1UEBhMCY24xEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
|
||||
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDA5MDYwNjUxMjNaFw0yNDEw
|
||||
MDYwNjUxMjNaMEUxCzAJBgNVBAYTAmNuMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
|
||||
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
|
||||
AQUAA4IBDwAwggEKAoIBAQCjWESfe21pja5QgLhs0V2PxR5qoCpAvny4D9445GB/
|
||||
dQ/B0OuHfGhdqgarMIKHLDawsa64UHRmT4siWVGzjcSSM8PKU/xp6Z6shTa7/7Af
|
||||
DMMJvxJ2bQvSut2eDz+qco2iqyGEd4i7QqFnK5PbgXCuHIN1nUpHPKTUsQvnxxya
|
||||
1AZBMg3Mk7EYich97wgTB1ugzJ64mKBT8lF7+DUugAnYf2i+2bXdisc6fMjsiEyr
|
||||
qoo+SXB8epuaPmDAnHBQW+K4Hamm/U3kuZqxBnTI7V5kjXD6lZWyN89bGnRTVPZx
|
||||
aOTPj9eoCYNfqMCpx6y3HCoa6zRxfWxj9zKgaV3gG1THAgMBAAGjITAfMB0GA1Ud
|
||||
DgQWBBQSCOzW2++fMyu3K8Vj2MIvSaqt9TANBgkqhkiG9w0BAQsFAAOCAQEAQPF1
|
||||
BgqY0e/Rz4w/mJheybVnPFQJJ7M1VhH6bfc5AI68ZZsNjjCyvfbJSxtSaVAgatkD
|
||||
ZAmAfCEHDNZfVB1QOwPIK1SR0sfShjqHfkDEoHIKXyDb+t1dMdGOToGA/TG04Ax6
|
||||
+j7NTWlFGO2E/WS31vDtHPiz0kMiFxGTxPsQYtuRvXE9hb3+kjGX3JEiIy/0h10O
|
||||
SVLbOIQhOG34CLIR5LSCQkiXeWjeu9FLwFr60j3PYmUc2Lwj1OUxug+reTwCLzGM
|
||||
SYwnUvIDF9QlIc1pwMfVp0wVVga/OYbpVbvO9QOFUQv7ziO6fsQrR6tQqK0UZ0sc
|
||||
XCWDYfvrI+yqp5QUYg==
|
||||
-----END CERTIFICATE-----
|
@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCjWESfe21pja5Q
|
||||
gLhs0V2PxR5qoCpAvny4D9445GB/dQ/B0OuHfGhdqgarMIKHLDawsa64UHRmT4si
|
||||
WVGzjcSSM8PKU/xp6Z6shTa7/7AfDMMJvxJ2bQvSut2eDz+qco2iqyGEd4i7QqFn
|
||||
K5PbgXCuHIN1nUpHPKTUsQvnxxya1AZBMg3Mk7EYich97wgTB1ugzJ64mKBT8lF7
|
||||
+DUugAnYf2i+2bXdisc6fMjsiEyrqoo+SXB8epuaPmDAnHBQW+K4Hamm/U3kuZqx
|
||||
BnTI7V5kjXD6lZWyN89bGnRTVPZxaOTPj9eoCYNfqMCpx6y3HCoa6zRxfWxj9zKg
|
||||
aV3gG1THAgMBAAECggEACdGDyR+pg09pi5vmeglZBGFRjhCJOacO5slyuXIQ0th9
|
||||
1U/yOGH5Vq1NBVE/J1I4X1qZfqlnYGxQ7VmibZaMmvUoRFXUCvxooJoeoMz3uzC7
|
||||
MITJs/tOBfaxh49ca6nDFboPo7TDr+3gtyDexweldvHD0ngH6kxHjs6tloWuFH2o
|
||||
IWUpk1tQWWCGL8mNoYPjpkOVSQp9oU5s6ZrLqfY0smeTy4vv1/xXVB8UC6r5HBDc
|
||||
cf6urspf72ucCjEMG8+y9s3RCTb/Vw02LVsZGF4N6DibI37NwRojIjN1yQG1hvgS
|
||||
P2zOKMmcoahOXt7bI17tsTTIDSObDl/F6qRDOrTXkQKBgQDfmS7+ZjUNS//JUHE0
|
||||
PkXlYr8Vgbp6jMrwVJiwWHmPIyJOW+NvLTVXPgcasqRM8A8LLGh4MI5hfI6dc7R6
|
||||
1sQ9LUnPzTPN2UTND1VokF8Tt4MHhs9Kg+Ujb4gjunIi+I/O9t7Fxx6IQB2jRhat
|
||||
COo7Id3AmTzMLPjdkygpuuMz8wKBgQC7A9xlRvIL3GzpXZkHfX1TGM0OZO96Dkmt
|
||||
fP/zb4egwBcUNHMhpuukYLpLZkZLF4rTqzcCmTrxQjzyXOiW1+uwCYrGM40+fiRF
|
||||
bZ7HdSJl0nBk8KMp3wET4A1a69cuPAwr7lQUrYHqUVkeDKkzLXnTPKZu/2VlH18Z
|
||||
PPFHnxWU3QKBgA6ktZMrlmXciE/i2McXHPS81s7NxCyqc8/xel5yLOPW5TREiEyL
|
||||
pWalRUnWUTRItHOC4QSeCXUQ9zYQkc1Jq2hmQuM9CRt+Eydqzakfa1qbNhWUGpdC
|
||||
tAryDvRoDXmE1cY0HLrPI4zAxjAfMvT6FHzy5tbqMjUc7N9197dj6eVJAoGANxpG
|
||||
IBktTE1gUcpgQpK5EHjoQmt/HCmFj/aau7GK9tRieHOT0MCMAdz2Ry0VXR7Mqt1x
|
||||
0fQwJ9Hqf0bcyUVJjo7hMtERtu4X5dUMyZw7zGCa+ULl8HpiqOaFSNrghiDvPSp1
|
||||
37nX46Cgb3gvioLFuHXQXDgoOglqTddlCENZaokCgYBg6Pm3+5LlXvnspXCOtKJK
|
||||
m5LQ5BVehA+A/u03Kv08CklvxM/CnXYuCj4X34IM16Ek6mpU0c20U5bx2O/aiztk
|
||||
rOlRnyuHc3+BAldq2oSgW3u21NrX8YFDwovzZhkiuVCEoYS/EndOCdPIwrdI0S/Q
|
||||
yAGgNQYMOiO+hJEZBsVHGA==
|
||||
-----END PRIVATE KEY-----
|
@ -0,0 +1,194 @@
|
||||
/**
|
||||
* IMPORTANT (PLEASE READ THIS):
|
||||
*
|
||||
* This is not the "configuration file" of mediasoup. This is the configuration
|
||||
* file of the mediasoup-demo app. mediasoup itself is a server-side library, it
|
||||
* does not read any "configuration file". Instead it exposes an API. This demo
|
||||
* application just reads settings from this file (once copied to config.js) and
|
||||
* calls the mediasoup API with those settings when appropriate.
|
||||
*/
|
||||
|
||||
const os = require('os');
|
||||
|
||||
module.exports =
|
||||
{
|
||||
// Listening hostname (just for `gulp live` task).
|
||||
domain : process.env.DOMAIN || 'localhost',
|
||||
// Signaling settings (protoo WebSocket server and HTTP API server).
|
||||
https :
|
||||
{
|
||||
listenIp : '192.168.0.167', // 换成你的IP地址
|
||||
// NOTE: Don't change listenPort (client app assumes 4443).
|
||||
listenPort : process.env.PROTOO_LISTEN_PORT || 4443,
|
||||
// NOTE: Set your own valid certificate files.
|
||||
tls :
|
||||
{
|
||||
cert : process.env.HTTPS_CERT_FULLCHAIN || `${__dirname}/certs/fullchain.pem`,
|
||||
key : process.env.HTTPS_CERT_PRIVKEY || `${__dirname}/certs/privkey.pem`
|
||||
}
|
||||
},
|
||||
// mediasoup settings.
|
||||
mediasoup :
|
||||
{
|
||||
// Number of mediasoup workers to launch.
|
||||
numWorkers : Object.keys(os.cpus()).length,
|
||||
// mediasoup WorkerSettings.
|
||||
// See https://mediasoup.org/documentation/v3/mediasoup/api/#WorkerSettings
|
||||
workerSettings :
|
||||
{
|
||||
dtlsCertificateFile : process.env.WORKER_CERT_FULLCHAIN,
|
||||
dtlsPrivateKeyFile : process.env.WORKER_CERT_PRIVKEY,
|
||||
logLevel : 'warn',
|
||||
logTags :
|
||||
[
|
||||
'info',
|
||||
'ice',
|
||||
'dtls',
|
||||
'rtp',
|
||||
'srtp',
|
||||
'rtcp',
|
||||
'rtx',
|
||||
'bwe',
|
||||
'score',
|
||||
'simulcast',
|
||||
'svc',
|
||||
'sctp'
|
||||
],
|
||||
disableLiburing: false
|
||||
},
|
||||
// mediasoup Router options.
|
||||
// See 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
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
// mediasoup WebRtcServer options for WebRTC endpoints (mediasoup-client,
|
||||
// libmediasoupclient).
|
||||
// See https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcServerOptions
|
||||
// NOTE: mediasoup-demo/server/lib/Room.js will increase this port for
|
||||
// each mediasoup Worker since each Worker is a separate process.
|
||||
webRtcServerOptions :
|
||||
{
|
||||
listenInfos :
|
||||
[
|
||||
{
|
||||
protocol : 'udp',
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || '192.168.0.167', // 换成你的IP地址
|
||||
announcedAddress : process.env.MEDIASOUP_ANNOUNCED_IP,
|
||||
port : 44444
|
||||
},
|
||||
{
|
||||
protocol : 'tcp',
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || '192.168.0.167', // 换成你的IP地址
|
||||
announcedAddress : process.env.MEDIASOUP_ANNOUNCED_IP,
|
||||
port : 44444
|
||||
}
|
||||
]
|
||||
},
|
||||
// mediasoup WebRtcTransport options for WebRTC endpoints (mediasoup-client,
|
||||
// libmediasoupclient).
|
||||
// See https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcTransportOptions
|
||||
webRtcTransportOptions :
|
||||
{
|
||||
// listenInfos is not needed since webRtcServer is used.
|
||||
// However passing MEDIASOUP_USE_WEBRTC_SERVER=false will change it.
|
||||
listenInfos :
|
||||
[
|
||||
{
|
||||
protocol : 'udp',
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || '192.168.0.167', // 换成你的IP地址
|
||||
announcedAddress : process.env.MEDIASOUP_ANNOUNCED_IP,
|
||||
portRange :
|
||||
{
|
||||
min : process.env.MEDIASOUP_MIN_PORT || 40000,
|
||||
max : process.env.MEDIASOUP_MAX_PORT || 49999,
|
||||
}
|
||||
},
|
||||
{
|
||||
protocol : 'tcp',
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || '192.168.0.167', // 换成你的IP地址
|
||||
announcedAddress : process.env.MEDIASOUP_ANNOUNCED_IP,
|
||||
portRange :
|
||||
{
|
||||
min : process.env.MEDIASOUP_MIN_PORT || 40000,
|
||||
max : process.env.MEDIASOUP_MAX_PORT || 49999,
|
||||
}
|
||||
}
|
||||
],
|
||||
initialAvailableOutgoingBitrate : 1000000,
|
||||
minimumAvailableOutgoingBitrate : 600000,
|
||||
maxSctpMessageSize : 262144,
|
||||
// Additional options that are not part of WebRtcTransportOptions.
|
||||
maxIncomingBitrate : 1500000
|
||||
},
|
||||
// mediasoup PlainTransport options for legacy RTP endpoints (FFmpeg,
|
||||
// GStreamer).
|
||||
// See https://mediasoup.org/documentation/v3/mediasoup/api/#PlainTransportOptions
|
||||
plainTransportOptions :
|
||||
{
|
||||
listenInfo :
|
||||
{
|
||||
protocol : 'udp',
|
||||
ip : process.env.MEDIASOUP_LISTEN_IP || '192.168.0.167', // 换成你的IP地址
|
||||
announcedAddress : process.env.MEDIASOUP_ANNOUNCED_IP,
|
||||
portRange :
|
||||
{
|
||||
min : process.env.MEDIASOUP_MIN_PORT || 40000,
|
||||
max : process.env.MEDIASOUP_MAX_PORT || 49999,
|
||||
}
|
||||
},
|
||||
maxSctpMessageSize : 262144
|
||||
}
|
||||
}
|
||||
};
|
Loading…
Reference in new issue