与Google Hangouts,双显示器和GNOME Shell共享桌面


42

我有一台带有内置屏幕和一台显示器的笔记本电脑。

当我发起Google视频环聊并共享我的桌面时,我只希望共享附加的屏幕,但我不知道如何共享。

现在,我有两个监视器:LVDS1对应于笔记本电脑的屏幕,该屏幕配置为辅助屏幕,DP1并且是我的主屏幕。但是,如果我将笔记本电脑的屏幕更改为主屏幕,问题仍然存在。

$ 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  

每当我在环聊中开始共享桌面时,只会共享内置(较小的)屏幕。最好的办法是能够选择要共享的屏幕,但如果不共享,我如何才能仅共享附加的(更大的)屏幕?

我敢打赌,Google的环聊正在寻找配置文件以选择要共享的屏幕,但不知道它是哪个文件。

注意

使用Fedora 20,x86_64,Linux 3.15.10-200,GNOME Shell 3.10.4-8,Firefox 31。

笔记2

使用Google Chrome浏览器可以使Google Hangouts同时共享两个屏幕,而不是仅共享笔记本电脑的屏幕,我认为这更糟糕。仍在尝试找出如何选择要共享的屏幕。


作为实验,如果您通过GNOME设置对话框将辅助屏幕设置为主屏幕,那么在辅助监视器上是否会打开视频群聊?
slm

@slm:似乎总是把我的笔记本电脑的屏幕共享。不管是主屏幕还是副屏幕。
Peque 2014年

我一直在与Chrome,Cinnamon和多台显示器的自身问题作斗争。太烦人了。我会继续努力。
slm

我遇到了同样的问题,在Linux Mint 15上使用Chrome,视频群聊屏幕共享显示了我的两台显示器。真烦人

1
我不知道您如何获得一台显示器,我从未见过。但是对于同时使用两个显示器,我怀疑Chromium仅共享一个X“屏幕”。XRandR使两个显示器都显示在一个X屏幕上,因此在Google有人修复之前,我怀疑没有使用Xinerama之类的解决方法。
贾里德

Answers:


35

问题

事实证明,对于这种烦人的不便之处,Chromium跟踪器中已经存在一个公开问题。环聊提供的现有选项有很多缺点:

  1. 共享整个屏幕:如果您有多个屏幕(我有三个屏幕)并共享“整个屏幕”,则视频群聊中的其他人将看不到任何内容。

  2. 共享应用程序:如果您仅共享特定的应用程序,则:

    • 在流媒体播放时,您将必须手动切换到其他应用,方法是返回环聊并打开/关闭屏幕共享。
    • 在某些应用程序中,额外的窗口(例如,用于首选项,菜单,弹出窗口等的对话框)不会被捕获为您共享的应用程序的一部分。大多数情况下,您要重点关注这些对话框。

解决方案/解决方法

一个很好的解决方法是在此讨论的第18评论中,因此所有功劳应归于该评论的作者。

我将在此处总结该过程,该过程使您可以在Linux机器上运行的Google环聊中共享多监视器屏幕的部分/区域

  1. 在“屏幕捕获”模式下打开VLC,并使用适当的屏幕模块命令行参数告诉它要捕获X11屏幕的哪一部分。您可以通过GUI配置或使用命令行来执行此操作:

    vlc \
        --no-video-deco \
        --no-embedded-video \
        --screen-fps=20 \
        --screen-top=32 \
        --screen-left=0 \
        --screen-width=1920 \
        --screen-height=1000 \
        screen://
    
  2. 返回Google环聊并共享新打开的VLC窗口,该窗口现在充当您屏幕中有趣部分的“门户”。

重要笔记

  1. 将VLC窗口离要捕获的屏幕部分,以避免初始效果

  2. 不要调整或最小化的窗口VLC,因为它会影响您的屏幕共享的分辨率。如果您想在串流到视频群聊时摆脱干扰,只需将其移出屏幕而无需调整大小,或者假装不存在即可。

  3. 在Linux中,VLC不会捕获鼠标指针。解决方法的作者也为此提出了一个解决方案:ExtraMaus,这是一个简单的C程序,可创建鼠标的“克隆”,但可通过VLC看到。

[TL; DR]解释我在示例中选择的值

  1. screen://参数表示我们要启用屏幕捕获模块。您将始终按原样使用此参数。

  2. 标志--no-video-deco和分别--no-embedded-video隐藏窗口菜单和视频控制工具栏。您不想通过环聊分享这些内容,因此建议您始终包含这些参数。

  3. --screen-fps=20没有为20。你可以把它30或10,因为业绩主要受到Chrome浏览器如何编码的视频流。

  4. 要捕获的屏幕区域遵循标准惯例[ --screen-top--screen-left--screen-width--screen-height。假设我有两个显示器,每个显示器1920x1080,当一个显示器彼此并排放置时,总共提供3840x1080“虚拟”屏幕,我可以给出以下坐标:

    1. [ 0, 0, 1920, 1080] 在我的整个左屏幕上
    2. [ 0, 1920, 1920, 1080] 在我整个屏幕上
    3. [32, 0, 1920, 1000]在我的左屏幕的一部分上,该部分横跨其整个宽度,但从32顶部(通常有窗口的标题栏)修剪像素,1080-1000-32 = 48从底部(有KDE任务栏)修剪像素。

1
这是不错的解决方法。易于实现。谢谢
Pierre de LESPINAY

1
如果出现以下问题:VLC无法打开MRL“ screen://”。检查日志以获取详细信息。sudo apt-get install vlc-plugin-access-extra,然后从上方使用命令行打开您的vlc
Leo Yu

1
我能够在Debian中使用很长时间。我现在在Ubuntu中,似乎不知道这些参数:unknown option or missing mandatory argument '--screen-top=0'
Pierre de LESPINAY,


这曾经为我工作,但现在不再。VLC 3.0.7
Lucas Bustamante

5

我认为我找到了比使用vlc更好的解决方法。我们只需要创建一个显示屏幕的假冒网络摄像头即可。

# 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

然后,我们需要使它显示在可用摄像机列表中的铬中。例如,我们可以先停用内部笔记本电脑网络摄像头,然后再将其激活。首先,您应该找出它的USB总线和端口号。在我的情况下:总线为01,端口为4,所以我运行:

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

之后,我可以在环聊中选择myFakeCam。

我已经在hliss repo中描述了其他一些想法和更多细节。

Google Chrome浏览器看不到假相机



-2

在笔记本电脑上加载xrdp。启动与本地主机的rdesktop连接。使用rdesktop会话来启动google +会话,并且只会共享该窗口/桌面。

我意识到这更多是一种解决方法,但是它将完成您想要的工作。


有趣的:-)。但是,是的,这实际上不是解决方案(甚至不是解决方法)。我宁愿在发起视频群聊之前先关闭笔记本电脑的屏幕,这样更快,更干净... ;-)人们通常想分享他们已经在桌面上打开的内容(他们正在处理的内容)。
Peque 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.