Compartilhar sua área de trabalho com o Google Hangouts, o monitor duplo e o GNOME Shell

26

Eu tenho um laptop com uma tela embutida e um monitor conectado.

Quando inicio um Hangout de vídeo do Google e compartilho minha área de trabalho, gostaria de poder compartilhar apenas a tela anexada, mas não sei como.

Neste momento, tenho dois monitores: LVDS1 corresponde à tela do meu laptop, que é configurada como a tela secundária e DP1 , que é minha tela principal. Mas o problema ainda permanece se eu mudar a tela do meu laptop para ser a tela 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  

Sempre que eu começo a compartilhar minha área de trabalho no Hangout, somente a tela integrada (menor) é compartilhada. A melhor coisa seria poder escolher qual deles compartilhar, mas se não, como eu poderia compartilhar apenas a tela anexada (maior)?

Aposto que o Hangout do Google está procurando um arquivo de configuração para escolher qual tela compartilhar, mas não sabe qual arquivo é.

NOTA

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

NOTA 2

O uso do Google Chrome faz o Google Hangouts compartilhar as duas telas ao mesmo tempo, em vez de apenas a tela do laptop, o que é ainda pior. Ainda tentando descobrir como escolher qual tela compartilhar.

    
por Peque 27.08.2014 / 15:51

3 respostas

20

Problema

Acontece que já existe um problema em aberto no rastreador do Chromium sobre esse assunto irritante inconveniência. As opções existentes oferecidas pelo Hangouts têm grandes desvantagens:

  1. Partilhar todo o ecrã: Se tiver vários ecrãs (tenho três) e partilhar "Todo o ecrã", outras pessoas no hangout não conseguirão ver nada.

  2. Compartilhar aplicativo: se você compartilhar apenas um aplicativo específico, então:

    • Você terá que alternar manualmente para outros aplicativos durante a transmissão, voltando a hangouts e ativando / desativando o compartilhamento de tela.
    • Em alguns aplicativos, janelas extras (como caixas de diálogo para preferências, menus, pop-ups etc.) não serão capturadas como parte do aplicativo que você está compartilhando. E na maioria das vezes são esses diálogos que você quer focar.

Solução / solução alternativa

Uma boa solução alternativa está em Comentário 18 desta mesma discussão, então todos os créditos devem ir para o autor do comentário.

Resumirei o processo aqui, que permite a você Compartilhar uma parte / área da tela de vários monitores no Google Hangouts em execução em uma máquina Linux .

  1. Abra o VLC no modo "Screen Capture" e diga qual parte da sua tela X11 você quer para capturar, usando os parâmetros de linha de comando apropriados . Você pode fazer isso através da configuração da GUI OU usando a linha 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. Volte para o Google Hangouts e compartilhe a janela VLC recém-aberta, que agora funciona como seu "portal" para a parte interessante da tela.

Notas importantes

  1. Mova a janela VLC para fora da parte da tela que você está capturando para evitar efeitos de iniciação .

  2. Não NÃO redimensione ou minimize a janela do VLC porque isso afetará a resolução do seu compartilhamento de tela. Se você quiser sair do caminho ao transmitir para hangouts, basta movê-lo para fora da tela SEM redimensioná-lo ou apenas fingir que ele não está lá.

  3. O ponteiro do mouse não é capturado pelo VLC no Linux. O autor da solução sugere uma solução para isso também: ExtraMaus , um simples C programas que cria um "clone" de seu mouse, mas visível por VLC.

[TL; DR] Explicando os valores que escolhi no exemplo

  1. O parâmetro screen:// indica que queremos ativar o módulo Captura de tela. Você sempre usará esse parâmetro como está.

  2. Os sinalizadores --no-video-deco e --no-embedded-video ocultam o menu da janela e a barra de ferramentas de controle de vídeo, respectivamente. Você não quer compartilhá-los através do Hangouts, então sugiro que você sempre inclua esses parâmetros.

  3. O --screen-fps=20 não precisa ser 20. Você pode definir 30 ou 10, pois o desempenho é afetado principalmente pela forma como o Chrome codifica o fluxo de vídeo.

  4. A área da tela que você deseja capturar segue a convenção padrão [ --screen-top , --screen-left , --screen-width , --screen-height ]. Supondo que eu tivesse dois monitores, cada um de 1920x1080, dando um total de 3840x1080 "virtual" tela quando colocado um ao lado do outro, eu poderia dar as seguintes coordenadas:

    1. [ 0, 0, 1920, 1080] para toda a minha tela esquerda
    2. [ 0, 1920, 1920, 1080] para toda a minha tela direita
    3. [32, 0, 1920, 1000] para uma parte da minha tela esquerda que se estende por toda a largura, mas corta 32 pixels da parte superior (onde geralmente tenho a barra de título da janela) e 1080-1000-32 = 48 pixels da parte inferior (onde eu tenho a barra de tarefas do KDE ).
por 21.02.2017 / 14:29
4

Acho que encontrei uma solução melhor do que usar o vlc. Nós só precisamos criar uma webcam falsa que mostre nossa tela.

sudo rmmod v4l2loopback
sudo modprobe v4l2loopback video_nr=7 'card_label=myFakeCam'

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

Em seguida, precisamos fazer com que apareça no chromium na lista de câmeras disponíveis. Podemos fazer isso, por exemplo, desativando e ativando a webcam do laptop interno. Primeiro você deve find fora seu número de porta e barramento usb. No meu caso: Bus é 01 e Port é 4, então eu 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"

Depois disso, posso escolher myFakeCam no Hangouts.

Eu descrevi algumas outras ideias e mais alguns detalhes em hliss repo .

    
por 03.12.2017 / 13:41
-2

Carregue o xrdp no seu laptop. Inicie uma conexão rdesktop ao localhost. Use a sessão do rdesktop para iniciar a sessão do google +, e somente essa janela / desktop será compartilhada.

Eu percebo que isso é mais uma solução, mas vai ser feito o que você está procurando fazer.

    
por 07.12.2015 / 19:56