Partage de votre bureau avec Google Hangouts, double moniteur et GNOME Shell

42

J'ai un ordinateur portable avec un écran intégré et un moniteur attaché.

Lorsque je lance un Hangout vidéo Google et que je partage mon ordinateur, je souhaite pouvoir uniquement partager l'écran connecté, mais je ne sais pas comment.

Actuellement, j'ai deux écrans: LVDS1correspond à l'écran de mon ordinateur portable, configuré comme écran secondaire et DP1qui est mon écran principal. Mais le problème persiste si je change l'écran de mon ordinateur portable pour qu'il soit l'écran principal.

$ xrandr
Screen 0: minimum 320 x 200, current 3286 x 1468, maximum 8192 x 8192
LVDS1 connected 1366x768+1920+700 (normal left inverted right x axis y axis) 344mm x 194mm
   1366x768      60.06*+
   1024x768      60.00  
   800x600       60.32    56.25  
   640x480       59.94  
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 475mm x 267mm
   1920x1080     60.00*+
   1280x1024     75.02    60.02  
   1152x864      75.00  
   1024x768      75.08    60.00  
   800x600       75.00    60.32  
   640x480       75.00    60.00  
   720x400       70.08  

Chaque fois que je commence à partager mon bureau dans Hangout, seul l'écran intégré (plus petit) est partagé. La meilleure chose à faire serait de pouvoir choisir lequel partager, mais sinon, comment pourrais-je partager uniquement l'écran (plus grand) attaché?

Je parie que Google Hangout recherche un fichier de configuration pour choisir l'écran à partager, mais je ne sais pas de quel fichier il s'agit.

REMARQUE

Utilisation de Fedora 20, x86_64, Linux 3.15.10-200, GNOME Shell 3.10.4-8, Firefox 31.

NOTE 2

En utilisant Google Chrome, Google Hangouts partage les deux écrans en même temps au lieu de l'écran de l'ordinateur portable, ce qui est encore pire, à mon avis. J'essaie toujours de savoir comment choisir un écran à partager.

Peque
la source
A titre expérimental, si vous faites de votre écran secondaire votre écran principal via la boîte de dialogue des paramètres GNOME, les hangouts sont-ils ouverts sur le moniteur secondaire?
slm
@slm: Il semble que cela prend toujours l'écran de mon ordinateur portable pour le partage. Peu importe si c'est l'écran principal ou secondaire.
Peque
Je me suis également battu avec mes propres problèmes avec Chrome, Cinnamon et plusieurs moniteurs. C'est extrêmement agaçant. Je vais essayer de continuer à creuser.
slm
Je suis confronté au même problème. À l’aide de Chrome sous Linux Mint 15, le partage d’écran des hangouts affiche les deux moniteurs. Vraiment énervant
1
Je ne sais pas comment vous obtenez un seul moniteur, je n'ai jamais vu ça. Mais en ce qui concerne les deux écrans en même temps, je soupçonne que Chromium ne partage qu'un "écran" en X. XRandR fait en sorte que les deux moniteurs apparaissent sur un seul écran X. Par conséquent, jusqu'à ce que quelqu'un chez Google répare les erreurs, je doute qu'il existe une solution de contournement sans utiliser quelque chose d'autre comme Xinerama.
Jarryd

Réponses:

35

Problème

Il s'avère que le suivi des traces de chrome pose déjà un problème concernant cet inconvénient gênant. Les options existantes proposées par les hangouts présentent des inconvénients majeurs:

  1. Partager tout l'écran: Si vous avez plusieurs écrans (j'en ai trois) et partagez "Tout l'écran", les autres personnes participant à la bulle ne pourront rien voir.

  2. Partager une application: Si vous ne partagez qu'une application spécifique, alors:

    • Vous devrez basculer manuellement vers d'autres applications pendant la diffusion en revenant dans les hangouts et en activant / désactivant le partage d'écran.
    • Dans certaines applications, les fenêtres supplémentaires (telles que les boîtes de dialogue pour les préférences, les menus, les fenêtres contextuelles, etc.) ne seront pas capturées dans le cadre de l'application que vous partagez. Et la plupart du temps, ce sont ces dialogues sur lesquels vous souhaitez vous concentrer.

Solution / solution de contournement

Le commentaire 18 de la même discussion est une excellente solution de contournement . Tous les crédits doivent en aller à l'auteur du commentaire.

Je vais résumer le processus ici, qui vous permet de partager une partie / zone de votre écran multi-moniteur dans Google Hangouts fonctionnant sur une machine Linux .

  1. Ouvrez VLC en mode "Capture d'écran" et indiquez-lui la partie de votre écran X11 que vous souhaitez capturer, à l'aide des paramètres de ligne de commande du module d'écran appropriés . Vous pouvez le faire via la configuration de l'interface graphique OU en utilisant la ligne de commande:

    vlc \
        --no-video-deco \
        --no-embedded-video \
        --screen-fps=20 \
        --screen-top=32 \
        --screen-left=0 \
        --screen-width=1920 \
        --screen-height=1000 \
        screen://
    
  2. Retournez dans Google Hangouts et partagez la fenêtre VLC récemment ouverte, qui sert désormais de "portail" à la partie intéressante de votre écran.

