Berbagi desktop Anda dengan Google Hangouts, monitor ganda, dan GNOME Shell

42

Saya memiliki laptop dengan layar internal dan monitor yang terpasang.

Ketika saya memulai Hangout video Google dan membagikan desktop saya, saya ingin hanya dapat berbagi layar yang terpasang, tetapi saya tidak tahu caranya.

Saat ini saya memiliki dua monitor: LVDS1sesuai dengan layar laptop saya, yang dikonfigurasikan sebagai layar sekunder dan DP1yang merupakan layar utama saya. Tapi masalahnya masih ada jika saya mengubah layar laptop saya menjadi layar utama.

$ 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  

Setiap kali saya mulai berbagi desktop di Hangout, hanya layar bawaan (lebih kecil) yang dibagikan. Hal terbaik adalah dapat memilih yang mana untuk dibagikan, tetapi jika tidak, bagaimana saya bisa berbagi hanya layar yang terlampir (lebih besar)?

Saya yakin Google Hangout mencari file konfigurasi untuk memilih layar mana yang akan dibagikan, tetapi tidak tahu file mana itu.

CATATAN

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

CATATAN 2

Menggunakan Google Chrome membuat Google Hangouts berbagi kedua layar secara bersamaan, bukan hanya layar laptop, yang saya pikir lebih buruk. Masih berusaha mencari tahu bagaimana saya bisa memilih layar yang akan dibagikan.

Peque
sumber
Sebagai percobaan jika Anda menjadikan layar sekunder sebagai primer Anda melalui dialog pengaturan GNOME, apakah hangout dapat dibuka di monitor sekunder?
slm
@slm: Tampaknya selalu mengambil layar laptop saya untuk berbagi. Tidak masalah apakah itu sreen primer atau sekunder.
Peque
Saya telah berjuang dengan masalah saya sendiri dengan Chrome, Cinnamon, dan beberapa monitor juga. Sangat menyebalkan. Saya akan mencoba dan terus menggali.
slm
Saya menghadapi masalah yang sama, menggunakan chrome di Linux Mint 15 layar berbagi hangouts menunjukkan kedua monitor saya. Benar-benar menjengkelkan
1
Saya tidak tahu bagaimana Anda mendapatkan satu monitor, saya belum pernah melihatnya. Tetapi untuk kedua monitor secara bersamaan, saya menduga Chromium hanya berbagi "layar" X. XRandR membuat kedua monitor muncul pada satu layar X, jadi sampai seseorang di Google memperbaiki bahwa saya ragu ada solusi tanpa menggunakan sesuatu yang lain seperti Xinerama.
Jarryd

Jawaban:

35

Masalah

Ternyata sudah ada masalah terbuka di pelacak Chromium tentang ketidaknyamanan yang mengganggu ini. Opsi yang ada yang ditawarkan oleh Hangouts memiliki kelemahan utama:

  1. Bagikan Seluruh Layar: Jika Anda memiliki beberapa layar (saya punya tiga) dan berbagi "Seluruh Layar", orang lain di hangout tidak akan dapat melihat apa pun.

  2. Bagikan Aplikasi: Jika Anda hanya berbagi aplikasi tertentu, maka:

    • Anda harus beralih ke aplikasi lain secara manual saat streaming dengan kembali ke hangout dan mengaktifkan / menonaktifkan Berbagi Layar.
    • Pada beberapa aplikasi, jendela tambahan (seperti dialog untuk preferensi, menu, popup, dll.) Tidak akan diambil sebagai bagian dari aplikasi yang Anda bagikan. Dan sebagian besar dialog yang ingin Anda fokuskan.

Solusi / solusi

Sebuah sangat baik solusi adalah di Komentar 18 diskusi yang sama, sehingga semua kredit harus pergi ke komentar dari penulis.

Saya akan merangkum proses di sini, yang memungkinkan Anda untuk Berbagi Bagian / Area layar multi-monitor Anda di Google Hangouts yang berjalan di Mesin Linux .

  1. Buka VLC dalam mode "Tangkapan Layar" dan beri tahu bagian mana dari layar X11 yang ingin Anda tangkap, menggunakan parameter baris perintah Modul Layar yang sesuai . Anda dapat melakukan ini melalui konfigurasi GUI ATAU menggunakan baris perintah:

    vlc \
        --no-video-deco \
        --no-embedded-video \
        --screen-fps=20 \
        --screen-top=32 \
        --screen-left=0 \
        --screen-width=1920 \
        --screen-height=1000 \
        screen://
    
  2. Kembali ke Google Hangouts dan bagikan jendela VLC yang baru dibuka, yang sekarang bertindak sebagai "portal" Anda ke bagian yang menarik dari layar Anda.

