200字
Spectacle 录屏软件无法录屏
2026-01-15
2026-01-15

Spectacle 录屏软件无法录屏

问题现象

在 NVIDIA 显卡 + KDE Wayland 环境下,点击 Spectacle 录屏按钮后看似正常计时,停止后生成的 WebM 文件仅几百字节(常见400B左右);用播放器打开提示“无法解析文件”或“文件损坏”,但截图功能完全正常,这也说明系统的 portal 与 PipeWire 本身并无问题,排除了基础服务故障的可能。

使用终端启动 Spectacle 录屏会输出编码相关报错;


luka@LukaLinux : ~ at 00:53:17 $ spectacle
kpipewire_vaapi_logging: VAAPI: VA-API NVDEC driver [direct backend] in use for device "/dev/dri/renderD129"
[libvpx-vp9 @ 0x790b400623c0] v1.15.2
kf.kio.workers.file: copy() QUrl("file:///tmp/Spectacle.sgHkBN/屏幕录像_20260102_005338.webm") to QUrl("file:///home/luka/视频/屏幕录像/屏幕录像_20260102_005338.webm") mode= -1
qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version n8.0.1 GPL version 3 or later
[matroska,webm @ 0x790b94001f00] Duplicate element
[matroska,webm @ 0x790b94001f00] 0x00 at pos 100 (0x64) invalid as first byte of an EBML number
[matroska,webm @ 0x790b94001f00] Duplicate element
[matroska,webm @ 0x790b94001f00] 0x00 at pos 167 (0xa7) invalid as first byte of an EBML number
[matroska,webm @ 0x790b94001f00] Element at 0x5d ending at 0x1aec0100000066 exceeds containing master element ending at 0x1409
qt.multimedia.ffmpeg.mediadataholder: Could not open media. FFmpeg error description: End of file

解决方法

经过一段时间的捣鼓,发现可通过指定 VAAPI 驱动的方式解决该问题:


# 用 vim 编辑(或创建)配置文件,也可替换为其他文本编辑器
vim /home/luka/.config/environment.d/vaapi.conf

在文件中添加一行配置:


ELIBVA_DRIVER_NAME=iHD

保存文件后需要注销或者重启才能使配置文件生效,再次 Spectacle 录屏即可恢复正,生成的视频文件大小正常,包含有效画面与音频。

问题根源分析

Spectacle 默认调用 NVIDIA VAAPI NVDEC 驱动,该驱动在 NVIDIA + KDE Wayland 环境下与 WebM 格式不兼容,导致视频文件结构损坏,最终生成空文件。

强制使用 iHD 驱动,避开 NVIDIA 驱动的兼容性问题,修复录屏异常。

补充说明

用上面的方法修好录屏后,我没再手动改任何配置,过了一阵子发现就算删掉那个 vaapi.conf,Spectacle 录屏也照样能够正常工作。这事儿十有八九是系统更新帮的忙,这段时间系统自动更了 NVIDIA 驱动、KDE 组件这些东西,估计是官方修复了那个烦人的兼容性 Bug。

需要特别提醒的是,上述解决方法及相关测试,均基于以下环境完成:

  • 显卡:Nvidia的独立显卡

  • CPU:带集成显卡的 Intel CPU

  • 桌面环境:KDE Plasma

  • 显示协议:Wayland

这个方案的关键是强制使用 iHD 驱动(通常适配 Intel 集成显卡),若设备无 Intel 核显(仅 AMD 独显或仅 NVIDIA 独显),直接指定 iHD 驱动可能出现驱动不兼容、无法加载等问题。这类设备遇到同类录屏异常,建议优先排查对应显卡的 VAAPI 驱动兼容性。

我没有AMD相关设备,且Spectacle录屏异常本身是偶然出现的问题,因此无法自行测试AMD设备对应的适配参数。以下配置参数是通过询问AI所得,仅供参考:


# 多数锐龙系列带核显CPU(通用参数)
ELIBVA_DRIVER_NAME=r600

# 较新AMD锐龙AI系列CPU(搭载RDNA 3.5架构核显)
ELIBVA_DRIVER_NAME=radeonsi

评论