diff --git a/app/public/config/config.example.js b/app/public/config/config.example.js index a375cbb..6d78565 100644 --- a/app/public/config/config.example.js +++ b/app/public/config/config.example.js @@ -22,7 +22,19 @@ var config = * veryhigh ~ 1920x1080 * ultra ~ 3840x2560 **/ - defaultResolution : 'medium', + defaultResolution : 'medium', + // Enable or disable simulcast for webcam video + simulcast : true, + // Enable or disable simulcast for screen sharing video + simulcastSharing : false, + // Simulcast encoding layers and levels + simulcastEncodings : + [ + { scaleResolutionDownBy: 4 }, + { scaleResolutionDownBy: 2 }, + { scaleResolutionDownBy: 1 } + ], + // Socket.io request timeout requestTimeout : 10000, transportOptions : { diff --git a/app/src/RoomClient.js b/app/src/RoomClient.js index 1efcab2..f5693ae 100644 --- a/app/src/RoomClient.js +++ b/app/src/RoomClient.js @@ -157,9 +157,15 @@ export default class RoomClient // Whether simulcast should be used. this._useSimulcast = useSimulcast; + if ('simulcast' in window.config) + this._useSimulcast = window.config.simulcast; + // Whether simulcast should be used for sharing this._useSharingSimulcast = useSharingSimulcast; + if ('simulcastSharing' in window.config) + this._useSharingSimulcast = window.config.simulcastSharing; + this._muted = muted; // This device @@ -2574,8 +2580,16 @@ export default class RoomClient } else { - encodings = VIDEO_SIMULCAST_ENCODINGS - .map((encoding) => ({ ...encoding, dtx: true })); + if ('simulcastEncodings' in window.config) + { + encodings = window.config.simulcastEncodings + .map((encoding) => ({ ...encoding, dtx: true })); + } + else + { + encodings = VIDEO_SIMULCAST_ENCODINGS + .map((encoding) => ({ ...encoding, dtx: true })); + } } this._screenSharingProducer = await this._sendTransport.produce( @@ -2743,7 +2757,12 @@ export default class RoomClient if (firstVideoCodec.mimeType.toLowerCase() === 'video/vp9') encodings = VIDEO_KSVC_ENCODINGS; else - encodings = VIDEO_SIMULCAST_ENCODINGS; + { + if ('simulcastEncodings' in window.config) + encodings = window.config.simulcastEncodings; + else + encodings = VIDEO_SIMULCAST_ENCODINGS; + } this._webcamProducer = await this._sendTransport.produce( {