Udostępnianie pulpitu Google Hangouts, podwójnemu monitorowi i powłoce GNOME


42

Mam laptopa z wbudowanym ekranem i dołączonym monitorem.

Kiedy rozpoczynam Hangout wideo Google i udostępniam pulpit, chciałbym móc udostępniać tylko załączony ekran, ale nie wiem jak.

W tej chwili mam dwa monitory: LVDS1odpowiada ekranowi mojego laptopa, który jest skonfigurowany jako ekran dodatkowy i DP1który jest moim ekranem głównym. Ale problem nadal występuje, jeśli zmienię ekran mojego laptopa na ekran główny.

$ 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  

Gdy zaczynam udostępniać swój pulpit na Hangoucie, udostępniany jest tylko wbudowany (mniejszy) ekran. Najlepszą rzeczą byłoby wybranie, który chcesz udostępnić, ale jeśli nie, to w jaki sposób mogę udostępnić tylko (większy) ekran?

Założę się, że Google Hangout szuka pliku konfiguracyjnego do wyboru ekranu do udostępnienia, ale nie wiem, który to plik.

UWAGA

Korzystanie z Fedory 20, x86_64, Linux 3.15.10-200, GNOME Shell 3.10.4-8, Firefox 31.

UWAGA 2

Korzystanie z Google Chrome powoduje, że Google Hangouts współdzieli oba ekrany jednocześnie, a nie tylko ekran laptopa, co moim zdaniem jest jeszcze gorsze. Wciąż próbuję dowiedzieć się, jak wybrać ekran do udostępnienia.


Jeśli eksperymentujesz, jeśli drugi ekran zostanie ustawiony jako podstawowy za pomocą okna dialogowego ustawień GNOME, czy spotkania zostaną otwarte na monitorze dodatkowym?
slm

@slm: Wygląda na to, że ekran mojego laptopa jest zawsze udostępniany. Nie ma znaczenia, czy jest to ekran główny, czy drugi.
Peque

Walczyłem też z własnymi problemami z Chrome, Cinnamon i wieloma monitorami. To bardzo denerwujące. Spróbuję dalej kopać.
slm

Stoję w obliczu tego samego problemu, używając Chrome na Linux Mint 15, udział ekranu Hangouts pokazuje oba moje monitory. Naprawdę denerwujące

1
Nie wiem, skąd masz jeden monitor, nigdy tego nie widziałem. Ale jeśli chodzi o oba monitory jednocześnie, podejrzewam, że Chromium ma tylko „ekran” X. XRandR sprawia, że ​​oba monitory pojawiają się na jednym ekranie X, więc dopóki ktoś w Google nie naprawi, wątpię w to obejście bez użycia czegoś innego jak Xinerama.
Jarryd

Odpowiedzi:


35

Problem

Okazuje się, że w trackerze Chromium jest już otwarty problem dotyczący tej irytującej niedogodności. Istniejące opcje oferowane przez Hangouts mają poważne wady:

  1. Udostępnij cały ekran: jeśli masz wiele ekranów (mam trzy) i udostępniasz „Cały ekran”, inne osoby na hangoucie nie będą mogły nic zobaczyć.

  2. Udostępnij aplikację: jeśli udostępniasz tylko określoną aplikację, to:

    • Będziesz musiał ręcznie przełączyć się na inne aplikacje podczas przesyłania strumieniowego, wracając do hangoutów i włączając / wyłączając Screen Share.
    • W niektórych aplikacjach dodatkowe okna (takie jak okna dialogowe preferencji, menu, wyskakujące okienka itp.) Nie będą przechwytywane jako część udostępnianej aplikacji. I przez większość czasu to te okna dialogowe, na których chcesz się skupić.

Rozwiązanie / obejście

Bardzo dobrym obejściem jest Komentarz 18 do tej samej dyskusji, więc wszystkie napisy należy przekazać autorowi komentarza.

Podsumuję tutaj proces, który pozwala udostępnić część / obszar ekranu wielu monitorów w Google Hangouts uruchomionym na maszynie z systemem Linux .

  1. Otwórz VLC w trybie „Przechwytywanie ekranu” i powiedz, którą część ekranu X11 chcesz przechwycić, korzystając z odpowiednich parametrów wiersza poleceń modułu ekranu . Możesz to zrobić poprzez konfigurację GUI LUB za pomocą wiersza poleceń:

    vlc \
        --no-video-deco \
        --no-embedded-video \
        --screen-fps=20 \
        --screen-top=32 \
        --screen-left=0 \
        --screen-width=1920 \
        --screen-height=1000 \
        screen://
    
  2. Wróć do Google Hangouts i udostępnij nowo otwarte okno VLC, które działa teraz jako „portal” do interesującej części ekranu.

