首页主机资讯CentOS如何通过Compton实现屏幕共享

CentOS如何通过Compton实现屏幕共享

时间2026-01-20 21:12:04发布访客分类主机资讯浏览1354
导读:Compton 与屏幕共享的关系与前提 Compton 是 X11 的窗口合成器,负责阴影、透明度、淡入淡出等合成效果。它不提供“屏幕共享/录屏”功能本身,但某些视频会议或录屏工具(如 OBS Studio、ffmpeg、WebRTC/浏...

Compton 与屏幕共享的关系与前提

  • Compton 是 X11 的窗口合成器,负责阴影、透明度、淡入淡出等合成效果。它不提供“屏幕共享/录屏”功能本身,但某些视频会议或录屏工具(如 OBS Studio、ffmpeg、WebRTC/浏览器 getDisplayMedia)需要合成器处于运行状态,才能捕获到带透明/特效的窗口内容或全局画面。
  • 共享方式通常分为两类:
    1. 应用层捕获(浏览器、OBS 选择“屏幕/窗口”源);
    2. 系统层捕获(如 PipeWire/WirePlumber 的屏幕共享,配合 xdg-desktop-portal)。
  • Wayland 会话下,Compton 不参与;屏幕共享由 KWin(KDE)/ Mutter(GNOME)/ wlroots 合成器与 xdg-desktop-portal 提供。本文以 X11 + Compton 为主,并在最后给出 Wayland 的替代方案。

在 CentOS 上正确安装与启用 Compton

  • 安装(以 CentOS 7/8/Stream 为例):
    • 启用 EPEL(如尚未启用):sudo yum install -y epel-release
    • 安装 Compton:sudo yum install -y compton(或 sudo dnf install -y compton
  • 准备配置(建议放在用户目录):
    • 创建目录:mkdir -p ~/.config
    • 写入最小可用配置:nano ~/.config/compton.conf,内容示例:
      backend = "glx";
          
      vsync = true;
          
      shadow = false;
                      # 共享时关闭阴影可减少编码压力
      fading = false;
                      # 共享时关闭淡入淡出
      mark-wwin-focused = true;
          
      mark-osd-focused = true;
          
      use-damage = true;
          
      
  • 启动与自启(会话级,推荐):
    • 手动启动:compton --config ~/.config/compton.conf &
    • 图形会话自启:将上面命令加入你的桌面会话的“启动应用程序”(Openbox、i3、Xfce、GNOME Xorg 会话的启动脚本等)。
  • 验证:
    • ps aux | grep compton 应能看到进程;
    • 若使用 systemd 用户会话,可创建用户级服务(非系统级)以确保登录后启动。

让屏幕共享工具正确捕获画面

  • OBS Studio(X11)
    • 源选择:Display Capture(全屏)/ Window Capture(窗口)
    • 若窗口捕获不到特效或透明内容,优先用 Display Capture;
    • 视频编码器选择 x264/NVENC/VA-API,码率按带宽与清晰度调整。
  • ffmpeg(命令行)
    • 全屏捕获:ffmpeg -f x11grab -video_size 1920x1080 -framerate 30 -i :0.0 -c:v libx264 -preset fast -pix_fmt yuv420p out.mp4
    • 窗口捕获(需窗口 ID):ffmpeg -f x11grab -video_size 1280x720 -framerate 30 -i :0.0+100,200 -c:v libx264 -preset fast -pix_fmt yuv420p win.mp4
  • 浏览器/WebRTC(如 meet.google.com、zoom.us 网页端)
    • 选择“屏幕”或“窗口”共享;
    • 若出现黑屏/不更新,优先尝试“全屏共享”,或在浏览器设置中允许“硬件加速”。

常见故障排查与优化

  • 黑屏或画面不更新
    • 关闭 Compton 的阴影/淡入淡出(见上例配置);
    • 在 OBS 中改用 Display Capture
    • 确保应用不是离屏渲染(某些应用需开启“允许透明/使用合成器”)。
  • 性能差、CPU 占用高
    • 使用 OpenGL 后端(glx),开启 use-damage
    • 降低捕获分辨率/帧率;
    • 优先使用硬件编码(NVENC/VA-API)。
  • 多显示器画面撕裂或错位
    • 确保 vsync = true
    • 在 OBS 中为目标显示器单独创建场景与源。
  • 需要开机即启用 Compton
    • 不建议使用系统级 systemd 服务(可能早于会话启动而失败);
    • 使用会话级自启(窗口管理器/桌面环境的“启动程序”)更稳妥。

Wayland 环境的替代做法

  • 若使用 GNOME(Wayland)/ KDE(Wayland)/ Sway,Compton 不参与合成;屏幕共享由 xdg-desktop-portal 提供:
    • 安装/启用:xdg-desktop-portal 与相应后端(如 xdg-desktop-portal-gnome/kde/wlr);
    • 浏览器/应用选择“屏幕/窗口”共享时,会通过 PipeWire 获取画面;
    • OBS Studio 需启用 PipeWire 源(在“设置 → 系统 → 管道线(PipeWire)”启用),然后选择“屏幕捕获(PipeWire)”。

以上步骤可让 ComptonCentOSX11 会话中稳定工作,并为常见的屏幕共享/录屏工具提供可捕获的合成画面;在 Wayland 下则改用 xdg-desktop-portal + PipeWire 的方案完成相同目标。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS如何通过Compton实现屏幕共享
本文地址: https://pptw.com/jishu/787662.html
怎样编写脚本来自动清理centos僵尸进程 在CentOS中如何更新Compton版本

游客 回复需填写必要信息