在 Linux 中使用 Compton 进行视频播放的要点
Compton 是 X11 下的窗口合成器,负责窗口的透明、阴影与合成;视频解码与呈现由播放器与 GPU 完成。要让视频播放更流畅,关键是让 Compton 不对视频窗口做额外合成,并减少不必要的特效与同步开销。
一、前置说明与前提
- 确认会话类型:Compton 仅适用于 X11。在 Wayland 会话中应使用相应合成器(如 Mutter/KWin/Wayland 原生合成),或在 XWayland 中运行 X11 应用。
- 安装与基本用法:多数发行版可直接安装 Compton,配置文件通常位于 ~/.config/compton.conf。示例安装命令:Debian/Ubuntu 使用 sudo apt install compton;Fedora 使用 sudo dnf install compton;Arch 使用 sudo pacman -S compton。启动可用 compton 或指定配置文件:compton --config ~/.config/compton.conf。
二、快速配置步骤
- 创建或编辑配置文件:mkdir -p ~/.config && nano ~/.config/compton.conf。
- 建议的“视频友好”配置示例(仅示意,按需增删):
backend = glx
vsync = true
shadow = false
fading = false
mark-wmwin-focused = true
mark-ovredir-focused = true
use-damage = true
unredir-if-possible = true
focus-exclude = [ “class_g = ‘vlc’”, “class_g = ‘mpv’” ]
detect-client-leader = true
wintypes:
{
popup_menu = { shadow = false; };
dropdown_menu = { shadow = false; };
tooltip = { shadow = false; };
}
说明:关闭阴影/淡入淡出降低开销;对常见播放器窗口设置 focus-exclude 与 unredir-if-possible,使其在播放时尽量“绕过合成”;use-damage 与 mark- 系列提升重绘效率。
- 应用配置:killall compton && compton --config ~/.config/compton.conf -f(或在会话启动脚本中启动)。
三、播放器与全屏的优化建议
- 使用播放器的硬件解码:例如在 mpv 中启用 hwdec(如 --hwdec=auto 或 --hwdec=vulkan),显著降低 CPU 占用,减少与合成器的帧同步压力。
- 全屏观看时优先“绕过合成”:让视频全屏直接由显示服务器/GPU 呈现,避免额外的合成与拷贝。
- 避免不必要的窗口特效:播放器或桌面若启用窗口级透明、滤镜、复杂阴影,会增加合成成本;必要时在播放器或桌面设置中关闭。
- 刷新率与同步:将显示器刷新率设置为屏幕原生值;vsync 设为 true 可减少撕裂,但在高帧率/低延迟场景可按需试验 false 并配合播放器去撕裂设置。
四、验证与排障
- 观察 CPU/GPU 占用:播放高清视频时用 htop、nvidia-smi(NVIDIA)等查看占用是否异常升高;若异常,优先检查是否关闭了阴影/淡入淡出、是否启用了 focus-exclude 与 unredir-if-possible。
- 检查是否生效:播放器全屏后,用 xwininfo 获取窗口 ID,xprop -id 查看 _NET_WM_BYPASS_COMPOSITOR 等提示;或在 Compton 启动时开启日志(如 --log-level=debug)观察 unredir 相关日志。
- 兼容性提示:在 GNOME/KDE 等完整桌面环境中,Compton 可能与桌面自带合成器冲突,必要时仅在一个合成器下运行,避免重复合成。