我一直尝试在 Wayland 上使用 OBS 来捕捉我的屏幕,但始终无法成功。
我运行的是 Ubuntu 21.04,带有 GNOME 3.38.4 和 Wayland、OBS 27.1.3、xdg-desktop-portal 1.8.1-1、xdg-desktop-portal-gtk 1.8.0-1 和 pipewire 0.3.24-3。这些软件包的版本已自动安装。
当我尝试捕获屏幕或应用程序时,我只会看到黑屏和来自 OBS 的以下消息:
info: [pipewire] available cursor modes:
info: [pipewire] - Metadata
info: [pipewire] - Always visible
info: [pipewire] - Hidden
info: PipeWire initialized (sender name: 1_455)
info: User added source 'Screen Capture (PipeWire)' (pipewire-desktop-capture-source) to scene 'Scene'
info: [pipewire] screencast session created
info: [pipewire] asking for desktop…
info: [pipewire] desktop selected, setting up screencast
[W][04590.125806][ module-rtkit.c: 200 translate_error()] RTKit error: org.freedesktop.DBus.Error.AccessDenied
[W][04590.125821][ module-rtkit.c: 460 set_nice()] could not set nice-level to -11: Permission denied
[W][04590.125972][ module-rtkit.c: 200 translate_error()] RTKit error: org.freedesktop.DBus.Error.AccessDenied
[W][04590.129800][ module-rtkit.c: 200 translate_error()] RTKit error: org.freedesktop.DBus.Error.AccessDenied
[W][04590.129980][ module-rtkit.c: 200 translate_error()] RTKit error: org.freedesktop.DBus.Error.AccessDenied
[W][04590.129994][ module-rtkit.c: 633 impl_acquire_rt()] could not make thread realtime: Permission denied
info: [pipewire] created stream 0x559a9a9d4e10
info: [pipewire] playing stream…
[E][04590.130755][ stream.c: 365 stream_set_state()] stream 0x559a9a9d4e10: error wrong resource type/version
error: [pipewire] Error id:2 seq:2 res:-71 (Unknown error -71): wrong resource type/version
[W][04590.130905][ impl-node.c: 386 suspend_node()] node 0x559a9be9db00: error unset format input: Input/output error
error: [pipewire] Error id:0 seq:3 res:-2 (Unknown error -2): unknown resource 2 op:2
error: [pipewire] Error id:0 seq:4 res:-2 (Unknown error -2): unknown resource 2 op:3
以及来自 xdg-desktop-portal-gtk 的以下消息:
Okt 28 14:00:12 saphuntu systemd[6864]: Starting Portal service (GTK+/GNOME implementation)...
Okt 28 14:00:12 saphuntu systemd[6864]: Started Portal service (GTK+/GNOME implementation).
Okt 28 14:00:16 saphuntu xdg-desktop-por[48783]: Unhandled parent window type
Okt 28 14:00:16 saphuntu xdg-desktop-por[48783]: Failed to associate portal window with parent window
Okt 28 14:00:17 saphuntu xdg-desktop-por[48783]: g_app_info_get_display_name: assertion 'G_IS_APP_INFO (appinfo)' failed
我尝试将 QT_QPA_PLATFORM 变量设置为“wayland”或“xcb”,但没有任何改变。
我从某处读到这可能是版本不兼容(并注意到错误消息“错误的资源类型/版本”),但老实说,我不知道问题出在哪里。
有什么建议么?
编辑:
系统更新后,Pipewire 似乎现在可以正常工作了。但只有非缩放的显示器才能正确显示。缩放的显示器看起来非常奇怪,无法使用。不幸的是,我说不出是什么(部分)修复了这个问题……我仍然在用 Ubuntu 21.04。
OBS 在超高清显示器上以 1.5 倍缩放显示捕获
答案1
确实可能存在版本兼容性。直到最近,OBS-studio 才完成对 Wayland 的支持。因此,
- 在 Xorg 上运行 Gnome
- 或者安装较新的版本,例如使用 OBS 开发人员的 PPA,或通过 Snap 或 Flatpak 安装(后者在 Ubuntu 上默认未启用)。
无论如何,您很快就需要升级到 Ubuntu 21.10,因为对 21.04 的支持即将结束。Ubuntu 21.10 附带的 OBS 版本支持 Wayland。