有人使用 pipewire 在 wayland 下进行屏幕共享吗?
据我所知,安装pipewire
软件包并将用户添加到audio
和video
组后,应该可以从 Chrome/Chromium 共享屏幕。但 Chrom(e|ium) 仍在使用 libpipewire0.2,而 Groovy 仅附带 libpipewire0.3。
如果您完成了松弛工作,则可以获得加分。
“切换回 Xorg”在这里不是一个可行的答案。各种东西(尤其是笔输入)在 Xorg 中无法正常工作(至少在我的配置中是这样),而且短期内不会再正常工作。
答案1
我应该为后来者指出,这个问题在 Ubuntu 21.04 中已得到部分修复,但有以下注意事项:
- 在 Chrome/Chromium 中可以使用 pipewire 启用 WebRTC。为此,请打开chrome://flags/#enable-webrtc-pipewire-capturer在 chrome 中将“WebRTC PipeWire 支持”更改为
Enabled
- 如果您使用以下方式启动 Slack,则可以通过 Slack 进行共享
slack --enable-features=WebRTCPipeWireCapturer
- 通过 Teams 共享不起作用(目前 - 等待 Teams 团队更新他们使用的 Electron 版本)
- 在多个显示器上共享似乎会出现奇怪的情况。在我的笔记本电脑上,如果尝试共享一个具有不同分辨率的外部屏幕,另一端就会得到一个奇怪的隔行扫描版本的屏幕。看起来 pipewire 假设它收到的图像的分辨率与系统上“第一个”屏幕的分辨率相匹配,并因此弄乱了视频编码。
答案2
您可以手动安装此包,但必须检查在此处手动更新。
首先,下载 deb 文件(假设您使用的是 amd64 版本的 Ubuntu):
wget 'http://mirrors.kernel.org/ubuntu/pool/universe/p/pipewire/libpipewire-0.2-1_0.2.7-1_amd64.deb'
然后,安装该包:
sudo apt install ./libpipewire-0.2-1_0.2.7-1_amd64.deb
由于 libpipewire0.3 使用完全不同的文件集,应该不会发生冲突。
同样,您必须手动检查更新。当前版本是 0.2.7-1。当您看到更新版本时,只需单击“Architecture”下的“amd64”,然后您可以单击其中一个镜像下载文件,或复制链接并将其粘贴到终端中以使用命令使用与wget
上述相同的方法。只需确保在命令中使用正确的文件名,apt
这样您就不会安装错误的文件(例如较旧的下载版本)。
最后,还有一些Archlinux wiki 上的更多信息您可能需要检查他们提到您可能必须安装xdg-desktop-portal
并启用 chromium 标志chrome://flags/#enable-webrtc-pipewire-capturer
才能使其工作。
答案3
如果你正在使用 sway(或使用 wlroots 的另一个作曲家)和最新的 chrome(2023 年后)
你必须更新xdg-desktop-portal-wlr 至版本 >= 0.7.0
安装依赖项
sudo apt install libpipewire-0.3-dev libinih-dev libgbm-dev\
libdrm-dev libsystemd-dev scdoc
自己构建 https://github.com/emersion/xdg-desktop-portal-wlr/releases
然后建立
tar xf xdg-desktop-portal-wlr-0.*.tgz
cd xdg-desktop-portal-wlr-0.*
meson build
ninja -C build
并安装
sudo ninja -C build install
重启 chrome
享受屏幕共享
答案4
安装 Gnome 41.3 的 Arch:
- libpipewire02
- xdg-desktop-portal 启用 chrome 标志:
- chrome://flags/#enable-webrtc-pipewire-capturer