Catatan penting

  1. Pindahkan jendela VLC jauh dari bagian dari layar Anda menangkap untuk menghindari efek awal .

  2. Apakah TIDAK mengubah ukuran ATAU meminimalkan jendela VLC karena akan mempengaruhi resolusi berbagi layar Anda. Jika Anda ingin menghindarinya saat streaming ke hangout, cukup geser layar tanpa mengubah ukurannya, atau pura-pura tidak ada.

  3. Pointer mouse tidak ditangkap oleh VLC di linux. Penulis solusinya menyarankan solusi untuk ini juga: ExtraMaus , program C sederhana yang menciptakan "klon" mouse Anda, tetapi terlihat oleh VLC.

[TL; DR] Menjelaskan nilai-nilai yang saya pilih dalam contoh

  1. The screen://parameter menunjukkan kita ingin mengaktifkan Screen Capture modul. Anda akan selalu menggunakan parameter ini apa adanya.

  2. Tandai --no-video-decodan --no-embedded-videosembunyikan menu jendela dan bilah alat kontrol video. Anda tidak ingin membagikan ini melalui Hangouts, jadi saya sarankan Anda selalu menyertakan parameter ini.

  3. Tidak --screen-fps=20harus 20. Anda dapat membuatnya 30 atau 10, karena kinerja terutama dipengaruhi oleh bagaimana Chrome menyandikan aliran video.

  4. Area layar yang ingin ditangkap mengikuti konvensi standar [ --screen-top, --screen-left, --screen-width, --screen-height]. Andaikata saya memiliki dua monitor, masing-masing 1920x1080, memberikan total layar "virtual" 3840x1080 ketika ditempatkan satu di samping yang lain, saya dapat memberikan koordinat berikut:

    1. [ 0, 0, 1920, 1080] untuk seluruh layar kiri saya
    2. [ 0, 1920, 1920, 1080] untuk seluruh layar kanan saya
    3. [32, 0, 1920, 1000]untuk bagian layar kiri saya yang membentang di lebar penuh tetapi memotong 32piksel dari atas (di mana saya biasanya memiliki bilah judul jendela) dan 1080-1000-32 = 48piksel dari bawah (di mana saya memiliki bilah tugas KDE saya).
Kostas Filios
sumber
1
Ini solusi yang layak. Mudah diimplementasikan. Terima kasih
Pierre de LESPINAY
1
jika menghadapi masalah seperti: VLC tidak dapat membuka layar MRL: // '. Periksa log untuk rincian. sudo apt-get install vlc-plugin-access-extra lalu gunakan baris perintah dari atas untuk membuka vlc Anda
Leo Yu
1
Saya bisa menggunakannya untuk waktu yang lama dengan Debian. Saya di Ubuntu sekarang dan sepertinya tidak tahu argumen:unknown option or missing mandatory argument '--screen-top=0'
Pierre de LESPINAY
1
Saya membuat beberapa catatan tentang melakukan hal ini dengan i3 gist.github.com/kylebrandt/237368095cd9803536ac26529340a60f
Kyle Brandt
Ini digunakan untuk saya, tetapi sekarang tidak lagi. VLC 3.0.7
Lucas Bustamante
5

Saya pikir saya telah menemukan solusi yang lebih baik daripada menggunakan vlc. Kami hanya perlu membuat webcam palsu yang menunjukkan layar kami.

# 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

Maka kita perlu membuatnya muncul dalam kromium dalam daftar kamera yang tersedia. Kita dapat membuatnya misalnya dengan menonaktifkan dan kemudian mengaktifkan webcam laptop internal. Pertama, Anda harus mengetahui nomor usb bus dan port-nya. Dalam kasus saya: Bus adalah 01 dan Port adalah 4, jadi saya menjalankan:

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

Setelah itu saya dapat memilih myFakeCam di Hangouts.

Saya telah menjelaskan beberapa ide lain dan beberapa detail lainnya di hliss repo .

Google Chrome tidak dapat melihat kamera palsu

Seekor hiu
sumber
-2

Muat xrdp di laptop Anda. Mulai koneksi rdesktop ke localhost. Gunakan sesi rdesktop untuk memulai sesi google +, dan hanya jendela / desktop yang akan dibagikan.

Saya menyadari ini lebih merupakan solusi, tetapi ini akan menyelesaikan apa yang ingin Anda lakukan.

billq
sumber
Lucu :-). Tapi ya, itu bukan solusi (bahkan bukan solusi). Saya lebih suka mematikan layar laptop sebelum memulai hangout, yang lebih cepat dan lebih bersih ... ;-) Orang biasanya ingin membagikan apa yang sudah mereka buka di desktop mereka (apa yang sedang mereka kerjakan).
Peque