J'ai un ordinateur portable avec un écran intégré et un moniteur connecté.
Lorsque je démarre un Hangout vidéo de Google et partage mon bureau, j'aimerais pouvoir partager uniquement l'écran ci-joint, mais je ne sais pas comment.
En ce moment, j'ai deux moniteurs: LVDS1
correspond à l'écran de mon ordinateur portable, qui est configuré comme écran secondaire et DP1
qui est mon écran principal. Mais le problème persiste si je change l'écran de mon ordinateur portable en é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 le Hangout, seul l'écran intégré (plus petit) est partagé. La meilleure chose serait de pouvoir choisir lequel partager, mais sinon, comment pourrais-je partager uniquement l'écran ci-joint (plus grand)?
Je parie que le Hangout de Google recherche un fichier de configuration pour choisir l'écran à partager, mais je ne sais pas de quel fichier il s'agit.
Utilisation de Fedora 20, x86_64, Linux 3.15.10-200, GNOME Shell 3.10.4-8, Firefox 31.
L'utilisation de Google Chrome permet à Google Hangouts de partager les deux écrans en même temps au lieu de seulement l'écran de l'ordinateur portable, ce qui est encore pire, je pense. Je cherche toujours à savoir comment choisir l'écran à partager.
Il s'avère qu'il y a déjà un problème ouvert dans le tracker Chromium à propos de cet inconvénient gênant. Les options existantes proposées par Hangouts présentent des inconvénients majeurs:
Partager tout l'écran: Si vous avez plusieurs écrans (j'en ai trois) et partagez "Tout l'écran", les autres personnes présentes dans le hangout ne pourront pas voir quoi que ce soit.
Partager l'application: Si vous ne partagez qu'une application spécifique, alors:
Une très bonne solution de contournement se trouve à Commentaire 18 de cette même discussion, donc tous les crédits doivent 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 .
Ouvrez VLC en mode "Capture d'écran" et dites-lui quelle partie de votre écran X11 vous voulez qu'il capture, en utilisant la commande appropriée Screen Module -line parameters . Vous pouvez soit le faire via la configuration GUI OR 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://
Si VLC se plaint de ne pas pouvoir ouvrir screen://
, veuillez vous assurer que le module correct est installé. Pour moi, sur ubuntu 19.10, j'ai dû installer un package supplémentaire vlc-plugin-extra-access
en appelant apt install vlc-plugin-access-extra
.
Revenez à Google Hangouts et partagez la fenêtre VLC récemment ouverte, qui agit désormais comme votre "portail" vers la partie intéressante de votre écran.
Éloignez la fenêtre VLC de la partie de l'écran que vous capturez pour éviter effets initiaux .
Faites [~ # ~] pas [~ # ~] redimensionnez OR minimisez la fenêtre VLC, car elle affectera la résolution de votre partage d'écran. Si vous voulez le supprimer de votre chemin lors de la diffusion vers les hangouts, déplacez-le simplement hors de l'écran SANS le redimensionner, ou faites simplement comme s'il n'était pas là.
Le pointeur de la souris n'est pas capturé par VLC sous Linux. L'auteur de la solution de contournement propose également une solution: ExtraMaus , un simple programme C qui crée un "clone" de votre souris, mais visible par VLC.
Le screen://
le paramètre indique que nous voulons activer le module Capture d'écran. Vous utiliserez toujours ce paramètre tel quel.
Les drapeaux --no-video-deco
et --no-embedded-video
masquer respectivement le menu de la fenêtre et la barre d'outils de contrôle vidéo. Vous ne voulez pas les partager via Hangouts, je vous suggère donc de toujours inclure ces paramètres.
Le --screen-fps=20
ne doit pas nécessairement être 20. Vous pouvez le faire 30 ou 10, car les performances sont principalement affectées par la façon dont Chrome code le flux vidéo.
La zone de l'écran que vous souhaitez capturer suit la convention standard [--screen-top
, --screen-left
, --screen-width
, --screen-height
]. En supposant que j'avais deux moniteurs, chacun de 1920x1080, donnant un écran "virtuel" total de 3840x1080 lorsqu'ils sont placés l'un à côté de l'autre, je pourrais donner les coordonnées suivantes:
[ 0, 0, 1920, 1080]
pour tout mon écran gauche[ 0, 1920, 1920, 1080]
pour tout mon écran de droite[32, 0, 1920, 1000]
pour une partie de mon écran de gauche qui s'étend sur toute sa largeur mais qui coupe 32
pixels de son haut (où j'ai généralement la barre de titre d'une fenêtre) et 1080-1000-32 = 48
pixels de son bas (où j'ai ma barre des tâches KDE).Je pense que j'ai 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 de l'ordinateur portable. Vous devez d'abord découvrir son bus usb et son numéro de port. Dans mon cas: le bus est 01 et le port est 4, donc 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 quelques autres idées et quelques détails supplémentaires dans hliss repo .
Version modifiée du script dans hliss repo pour pouvoir sélectionner la zone d'une fenêtre ou dessiner la zone avec un rectangle.
https://Gist.github.com/adrianlzt/216aabb9568b162c92317f768d889c76