Files
taoyao/taoyao-client-media/src/Config.js
2024-01-02 07:18:41 +08:00

184 lines
5.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const os = require("os");
const dotenv = require("dotenv");
if(process.env.NODE_ENV) {
dotenv.config({ path: `.env.${process.env.NODE_ENV}` });
} else {
dotenv.config({ path: `.env` });
}
/**
* 配置
*/
module.exports = {
// 服务名称
name: process.env.NAME || "taoyao-client-media",
// 信令配置
signal: {
// 信令版本
version : process.env.SIGNAL_VERSION || "1.0.0",
// 终端ID
clientId : process.env.CLIENT_ID || "taoyao-client-media",
// 终端类型
clientType: "MEDIA",
// 终端名称
name : process.env.CLIENT_NAME || "桃夭媒体服务",
// 信令地址
host : process.env.SIGNAL_HOST || "127.0.0.1",
// 信令端口
port : process.env.SIGNAL_PORT || 8888,
// 信令协议
scheme : "wss",
// 信令帐号
username : process.env.SIGNAL_USERNAME || "taoyao",
// 信令密码
password : process.env.SIGNAL_PASSWORD || "taoyao",
},
// 录像配置
record: {
// 请求关键帧的最大次数
requestKeyFrameMaxIndex: 16,
// 请求关键帧的文件大小
requestKeyFrameFileSize: 32 * 1024,
},
// Mediasoup
mediasoup: {
// Worker数量
workerSize: process.env.MEDIASOUP_WORKER_SIZE || Object.keys(os.cpus()).length,
// Worker配置https://mediasoup.org/documentation/v3/mediasoup/api/#WorkerSettings
workerSettings: {
// 日志标记
logTags: [
"bwe",
"ice",
"rtp",
"rtx",
"svc",
"dtls",
"info",
"rtcp",
"sctp",
"srtp",
"score",
"message",
"simulcast",
],
// 日志级别debug | warn | error | none
logLevel : "warn",
// RTP端口范围最小
rtcMinPort: process.env.MEDIASOUP_MIN_PORT || 40000,
// RTP端口范围最大
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 : "audio",
mimeType : "audio/pcmu",
clockRate: 8000,
channels : 1,
},
{
kind : "audio",
mimeType : "audio/pcma",
clockRate: 8000,
channels : 1,
},
{
kind : "video",
mimeType : "video/VP8",
clockRate : 90000,
parameters: {
"x-google-start-bitrate": 400,
// "x-google-min-bitrate": 800,
// "x-google-max-bitrate": 1600,
},
},
{
kind : "video",
mimeType : "video/VP9",
clockRate : 90000,
parameters: {
"profile-id" : 2,
"x-google-start-bitrate": 400,
// "x-google-min-bitrate": 800,
// "x-google-max-bitrate": 1600,
},
},
{
kind : "video",
mimeType : "video/h264",
clockRate : 90000,
parameters: {
"packetization-mode" : 1,
"profile-level-id" : "42e01f",
"level-asymmetry-allowed": 1,
"x-google-start-bitrate" : 400,
// "x-google-min-bitrate": 800,
// "x-google-max-bitrate": 1600,
},
},
// 安卓H5失败
{
kind : "video",
mimeType : "video/h264",
clockRate : 90000,
parameters: {
"packetization-mode" : 1,
"profile-level-id" : "4d0032",
"level-asymmetry-allowed": 1,
"x-google-start-bitrate" : 400,
// "x-google-min-bitrate": 800,
// "x-google-max-bitrate": 1600,
},
},
],
},
// WebRtcServer配置https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcServerOptions
webRtcServerOptions: {
listenInfos: [
{
protocol : "udp",
ip : process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
port : process.env.MEDIASOUP_LISTEN_PORT || 44444,
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || "127.0.0.1",
},
{
protocol : "tcp",
ip : process.env.MEDIASOUP_LISTEN_IP || "0.0.0.0",
port : process.env.MEDIASOUP_LISTEN_PORT || 44444,
announcedIp: process.env.MEDIASOUP_ANNOUNCED_IP || "127.0.0.1",
},
],
},
// 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 || "127.0.0.1",
},
],
initialAvailableOutgoingBitrate: 400000,
minimumAvailableOutgoingBitrate: 800000,
maxSctpMessageSize : 262144,
maxIncomingBitrate : 1600000,
},
// 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 || "127.0.0.1",
},
maxSctpMessageSize: 262144,
},
},
};