Esta es una aplicación de escritorio remoto a través de Chrome donde el usuario comparte su pantalla. El problema que tengo es que cuando el usuario tiene 2 o más pantallas, WebRTC solo obtiene la resolución de la primera pantalla. Puedo ver esto iniciando sesión en localStream.getVideoTracks()[0].getSettings() :
aspectRatio: 1.7777777777777777 deviceId: "screen:-1:0" frameRate: 30 height: 1080 resizeMode: "crop-and-scale" width: 1920 Ambas pantallas terminan transmitiéndose en una conexión ( getVideoTrracks()[1] no existe), pero solo se muestra como una pantalla. El ancho debe ser de 1920 * 2 pantallas a 3840.
Mis restricciones y la obtención de medios se establecen como:
let mediaConstraints = { audio: false, resizeMode: "none", video: { mandatory: { chromeMediaSource: "desktop", }, }, }; localStream = await navigator.mediaDevices.getUserMedia(mediaConstraints); Noté que se configuró crop-and-scale en lugar de none , y pensé que eso podría estar causando un problema, pero parece que no puedo configurarlo para este tipo de restricción. aspectRatio tampoco hizo nada. Establecer resizeMode dentro de mandatory genera un error. ¿Dónde me estoy equivocando aquí?