Condivisione del desktop con Google Hangouts, doppio monitor e GNOME Shell


42

Ho un laptop con uno schermo integrato e un monitor collegato.

Quando avvio un Hangout video di Google e condivido il mio desktop, vorrei poter condividere solo la schermata allegata, ma non so come.

In questo momento ho due monitor: LVDS1corrisponde allo schermo del mio laptop, che è configurato come schermo secondario e DP1che è il mio schermo principale. Ma il problema persiste se cambio lo schermo del mio laptop in modo che sia lo schermo principale.

$ 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  

Ogni volta che inizio a condividere il mio desktop nell'Hangout, viene condivisa solo la schermata integrata (più piccola). La cosa migliore sarebbe poter scegliere quale condividere, ma in caso contrario, come posso condividere solo lo schermo (più grande) allegato?

Scommetto che l'Hangout di Google sta cercando un file di configurazione per scegliere quale schermo condividere, ma non so quale sia il file.

NOTA

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

NOTA 2

L'uso di Google Chrome consente a Google Hangouts di condividere entrambi gli schermi contemporaneamente anziché solo lo schermo del laptop, il che penso sia ancora peggio. Sto ancora cercando di scoprire come posso scegliere quale schermo condividere.


Come esperimento se rendi la tua schermata secondaria la tua primaria tramite la finestra di dialogo delle impostazioni di GNOME, gli hangout vengono aperti sul monitor secondario?
slm

@slm: sembra che stia sempre prendendo lo schermo del mio laptop per la condivisione. Non importa se si tratta dello schermo principale o secondario.
Peque,

Ho lottato con i miei problemi anche con Chrome, Cinnamon e più monitor. È estremamente fastidioso. Proverò a continuare a scavare.
slm

Sto affrontando lo stesso problema, usando Chrome su Linux Mint 15 la condivisione dello schermo degli Hangout mostra entrambi i miei monitor. Davvero fastidioso

1
Non so come ottenere un singolo monitor, non l'ho mai visto. Ma per quanto riguarda entrambi i monitor allo stesso tempo, sospetto che Chromium condivida solo uno "schermo" X. XRandR fa apparire entrambi i monitor su uno schermo X, quindi fino a quando qualcuno di Google non risolve il dubbio che c'è una soluzione alternativa senza usare qualcos'altro come Xinerama.
Jarryd

Risposte:


35

Problema

Si scopre che c'è già un problema aperto nel tracker Chromium su questo fastidioso inconveniente. Le opzioni esistenti offerte da Hangouts presentano importanti svantaggi:

  1. Condividi schermo intero: se hai più schermi (ne ho tre) e condividi "Schermo intero", le altre persone nell'hangout non potranno vedere nulla.

  2. Condividi applicazione: se condividi solo un'applicazione specifica, allora:

    • Dovrai passare manualmente ad altre app durante lo streaming tornando agli Hangout e attivando / disattivando la condivisione dello schermo.
    • In alcune applicazioni, le finestre extra (come le finestre di dialogo per le preferenze, i menu, i popup, ecc.) Non verranno acquisite come parte dell'app che stai condividendo. E la maggior parte delle volte sono questi dialoghi su cui vuoi concentrarti.

Soluzione / soluzione alternativa

Un'ottima soluzione è al commento 18 di questa stessa discussione, quindi tutti i crediti dovrebbero andare all'autore del commento.

Riassumo il processo qui, che ti consente di condividere una parte / area dello schermo multi-monitor in Google Hangouts in esecuzione su una macchina Linux .

  1. Apri VLC in modalità "Screen Capture" e digli quale parte dello schermo X11 vuoi catturare, usando i parametri della riga di comando del modulo schermo appropriato . Puoi farlo tramite la configurazione della GUI O usando la riga di comando:

    vlc \
        --no-video-deco \
        --no-embedded-video \
        --screen-fps=20 \
        --screen-top=32 \
        --screen-left=0 \
        --screen-width=1920 \
        --screen-height=1000 \
        screen://
    
  2. Torna a Google Hangouts e condividi la finestra VLC appena aperta, che ora funge da "portale" per la parte interessante dello schermo.

