You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FFmpeg录制Docker化LXDE桌面时出现黑屏问题求助

问题描述

我创建了一个包含LXDE和TightVNCServer的Docker镜像,Dockerfile内容如下:

# Pull base image.
FROM ubuntu

# Install LXDE and VNC server.
RUN apt-get update
RUN apt-get install -y xvfb
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y lxde-core lxterminal tightvncserver
RUN rm -rf /var/lib/apt/lists/*
RUN touch /root/.Xresources
RUN touch /root/.Xauthority
COPY xstartup /root/.vnc/xstartup
RUN chmod +x /root/.vnc/xstartup
#Install Node.js & npm

# Define working directory.
WORKDIR /data

COPY * /data

RUN apt-get install -y ffmpeg

我通过以下命令运行容器:

docker run -it --rm -v /data:/data -p 5901:5901 -e USER=root ubuntudsktp  bash -c "vncserver :1 -geometry 1280x800 -depth 24 && tail -F /root/.vnc/*.log"

登录容器的VNC后,执行命令ffmpeg -f x11grab -i :1.0 output.webm录制全屏,但生成的视频为全黑屏。运行glxinfo | grep "OpenGL renderer"时提示"Error: unable to open display",尝试添加DISPLAY=:1前缀执行录制命令,结果仍相同。请问我遗漏了什么配置?

解决方案
  • 确认VNC会话的DISPLAY环境变量
    先在VNC终端执行echo $DISPLAY,正常应输出:1。如果不是,执行export DISPLAY=:1后再运行ffmpeg命令,确保命令关联到正确的X11显示。

  • 修复xstartup配置
    检查/root/.vnc/xstartup内容,确保包含以下关键配置,保证LXDE正确关联VNC的显示:

    #!/bin/sh
    xrdb $HOME/.Xresources
    xsetroot -solid grey
    export DISPLAY=:1
    startlxde &
    

    该文件已有可执行权限,VNC启动时会自动加载这个配置初始化桌面环境。

  • 用Xvfb提供底层X11帧缓冲
    调整容器启动命令,先启动Xvfb创建带帧缓冲的X11显示,再启动VNC:

    docker run -it --rm -v /data:/data -p 5901:5901 -e USER=root ubuntudsktp bash -c "Xvfb :1 -screen 0 1280x800x24 & vncserver :1 -geometry 1280x800 -depth 24 -localhost no && tail -F /root/.vnc/*.log"
    

    这样x11grab能捕获到完整的桌面画面,避免黑屏。

  • 优化ffmpeg录制参数
    指定帧率和分辨率(与VNC启动参数一致),确保捕获区域正确:

    ffmpeg -f x11grab -r 25 -s 1280x800 -i :1.0 output.webm
    
  • 解决glxinfo的显示问题
    安装图形工具和OpenGL库:

    apt-get install -y mesa-utils libgl1-mesa-glx
    

    设置好DISPLAY变量后执行glxinfo | grep "OpenGL renderer",会看到软件渲染器信息,说明图形环境正常。

内容的提问来源于stack exchange,提问作者Itzik.B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:32:43