Ważne notatki

  1. Przesuń okno VLC z dala od części ekranu przechwytywania w celu uniknięcia skutków powstania .

  2. Czy nie rozmiar lub zminimalizować okno VLC ponieważ wpłynie to na rozdzielczość ekranu Twojego udziału. Jeśli chcesz usunąć go z transmisji podczas przesyłania strumieniowego do hangoutów, po prostu przenieś go poza ekran BEZ zmiany jego rozmiaru lub udawaj, że go nie ma.

  3. Wskaźnik myszy nie jest przechwytywany przez VLC w systemie Linux. Autor obejścia sugeruje również rozwiązanie tego problemu : ExtraMaus , prosty program w języku C, który tworzy „klon” myszy, ale jest widoczny w VLC.

[TL; DR] Wyjaśnienie wartości, które wybrałem w przykładzie

  1. Ten screen://parametr wskazuje, że chcemy włączyć moduł przechwytywania ekranu. Zawsze będziesz używać tego parametru w obecnej postaci.

  2. Flagi --no-video-decoi --no-embedded-videoukryj odpowiednio menu okna i pasek narzędzi sterowania wideo. Nie chcesz udostępniać ich za pośrednictwem Hangoutów, więc sugeruję, aby zawsze podawać te parametry.

  3. --screen-fps=20Nie musi być 20. Można zrobić to 30 lub 10, ponieważ wydajność jest głównie wpływ jak Chrome koduje strumień wideo.

  4. Powierzchnia ekranu chcesz schwytany następuje standardowej konwencji [ --screen-top, --screen-left, --screen-width, --screen-height]. Załóżmy, że mam dwa monitory, każdy 1920x1080, dające w sumie 3840x1080 „wirtualny” ekran, gdy są umieszczone obok siebie, mógłbym podać następujące współrzędne:

    1. [ 0, 0, 1920, 1080] dla całego mojego lewego ekranu
    2. [ 0, 1920, 1920, 1080] dla całego mojego prawego ekranu
    3. [32, 0, 1920, 1000]dla części mojego lewego ekranu, który rozciąga się na całej szerokości, ale przycina 32piksele od góry (gdzie zwykle mam pasek tytułu okna) i 1080-1000-32 = 48piksele od dołu (gdzie mam pasek zadań KDE).

1
To jest przyzwoite obejście. Łatwy do wdrożenia. Dzięki
Pierre de LESPINAY

1
jeśli problem twarzy, taki jak: VLC nie może otworzyć ekranu MRL „ekran: //”. Sprawdź szczegóły w dzienniku. sudo apt-get install vlc-plugin-access-extra, a następnie użyj wiersza poleceń z góry, aby otworzyć vlc
Leo Yu

1
Byłem w stanie używać tego przez długi czas w Debianie. Jestem teraz w Ubuntu i wydaje się, że nie zna argumentów:unknown option or missing mandatory argument '--screen-top=0'
Pierre de LESPINAY

1
Zrobiłem kilka notatek na temat robienia tego z i3 gist.github.com/kylebrandt/237368095cd9803536ac26529340a60f
Kyle Brandt

To kiedyś działało dla mnie, ale już nie. VLC 3.0.7
Lucas Bustamante

5

Myślę, że znalazłem lepsze obejście niż używanie VLC. Musimy tylko stworzyć fałszywą kamerę internetową, która pokazuje nasz ekran.

# 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

Następnie musimy sprawić, by pojawił się w chromie na liście dostępnych kamer. Możemy to zrobić na przykład poprzez dezaktywację, a następnie aktywację wewnętrznej kamery internetowej laptopa. Najpierw powinieneś dowiedzieć się, jaka jest jego magistrala USB i numer portu. W moim przypadku: Bus to 01, a Port to 4, więc uruchamiam:

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

Następnie mogę wybrać myFakeCam w Hangouts.

Kilka innych pomysłów i więcej szczegółów opisałem w hliss repo .

Google Chrome nie widzi fałszywego aparatu



-2

Załaduj xrdp na laptopa. Uruchom połączenie rdesktop z localhost. Użyj sesji rdesktop, aby zainicjować sesję google +, a tylko to okno / pulpit zostanie udostępnione.

Zdaję sobie sprawę, że jest to raczej obejście, ale zrobi to, co chcesz zrobić.


Zabawny :-). Ale tak, to nie jest tak naprawdę rozwiązanie (nawet obejście). Wolę po prostu wyłączyć ekran laptopa przed rozpoczęciem Hangouta, który jest szybszy i czystszy ... ;-) Zazwyczaj chce się udostępnić to, co już otworzyło na swoich komputerach (nad czym obecnie pracują).
Peque,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.