温馨提示×

如何在Linux上使用Compton进行屏幕录制

小樊
52
2025-09-22 18:50:16
栏目: 智能运维

Compton的作用与屏幕录制的基本逻辑
Compton是一款主要用于Wayland会话的图形合成器,其核心功能是提供硬件加速的窗口合成(如透明效果、动画流畅度优化),而非专门的屏幕录制工具。若需在Linux上结合Compton实现屏幕录制,需通过Compton优化显示效果,同时借助其他工具(如ffmpeg、OBS Studio)完成录制。

一、准备工作:安装Compton与屏幕录制工具

  1. 安装Compton
    在基于Debian的系统(如Ubuntu)中,通过终端执行以下命令安装Compton:

    sudo apt update && sudo apt install compton
    

    在基于Fedora的系统(如CentOS)中,可使用dnf安装:

    sudo dnf install compton
    
  2. 安装屏幕录制工具
    推荐使用ffmpeg(轻量、灵活,适合命令行操作)或OBS Studio(图形界面、功能全面):

    • 安装ffmpeg:
      sudo apt install ffmpeg  # Debian/Ubuntu
      sudo dnf install ffmpeg  # Fedora/CentOS
      
    • 安装OBS Studio(图形界面):
      sudo apt install obs-studio  # Debian/Ubuntu
      sudo dnf install obs-studio  # Fedora/CentOS
      

二、配置Compton(可选但推荐)
Compton的配置文件通常位于~/.config/compton.conf(若不存在可手动创建)。通过调整配置,可优化录制时的视觉效果(如关闭阴影减少资源占用、调整透明模式):

# 使用GLX作为合成后端(提升性能)
backend = "glx";
# 关闭窗口阴影(减少不必要的渲染负载)
shadow-exclude = [".*"];
# 禁用alpha通道(避免透明效果干扰录制)
alpha-mode = "none";
# 忽略透明窗口的alpha通道
alpha-ignores = [".*"];
# 启用glx快速复制(提升画面更新速度)
glx-copy-from-front = true;
# 不使用模板缓冲区(兼容性更好)
glx-no-stencil = true;

配置完成后,通过以下命令启动Compton(后台运行):

compton -b

若需开机自启动,可创建systemd服务(以root身份执行):

sudo nano /etc/systemd/system/compton.service

添加以下内容(替换为你的Compton路径):

[Unit]
Description=Compton Compositor
After=display-manager.service

[Service]
ExecStart=/usr/bin/compton -c ~/.config/compton.conf
Restart=on-failure

[Install]
WantedBy=multi-user.target

保存后启用并启动服务:

sudo systemctl enable compton.service
sudo systemctl start compton.service

三、使用ffmpeg录制屏幕(命令行方式)
ffmpeg是Linux下常用的屏幕录制工具,结合Compton使用时,需指定正确的输入源(X11显示设备):

ffmpeg -f x11grab -r 30 -s 1920x1080 -i :0.0+0,0 -c:v libx264 -preset ultrafast -crf 18 -pix_fmt yuv420p output.mp4

参数说明

  • -f x11grab:指定输入格式为X11屏幕抓取(适用于大多数Linux桌面环境);
  • -r 30:设置录制帧率为30帧/秒(可根据需求调整为25、60等);
  • -s 1920x1080:设置录制分辨率为1920x1080(需与显示器分辨率一致,多显示器可调整为3840x1080等);
  • -i :0.0+0,0:指定输入源为X11主显示器(:0.0代表第一个显示器,+0,0代表左上角坐标);
  • -c:v libx264:使用H.264编码(兼容性最好,适合大多数播放设备);
  • -preset ultrafast:设置编码速度为“超快”(平衡速度与文件大小,若需更高压缩率可选择mediumslow);
  • -crf 18:设置恒定质量因子(数值越小质量越高,18-28为常用范围,18为高质量);
  • -pix_fmt yuv420p:设置像素格式为yuv420p(兼容大多数播放设备,避免出现颜色异常);
  • output.mp4:输出文件名(可自定义路径与格式,如~/Videos/screen_recording.mp4)。

四、使用OBS Studio录制屏幕(图形界面方式)
若偏好图形界面,可使用OBS Studio:

  1. 打开OBS Studio,点击左侧“+”号添加“显示捕获”或“窗口捕获”源(“显示捕获”录制整个屏幕,“窗口捕获”录制特定应用);
  2. 调整录制设置:在“设置→输出”中,选择“输出模式”为“简单”,设置“录制格式”为mp4,勾选“自动停止录制”(可选,避免文件过大);
  3. 开始录制:点击底部“开始录制”按钮,录制完成后点击“停止录制”即可。

五、停止录制与注意事项

  • 停止ffmpeg录制:在终端中按Ctrl+C即可停止,录制文件将保存在当前目录;
  • 停止OBS Studio录制:点击OBS底部“停止录制”按钮,文件将保存在“设置→输出”指定的路径;
  • 注意事项
    • 确保有足够的磁盘空间(1小时1080p录制约需5-10GB空间);
    • 若使用多显示器,需调整ffmpeg的-s参数(如3840x1080)和-i参数(如:0.0+0,0)以覆盖所有显示器;
    • Compton可能会增加系统资源占用,若录制时出现卡顿,可尝试关闭Compton的特效(如阴影、动画)或降低录制帧率。

0