Ubuntu在Google Chrome上的屏幕共享无法正常工作。

我正在尝试使用Google Chrome或Microsoft Teams共享我的屏幕,但我只能共享浏览器,无法共享整个屏幕,屏幕显示为黑色。
尝试选择共享全屏,但屏幕仍然是黑色的。

enter image description here

我以为问题是由于使用了3个显示器,但是我断开了它们两个,问题仍然存在。我正在使用最新版本的Ubuntu和Google Chrome,我还尝试了Chromium,但都没有用。
我使用这台笔记本电脑来工作,我不想切换回Windows... 在Windows上进行编程真是痛苦,我需要让这个问题解决。
更新: 最终我找到了解决方法,似乎问题出在Wayland上,切换到X.org可以解决问题。
这是帮助我的帖子:https://askubuntu.com/a/968265/1024151

为什么有人给我点踩?是有什么问题吗?如果有什么需要改进的地方,请告诉我。 - redigaffi
2请考虑点击下方按钮,自行撰写您的答案。然后通过点击灰色勾号✔将其标记为正确,并将其变为绿色✅。这将有助于其他人。请不要将答案放在问题中 - user68186
请将您的更新作为答案发布,并从问题中删除。如果问题包含答案,SE的问答机制将无法正常工作。 - Greenonline
5个回答

在我的情况下,Ubuntu 20中搜索/etc/gdm3/目录下的file.conf文件,实际上是custom.conf
sudo nano /etc/gdm3/custom.conf

取消注释该行
#WaylandEnable=false修改为WaylandEnable=false 然后重新启动
"取消注释该行将使用Xorg显示管理器而不是Wayland"

2它在Ubuntu 21.10上运行。你能解释一下这个配置是做什么的吗?谢谢。 - kasi
3@kasi 抱歉回复晚了,取消上述行的注释将使用Xorg显示管理器而不是Wayland。 - Khyar Ali
这在Ubuntu 21*上对我有效。 - mark ortiz
适用于22.04。 - user1773592
1在Ubuntu 22中,这个方法对我非常有效。这个解决方案比启用:chrome://flags/#enable-webrtc-pipewire-capturer更好,因为它会导致我的Chrome在共享屏幕后崩溃。 - Bona Ws
1关闭Wayland看起来有点过头了。它会关闭所有Wayland支持但X.org不支持的功能。 - lucius
在GDM登录页面上选择X会更好。当您选择用户时,右下角会出现一个齿轮图标。 - angelcervera

通过访问 chrome://flags/#enable-webrtc-pipewire-capturer 并将值从 Default 更改为 Enabled 来解决了这个问题。
在重新启动 Chrome 后,现在连接正常工作。使用与之前相同的测试工具,现在 Chrome 使用系统选择窗口来共享屏幕或窗口。此外,Teams 在 Wayland 上的 Chrome 中也能正常工作,黑屏加鼠标问题也已解决。
来源:https://github.com/IsmaelMartinez/teams-for-linux/issues/455

3谢谢,这个方法在Ubuntu 22.04上也适用。现在我不需要启动Windows机器来分享屏幕参加会议了。 - Ron Michael
1对我来说有效。我发现这个带有Wayland的Ubuntu 22.04太多问题了。如果有人计划迁移到Ubuntu 22.04,我认为还是留在20.04更好。我打算回到20.04。每天这个22.04都会出现不同的错误。 - Ruben Alves
谢谢 @kave-mcdaniel,这是完美的解决方案! - lucius
我建议将这个答案标记为正确答案。它修复了Chrome浏览器中的问题,而不会影响整个操作系统。目前标记为正确答案的答案实际上是错误的。 - lucius
比所选择的更好的解决方案 - negstek
这在我的Ubuntu 22.04上对于在Chrome中共享起作用。 - Hace
当我尝试使用maim来截取printscreen chrome时,这个方法对我也起了作用。 - run_the_race

我也遇到了同样的问题,我通过以下步骤解决了它:
只需进入 Chrome 浏览器的搜索栏,并输入以下内容: "chrome://flags/#enable-webrtc-pipewire-capturer" -> 将 "WebRTC PipeWire support" 标志设置为启用 -> 重新启动 Chrome。
现在屏幕共享就可以正常工作了。 source

enter image description here


这是Chrome的一个bug,在Ubuntu 20.04中也发生了同样的问题。

解决方法:在会议期间,从另一个浏览器窗口/标签中以主持人的身份加入同一场会议。这样可以按预期分享内容:整个屏幕、一个应用程序、Chrome标签或特定窗口。

请参见下面的两个窗口 在此输入图片描述 左边是普通邀请者,右边是主持人,都在同一场会议中。

实际上,即使有修复后,我仍会继续以这种方式使用它,因为我可以看到自己分享给他人的内容,就像其他人看到的一样,非常方便;)

我知道答案有点晚,但希望能对其他遇到同样问题的人有所帮助。


糟糕,我没有仔细阅读,错误是关于Microsoft Team的,但类似的情况也发生在Google Meets、Slack和Jitsi meet上,至少对我来说是如此。所以我发送的回答可能对其他人有帮助,但也可能没有。 - Knache

在浏览器的地址栏中输入chrome://flags/#enable-webrtc-pipewire-capturer。 将WebRTC PipeWire Support从默认更改为启用,选择下拉菜单中的选项。 点击重新启动。