Compartir su escritorio con Google Hangouts, monitor dual y GNOME Shell


42

Tengo una computadora portátil con pantalla incorporada y un monitor conectado.

Cuando inicio un Hangout de video de Google y comparto mi escritorio, me gustaría poder compartir solo la pantalla adjunta, pero no sé cómo.

En este momento tengo dos monitores: LVDS1corresponde a la pantalla de mi computadora portátil, que está configurada como la pantalla secundaria y DP1que es mi pantalla principal. Pero el problema persiste si cambio la pantalla de mi computadora portátil para que sea la pantalla 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  

Cada vez que comienzo a compartir mi escritorio en el Hangout, solo se comparte la pantalla integrada (más pequeña). Lo mejor sería poder elegir cuál compartir, pero si no, ¿cómo podría compartir solo la pantalla adjunta (más grande)?

Apuesto a que Hangout de Google está buscando un archivo de configuración para elegir qué pantalla compartir, pero no sé qué archivo es.

NOTA

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

NOTA 2

El uso de Google Chrome hace que Google Hangouts comparta ambas pantallas al mismo tiempo en lugar de solo la pantalla de la computadora portátil, lo que creo que es aún peor. Todavía estoy tratando de averiguar cómo puedo elegir qué pantalla compartir.


Como experimento, si hace que su pantalla secundaria sea su principal a través del diálogo de configuración de GNOME, ¿se abren los hangouts en el monitor secundario?
slm

@slm: Parece que siempre está tomando la pantalla de mi computadora portátil para compartir. No importa si es el sreen primario o secundario.
Peque

He estado luchando con mis propios problemas con Chrome, Cinnamon y varios monitores también. Es extremadamente molesto. Intentaré seguir cavando.
slm

Estoy enfrentando el mismo problema, usando Chrome en Linux Mint 15, la pantalla compartida de Hangouts muestra mis dos monitores. Realmente molesto

1
No sé cómo se obtiene un solo monitor, nunca lo había visto. Pero en cuanto a ambos monitores al mismo tiempo, sospecho que Chromium solo comparte una "pantalla" X. XRandR hace que ambos monitores aparezcan en una pantalla X, así que hasta que alguien en Google solucione eso dudo que haya una solución sin usar algo más como Xinerama.
Jarryd

Respuestas:


35

Problema

Resulta que ya hay un problema abierto en el rastreador de Chromium sobre este molesto inconveniente. Las opciones existentes que ofrece Hangouts tienen grandes inconvenientes:

  1. Compartir pantalla completa: si tiene varias pantallas (tengo tres) y comparte "Pantalla completa", otras personas en el hangout no podrán ver nada.

  2. Compartir aplicación: si solo comparte una aplicación específica, entonces:

    • Tendrás que cambiar manualmente a otras aplicaciones durante la transmisión volviendo a los hangouts y activando / desactivando Screen Share.
    • En algunas aplicaciones, las ventanas adicionales (como cuadros de diálogo para preferencias, menús, ventanas emergentes, etc.) no se capturarán como parte de la aplicación que está compartiendo. Y la mayoría de las veces es en estos diálogos en los que desea centrarse.

Solución / solución

Una muy buena solución se encuentra en el Comentario 18 de esta misma discusión, por lo que todos los créditos deben ir al autor del comentario.

Resumiré el proceso aquí, que le permite compartir una parte / área de su pantalla de monitores múltiples en Google Hangouts que se ejecuta en una máquina Linux .

  1. Abra VLC en modo "Captura de pantalla" y dígale qué parte de su pantalla X11 desea que capture, utilizando los parámetros de línea de comandos del Módulo de pantalla apropiados . Puede hacer esto a través de la configuración de la GUI O usando la línea de 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. Regrese a Google Hangouts y comparta la ventana VLC recién abierta, que ahora actúa como su "portal" a la parte interesante de su pantalla.

