Wayland 上的屏幕共享状态如何?最近这已经成为远程办公人员必不可少的话题。
我正在尝试使用 WebRTC 在 Google Chrome 88 上共享我的屏幕,并使用以下软件包运行带有 Wayland 的 GNOME 3.36:
我尝试按照以下步骤从头开始设置一切:
- 使用 autotools 构建软件包并安装所需的依赖项以及
.pc
pkg-config 的文件 .so
将pipewire 的共享库复制到/usr/local/lib/x86_64-linux-gnu
并运行 ldconfig 以刷新配置- 将单元文件复制到
/usr/local/lib/systemd/user
systemctl 中并启动服务
在正确安装所有东西后,我启用chrome://flags/#enable-webrtc-pipewire-capturer
并尝试了这个演示并且显示“成功!”但我只看到黑屏......
编辑:看来这个问题在 Ubuntu 22.04 LTS 中已经修复。我在 Thinkpad X1 笔记本电脑上尝试了默认安装,并能够在上面的演示链接上共享我的屏幕。
答案1
Ubuntu 22.04
支持可能开箱即用,但我没有从 20.04 升级所需的所有软件包。
我可以进行屏幕共享,具体操作如下:
(!)如果这破坏了你的音频,请参阅这个错误
sudo apt install xdg-desktop-portal-gnome gnome-remote-desktop
如果需要就重启(或者查看故障排除部分)。
YMMV,但可以肯定的是pipewire-media-session
(的依赖gnome-remote-desktop
)和是需要的,但从20.04xdg-desktop-portal-gnome
开始尚未安装。do-release-upgrade
之后,我能够通过 dpkg/snap/flatpak 应用程序验证屏幕共享,如下所示:
火狐折断
默认的 Ubuntu 22.04 firefox(snap)默认使用 wayland,并支持 WebRTC 屏幕共享(例如用这个测试WebRTC 实验)
不幸的是,一些软件(Hello M$ Teams)目前将 Firefox 列入了“黑名单”。
Chrome 韦兰软件包
Chrome 99 默认仍是 X11(尽管支持标志2021 年 4 月起可用),因此请先
google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform=wayland &
为了使其永久生效,复制+编辑/usr/share/applications/google-chrome.desktop到〜/ .local /共享/应用程序/
您还需要启用WebRTC PipeWire 支持标志(chrome://flags/#enable-webrtc-pipewire-capturer)。
[ ]
它仍然受到在2020 年 WebRTC/Chromium 更新,但它可以使用。
库哈扁平包装(屏幕录像机)
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install io.github.seadve.Kooha
flatpak run io.github.seadve.Kooha &
[ ]
故障排除
可以替代重启的命令:
systemctl --user enable pipewire-media-session
systemctl --user start pipewire-media-session
systemctl --user restart xdg-desktop-portal-gnome
- 相关的Arch 维基
- wlroots'“它不起作用”故障排除清单
- 背景:Flatpak 门户 - 它们如何工作?作者:彼得·胡特尔 (Peter Hutterer)。
- 提示:从命令行运行应用程序并检查输出中的错误消息,例如创建屏幕录制会话时出错:GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod:路径 /org/freedesktop/portal/desktop 上的对象上没有这样的接口“org.freedesktop.portal.ScreenCast”—— 这意味着您没有门户实现 —— 例如这是预期的 dbus 设置,如下所示
d-feet
: 如果你看到org.freedesktop.impl.portal.desktop.gnome有一些接口,但没有屏幕录制一,这可能意味着缺少管道设置,或者xdg-desktop-portal-gnome
没有重新启动来获取它。
答案2
简单的解决方案是使用 ubuntu 21.04 或更高版本,它可以正确集成 pipewire。Ubuntu 21.04 还默认使用 wayland(仅限 intel 和 amd),因此 pipewire 屏幕共享应该可以立即使用。
原因是这个 ubuntu 错误这个问题似乎在 21.04 中已经得到解决。此问题不是由 Firefox 或 Chromium/Chrome 引起的。
您可能还会成功将软件包从 21.04 反向移植到 20.04 LTS。不幸的是,在这种情况下,唯一简单的解决方案直到 2022 年(22.04 LTS 默认获得 wayland 和 pipewire)才能在 ubuntu LTS 中使用。
我从reddit 评论有人问了同样的问题。
答案3
Ubuntu 22.10 用户的重要信息。我在屏幕共享方面也遇到了问题,我能够通过在 Chrome 中设置chrome://flags/#enable-webrtc-pipewire-capturer
为 来解决这些问题Enabled
。我还尝试安装pipewire-media-session
包,这个包很危险!重启后,我的声音设备不见了。幸运的是,删除这些包后它们又恢复了。关于 Ubuntu 22.10 中的 Firefox...屏幕共享仍然无法完全正常工作...
答案4
对我来说它在 Ubuntu 22.04 中有效:
sudo apt install xdg-desktop-portal-gnome gnome-remote-desktop
然后在 Google Chrome 中使用 MS Teams chrome://flags/#enable-webrtc-pipewire-capturer
,Enabled