我使用 Xvfb 在显示器 1 上启动 X 服务器,x11vnc 也设置为 -display :1,并使用 fluxbox 作为 Ubuntu 20.04 LTS 上的窗口管理器,就像使用以下命令一样
sudo -i -u ubuntu Xvfb :1 +extension GLX -screen 0 1440x1080x16 -ac
sudo -i -u ubuntu DISPLAY=:1 fluxbox
sudo -i -u ubuntu x11vnc -forever -display :1
当我运行命令时:
ffmpeg -video_size 1440x1080 -framerate 25 -f x11grab -i :1.0 -c:v libx264rgb -crf 0 -preset ultrafast sample.mp4
它可以运行,但是当我通过 processbuilder 以编程方式执行时,我看到输出缓冲区流日志文件中显示为:1:无效参数并且没有开始记录,
发送给 processBuilder 的命令如下:
pb = new ProcessBuilder(ffmpegLocation,
"-video_size", "1440x1080x16",
"-f", "x11grab",
"-i", ":1",
"-c:v libx264 -crf 0 -preset ultrafast",
"-framerate","25",
outputfilepath());
-仅供参考,我尝试将环境变量设置为导出DISPLAY=:1
,但仍然出现相同的错误,而且我是否需要设置DISPLAY=:1
,因为我在启动 Xvfb 时设置了显示号码?这曾经在旧版本的 Ubuntu 上使用 avconv 工作,但我被困在 ffmpeg 的显示问题上,有人知道如何解决这个问题吗?
答案1
更新:将其更改video_size
为 1440x1080 即可使其正常工作。