Notes IMPORTANTES

  1. Déplacez la fenêtre VLC loin de la partie de l'écran que vous capturez pour éviter les effets de lancement .

  2. Ne redimensionnez PAS OU minimisez la fenêtre VLC car cela affecterait la résolution de votre partage d'écran. Si vous souhaitez vous en débarrasser tout en diffusant en flux continu dans les hangouts, déplacez-le simplement hors écran, SANS le redimensionner, ou prétendez simplement que ce n'est pas le cas.

  3. Le pointeur de la souris n'est pas capturé par VLC sous Linux. L'auteur de la solution de contournement suggère une solution à cela: ExtraMaus , un programme simple en C qui crée un "clone" de votre souris, mais visible par VLC.

[TL; DR] Expliquer les valeurs que j'ai choisies dans l'exemple

  1. Le screen://paramètre indique que nous souhaitons activer le module de capture d'écran. Vous utiliserez toujours ce paramètre tel quel.

  2. Les drapeaux --no-video-decoet --no-embedded-videomasquent respectivement le menu de la fenêtre et la barre d’outils de contrôle vidéo. Vous ne souhaitez pas partager ces informations via Hangouts, je vous suggère donc de toujours inclure ces paramètres.

  3. Il --screen-fps=20n'est pas nécessaire que le chiffre soit égal à 20. Vous pouvez en définir 30 ou 10, car les performances sont principalement affectées par la manière dont Chrome code le flux vidéo.

  4. La zone de l'écran que vous voulez capturé suit la convention standard [ --screen-top, --screen-left, --screen-width, --screen-height]. En supposant que je dispose de deux écrans, chacun en 1920x1080, ce qui donne un écran «virtuel» total de 3840x1080, lorsque je les place l'un à côté de l'autre, je pourrais donner les coordonnées suivantes:

    1. [ 0, 0, 1920, 1080] pour tout mon écran gauche
    2. [ 0, 1920, 1920, 1080] pour tout mon écran de droite
    3. [32, 0, 1920, 1000]pour une partie de mon écran gauche qui couvre toute sa largeur mais qui élimine les 32pixels de son sommet (où la barre de titre de la fenêtre est généralement utilisée) et les 1080-1000-32 = 48pixels de son bas (où se trouve la barre de tâches KDE).
Kostas Filios
la source
1
C'est une solution de contournement décente. Facile à mettre en œuvre. Remerciements
Pierre de LESPINAY le
1
si le problème est tel que: VLC ne parvient pas à ouvrir l'écran 'MRL: //'. Consultez le journal pour plus de détails. sudo apt-get install vlc-plugin-access-extra puis utilisez la ligne de commande ci-dessus pour ouvrir votre vlc
Leo Yu
1
J'ai pu l'utiliser pendant longtemps avec Debian. Je suis dans Ubuntu maintenant et il semble que les arguments ne unknown option or missing mandatory argument '--screen-top=0'
soient
1
Je pris quelques notes sur le faire avec i3 gist.github.com/kylebrandt/237368095cd9803536ac26529340a60f
Kyle Brandt
Cela fonctionnait pour moi, mais plus maintenant. VLC 3.0.7
Lucas Bustamante Le
5

Je pense avoir trouvé une meilleure solution de contournement que d’utiliser vlc. Nous avons juste besoin de créer une fausse webcam qui montre notre écran.

# Unload
sudo rmmod v4l2loopback
# Load module
sudo modprobe v4l2loopback video_nr=7 'card_label=myFakeCam' 'exclusive_caps=1'

ffmpeg -f x11grab -r 20 -s 1920x1080 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video7

Ensuite, nous devons le faire apparaître en chrome dans la liste des caméras disponibles. Nous pouvons le faire par exemple en désactivant puis en activant la webcam interne du portable. Tout d’abord, vous devriez connaître son bus USB et son numéro de port. Dans mon cas: Bus est 01 et le port est 4, alors je lance:

sudo sh -c "echo '0'> /sys/bus/usb/devices/1-4/bConfigurationValue"
sudo sh -c "echo '1'> /sys/bus/usb/devices/1-4/bConfigurationValue"

Après cela, je peux choisir myFakeCam dans Hangouts.

J'ai décrit d'autres idées et d'autres détails dans son rapport .

Google Chrome ne peut pas voir de faux appareil photo

Un requin
la source
-2

Chargez xrdp sur votre ordinateur portable. Démarrez une connexion rdesktop à localhost. Utilisez la session rdesktop pour lancer la session Google +, et seule cette fenêtre / ce bureau sera partagé.

Je me rends compte que c'est plus une solution de contournement, mais ce que vous cherchez à faire sera réalisé.

billq
la source
Marrant :-). Mais oui, ce n’est pas vraiment une solution (pas même une solution de rechange). Je préférerais simplement simplement éteindre l'écran de l'ordinateur portable avant de commencer la bulle, ce qui est plus rapide et plus propre ... ;-) On veut généralement partager ce qu'ils ont déjà ouvert sur leur ordinateur de bureau (ce sur quoi ils travaillent actuellement).
Peque