Note importanti

  1. Spostare la finestra di VLC via dalla parte dello schermo che si sta acquisendo per evitare effetti dall 'inizio .

  2. Non NON ridimensionare o ridurre al minimo la finestra di VLC perché influenzerà la risoluzione della condivisione dello schermo. Se vuoi toglierlo di mezzo mentre esegui lo streaming agli Hangout, spostalo fuori dallo schermo SENZA ridimensionarlo o fingi che non sia lì.

  3. Il puntatore del mouse non viene catturato da VLC in Linux. L'autore della soluzione alternativa suggerisce una soluzione anche per questo: ExtraMaus , un semplice programma in C che crea un "clone" del mouse, ma visibile da VLC.

[TL; DR] Spiegando i valori che ho scelto nell'esempio

  1. Il screen://parametro indica che vogliamo abilitare il modulo Screen Capture. Utilizzerai sempre questo parametro così com'è.

  2. I flag --no-video-decoe --no-embedded-videonascondono rispettivamente il menu della finestra e la barra degli strumenti di controllo video. Non vuoi condividerli tramite Hangouts, quindi ti suggerisco di includere sempre questi parametri.

  3. Il --screen-fps=20non deve essere 20. Si può fare 30 o 10, dal momento che le prestazioni è influenzato principalmente dal modo in Chrome codifica il flusso video.

  4. L'area dello schermo che si desidera catturare segue la convenzione standard [ --screen-top, --screen-left, --screen-width, --screen-height]. Supponendo che avessi due monitor, ciascuno 1920x1080, che fornisse uno schermo "virtuale" totale 3840x1080, se posizionato uno accanto all'altro, avrei potuto fornire le seguenti coordinate:

    1. [ 0, 0, 1920, 1080] per tutto il mio schermo sinistro
    2. [ 0, 1920, 1920, 1080] per tutto il mio schermo a destra
    3. [32, 0, 1920, 1000]per una parte dello schermo sinistro che si estende su tutta la sua larghezza ma ritaglia 32pixel dalla sua parte superiore (dove di solito ho la barra del titolo di una finestra) e 1080-1000-32 = 48pixel dalla sua parte inferiore (dove ho la mia barra delle applicazioni di KDE).

1
Questa è una soluzione decente. Facile da implementare. Grazie
Pierre de LESPINAY,

1
in caso di problemi come: VLC non è in grado di aprire la schermata MRL "//:". Controlla il registro per i dettagli. sudo apt-get install vlc-plugin-access-extra quindi usa la riga di comando dall'alto per aprire il tuo vlc
Leo Yu

1
Sono stato in grado di usarlo a lungo con Debian. Sono su Ubuntu ora e non sembra conoscere gli argomenti:unknown option or missing mandatory argument '--screen-top=0'
Pierre de LESPINAY

1
Ho preso alcune note su come farlo con i3 gist.github.com/kylebrandt/237368095cd9803536ac26529340a60f
Kyle Brandt

Funzionava per me, ma non più. VLC 3.0.7
Lucas Bustamante

5

Penso di aver trovato una soluzione migliore rispetto all'utilizzo di vlc. Dobbiamo solo creare una webcam falsa che mostri il nostro schermo.

# 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

Quindi dobbiamo farlo apparire in cromo nell'elenco delle telecamere disponibili. Possiamo farlo ad esempio disattivando e quindi attivando la webcam interna del laptop. Per prima cosa dovresti scoprire il suo bus USB e il numero di porta. Nel mio caso: Bus è 01 e Port è 4, quindi corro:

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

Successivamente sono in grado di scegliere myFakeCam in Hangouts.

Ho descritto alcune altre idee e altri dettagli nel repository hliss .

Google Chrome non può vedere la fotocamera falsa



-2

Carica xrdp sul tuo laptop. Avviare una connessione rdesktop a localhost. Utilizza la sessione rdesktop per avviare la sessione google + e verrà condivisa solo quella finestra / desktop.

Mi rendo conto che si tratta più di una soluzione, ma farà quello che stai cercando di fare.


Divertente :-). Ma sì, questa non è davvero una soluzione (nemmeno una soluzione). Preferirei semplicemente spegnere lo schermo del laptop prima di avviare l'hangout, che è più veloce e più pulito ... ;-) Di solito si vuole condividere ciò che hanno già aperto sui loro desktop (ciò su cui stanno attualmente lavorando).
Peque,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.