我尝试使用 Ubuntu 22.04 的默认屏幕捕获应用程序来录制我的屏幕,但捕获的视频有故障,丢帧很多,以至于无法使用。
我尝试使用 OBS Studio,但在我点击录制后它抛出了这个错误:
Failed to open NVENC codec: Unknown error occurred
Please check your video drivers are up to date.
然后我用窥视它录制短的 GIF 但即使这样也会丢失帧数!
我怀疑这与 Nvidia 驱动程序有关。上周我禁用了安全启动无需签名即可使用驱动程序。
问题:我该如何解决这个问题?
以下是我的系统规格:
`:+ssssssssssssssssss+:` ----------------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 22.04.1 LTS x86_64
.ossssssssssssssssssdMMMNysssso. Host: Nitro AN515-43 V1.12
/ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 5.15.0-52-generic
+ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 11 mins
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 2219 (dpkg), 7 (flatpak), 24 (snap)
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: fish 3.5.1
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: 1920x1080
ossyNMMMNyMMhsssssssssssssshmmmhssssssso DE: GNOME 42.5
ossyNMMMNyMMhsssssssssssssshmmmhssssssso WM: Mutter
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ WM Theme: Adwaita
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Theme: Yaru-blue-dark [GTK2/3]
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ Icons: Yaru-blue [GTK2/3]
+sssssssssdmydMMMMMMMMddddyssssssss+ Terminal: gnome-terminal
/ssssssssssshdmNNNNmyNMMMMhssssss/ CPU: AMD Ryzen 7 3750H with Radeon Vega Mobile Gfx (8) @ 2.300GHz
.ossssssssssssssssssdMMMNysssso. GPU: NVIDIA GeForce GTX 1650 Mobile / Max-Q
-+sssssssssssssssssyyyssss+- GPU: AMD ATI Radeon Vega Series / Radeon Vega Mobile Series
`:+ssssssssssssssssss+:` Memory: 3604MiB / 13920MiB
更新 #1:问题似乎与捕获窗口的大小有关,较小的窗口可以捕获流畅的视频。我相信这进一步证实了 GPU 是问题的根源。
更新 #2:系统未使用 Nvidia GPU。我曾经nvidia-smi
在录制时多次记录 GPU 统计数据,但它停留在 2MiB / 4096MiB :
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.56.06 Driver Version: 520.56.06 CUDA Version: 11.8 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 Off | N/A |
| N/A 50C P8 1W / N/A | 2MiB / 4096MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 2232 G /usr/bin/gnome-shell 1MiB |
+-----------------------------------------------------------------------------+
答案1
TLDR:我相信这是一个影响 Wayland 和 GNOME 的 gstreamer 缓冲区问题: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5585
如果您等不及错误修复通过发行版的更新进行,那么更新 gstreamer 可能会修复该问题。
更多上下文:我遇到了同样的问题。内置视频屏幕录像机丢失/不录制整个活动片段。这并不是说它丢失了内容,而是它似乎在对话框出现时立即停止录制。对话框是在同一个窗口还是另一个窗口中等,这都没关系。也可能是转移注意力的借口。但一般来说,整个内容片段都没有被录制。
还在 Peek 中重现了这一现象并尝试记录为 gif。
我有一台联想 X1 Carbon Gen7,配备核心 i7 和内置英特尔高清显卡(不需要额外的驱动程序),所以我认为这是一个核心 Ubuntu 问题,不一定是驱动程序问题。
答案2
我刚刚通过一次幸运的 Google 搜索找到了另一个解决方法。如果您禁用“自动隐藏” Dock,屏幕录制似乎可以正常工作。
我是如何到达这里的:
- 我注意到,当我在播放过程中与底座互动时,我的录音会出现这些快速的“闪烁”,即使它已经停止录制新的动作
- 我在谷歌上搜索了“ubuntu screen record glitchy 22.04”,并将搜索结果限制在上个月索引的范围内。这是第一个结果: https://forums.unrealengine.com/t/unreal-engine-4-editor-viewport-mouse-capture-glitches-with-left-side-auto-hide-dock-on-ubuntu-22-04/682331
因此,根据直觉,禁用自动隐藏 Dock 的功能成功了!