Notas importantes

  1. Mover la ventana VLC distancia de la parte de la pantalla que está capturando para evitar los efectos iniciales .

  2. Hacer NO cambiar el tamaño o minimizar la ventana de VLC, ya que afectará la resolución de su cuota de pantalla. Si quieres sacarlo de tu camino mientras transmites a Hangouts, simplemente muévelo fuera de la pantalla SIN cambiar su tamaño, o simplemente finge que no está allí.

  3. El puntero del mouse no es capturado por VLC en Linux. El autor de la solución sugiere también una solución para esto: ExtraMaus , un simple programa en C que crea un "clon" de su mouse, pero visible por VLC.

[TL; DR] Explicando los valores que elegí en el ejemplo

  1. los screen:// parámetro indica que queremos habilitar el módulo Captura de pantalla. Siempre usará este parámetro tal como está.

  2. Las banderas --no-video-decoy--no-embedded-video ocultar el menú de la ventana y la barra de herramientas de control de video respectivamente. No desea compartirlos a través de Hangouts, por lo que le sugiero que siempre incluya estos parámetros.

  3. los --screen-fps=20 no tiene que ser 20. Se puede hacer 30 o 10, ya que el rendimiento se ve afectado principalmente por la forma en Chrome codifica la secuencia de vídeo.

  4. El área de la pantalla que desea capturar sigue la convención estándar [ --screen-top, --screen-left, --screen-width, --screen-height]. Suponiendo que tuviera dos monitores, cada uno de 1920x1080, con una pantalla "virtual" total de 3840x1080 cuando se coloca uno al lado del otro, podría dar las siguientes coordenadas:

    1. [ 0, 0, 1920, 1080] para toda mi pantalla izquierda
    2. [ 0, 1920, 1920, 1080] para toda mi pantalla derecha
    3. [32, 0, 1920, 1000]para una parte de mi pantalla izquierda que abarca todo su ancho pero recorta 32píxeles desde su parte superior (donde generalmente tengo la barra de título de una ventana) y 1080-1000-32 = 48píxeles desde su parte inferior (donde tengo mi barra de tareas de KDE).

1
Esta es una solución decente. Fácil de implementar. Gracias
Pierre de LESPINAY

1
si se enfrenta a un problema como: VLC no puede abrir la pantalla MRL ': //'. Consulte el registro para más detalles. sudo apt-get install vlc-plugin-access-extra luego use la línea de comando desde arriba para abrir su vlc
Leo Yu

1
Pude usar eso durante mucho tiempo con Debian. Ahora estoy en Ubuntu y no parece conocer los argumentos:unknown option or missing mandatory argument '--screen-top=0'
Pierre de LESPINAY

1
Tomé algunas notas sobre hacer esto con i3 gist.github.com/kylebrandt/237368095cd9803536ac26529340a60f
Kyle Brandt

Esto solía funcionar para mí, pero ya no. VLC 3.0.7
Lucas Bustamante

5

Creo que he encontrado una mejor solución que usar vlc. Solo necesitamos crear una cámara web falsa que muestre nuestra pantalla.

# 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

Luego, necesitamos que aparezca en cromo en la lista de cámaras disponibles. Podemos hacerlo, por ejemplo, desactivando y luego activando la cámara web interna del portátil. Primero debe averiguar su bus usb y su número de puerto. En mi caso: el bus es 01 y el puerto es 4, entonces ejecuto:

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

Después de eso, puedo elegir myFakeCam en Hangouts.

He descrito algunas otras ideas y algunos detalles más en hliss repo .

Google Chrome no puede ver la cámara falsa



-2

Cargue xrdp en su computadora portátil. Inicie una conexión rdesktop a localhost. Use la sesión de rdesktop para iniciar la sesión de google +, y solo se compartirá esa ventana / escritorio.

Me doy cuenta de que esto es más una solución, pero hará lo que está buscando hacer.


Gracioso :-). Pero sí, eso no es realmente una solución (ni siquiera una solución). Prefiero simplemente apagar la pantalla de la computadora portátil antes de comenzar el hangout, que es más rápido y más limpio ... ;-) Por lo general, uno quiere compartir lo que ya han abierto en sus computadoras de escritorio (en lo que están trabajando actualmente).
Peque
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.