尝试使用 ffmpeg 记录 dockerized lxde 时出现黑屏

问题描述 投票:0回答:1

我创建了一个包含 LXDE 和 TightVNCServer 的 docker 镜像。

# 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

# glxinfo | grep "OpenGL renderer"
Error: unable to open display

我还尝试使用以下方式运行它:

DISPLAY=:1 ffmpeg -f x11grab -i :1.0 output.webm
结果是一样的。

我在这里缺少什么?

docker opengl ffmpeg
1个回答
-1
投票

尝试指定 ffmpeg 的大小和深度。例如:

ffmpeg -f x11grab -video_size 1280x800 -depth 24 -i :1.0 output.webm

还要记住的一件事是 Ubuntu 提供旧版本的 ffmpeg (4.4.2),因此您可能还想带上自己的 ffmpeg 二进制文件或使用不同的 Docker 基础。

© www.soinside.com 2019 - 2024. All rights reserved.