我正在关注本教程,我想知道这个特定于 ubuntu 的步骤的等效 centos 版本:
You may receive a few warnings regarding fonts and such, but it’ll still work despite these. If you want the framebuffer to start automatically on system startup you can do:
sudo update-rc.d xvfb defaults 10
Run Code Online (Sandbox Code Playgroud)
在centos上启动时启动xvfb的正确方法是什么?
我xvfb-run用来执行 Xvfb:
xvfb-run \
--server-num 44 \
-s "-nocursor -ac -screen 0 1280x720x24" \
chromium-browser \
--temp-profile \
--window-size=1280,720 \
--disable-gpu \
--window-position=0,0 \
--app=http://example.com
Run Code Online (Sandbox Code Playgroud)
如果我再查看进程列表,我会看到预期的 Xvfb 进程和参数:
Xvfb :44 -nocursor -ac -screen 0 1280x720x24 -nolisten tcp -auth /tmp/xvfb-run.3QqQAT/Xauthority
Run Code Online (Sandbox Code Playgroud)
尽管如此,-nocursor如果我使用类似 FFmpeg 的 x11grab 之类的东西来查看该窗口的输出,光标肯定仍然会出现。
即使卸载psmouse模块也不能解决这个问题。
指定光标应完全隐藏的正确方法是什么?
Ubuntu 16.04 服务器。
我正在尝试从运行的 Firefox 中录制视频,xvfb-run但除了黑屏外,它始终在视频文件中不输出任何内容。
这是我所做的:
启动firefox,打开google.com:
$ xvfb-run firefox https://google.com
Run Code Online (Sandbox Code Playgroud)
然后它会使用默认的显示服务器编号99。我可以通过命令看到显示信息xdpyinfo -display :99。
通过命令截图效果很好:
$ xwd -root -silent -display :99.0 | xwdtopnm |pnmtojpeg > screen.jpg
Run Code Online (Sandbox Code Playgroud)
开始使用 ffmpeg 录制视频:
$ ffmpeg -f x11grab -i :99.0 out.mpg
Run Code Online (Sandbox Code Playgroud)
当我播放视频文件时out.mpg,总是黑屏。
有没有我遗漏的参数?
更新
我取得了进步,视频工作而不是黑屏仅通过以下命令:
$ ffmpeg -y -r 30 -g 300 -f x11grab -s 1024x768 -i :99 -vcodec qtrle out.mov
Run Code Online (Sandbox Code Playgroud)
请注意,它需要通过指定更多选项来匹配屏幕分辨率xvfb-run:
$ xvfb-run -s "-screen 0 1224x768x16" -a firefox http://google.com
Run Code Online (Sandbox Code Playgroud)
但我还是想在这里得到更多的反馈和答案。
我有一个 Raspberry Pi,我将它用作无头服务器。但我想在它上面运行 X。它带有 lightdm,如果您使用随附的 HDMI 或视频输出运行它,它可以工作,我可以使用它和 x11vnc,但没有连接显示器,它默认为 800x600 或非常小的东西。我试过设置几何,没有效果。
所以我想我会运行 Xvfb,然后在它上面运行 lightdm,然后 x11vnc 整个 shebang。
问题是 lightdm 似乎不想连接到已经运行的 X 服务器,它想创建自己的。很好,所以我告诉它运行 Xvfb 而不是 X,它失败了,因为 lightdm 试图将“vt7”作为参数传递给 X 服务器,但 Xvfb 不接受虚拟终端作为参数,因为它没有使用任何终端,它是一个虚拟帧缓冲区。
所以帮帮我?我怎样才能获得 lightdm(我已经检查了文档和选项,没有什么明显的)来正确启动 Xvfb(没有 vt7 参数),或者让它附加到已经运行的现有 X 服务器而不是尝试运行它自己的。
我一直在使用 AWS EC2 Linux 执行无头 Firefox/Selenium 任务。我使用http://itsallabtamil.blogspot.com/2013/02/setting-up-chrome-firefox-ec2-selenium-java.html中的说明构建了它,后者又使用此脚本在 AWS EC2 上获取 GTK+ 和 Firefox Linux http://joekiller.com/2012/06/03/install-firefox-on-amazon-linux-x86_64-compiling-gtk/
昨天,我更新了所有软件包“sudo yum update”,但我无法再运行 Firefox!在过去的 12 个小时里,我一直在用头撞墙,但无法解决。基本上,如果我开始说 Xvfb:
Xvfb :1 -screen 0 1280x768x24
Run Code Online (Sandbox Code Playgroud)
然后尝试通过执行以下操作来启动 Firefox
firefox
export DISPLAY=:1
Run Code Online (Sandbox Code Playgroud)
在另一个终端中,我在 Xvfb 的终端中收到以下错误:
Xvfb: symbol lookup error: Xvfb: undefined symbol: pixman_glyph_cache_create
Run Code Online (Sandbox Code Playgroud)
带有 Firefox 的终端说:
Xlib: extension "RANDR" missing on display ":1".
firefox: Fatal IO error 11 (Resource temporarily unavailable) on X server :1.
Run Code Online (Sandbox Code Playgroud)
经过几个小时的谷歌搜索,我发现第一行是一个警告,可以忽略,但我假设第二行必须连接到未定义的符号错误。我尝试从头开始重建实例(注意,需要在脚本中更新 Fox 的 URL) - 同样的错误。
任何帮助将不胜感激!
我正在尝试以无头模式运行SlimerJS,以便它不会在 Mac OSX 上打开可见的浏览器窗口。
根据SlimerJS docs,这可以使用xvfbwhich is "available on Linux and MacOS" 来完成,使用命令:
>> xvfb-run ./slimerjs myscript.js.
Run Code Online (Sandbox Code Playgroud)
虽然 OSX 附带了xvfb,但它没有相应的xvfb-run脚本。
如何使用 OSXxvfb版本获得相同的功能?
是否可以仅使用一个 Xvfb 进程同时为多个客户端提供服务?
或者,换一种说法:Xvfb 进程直接映射到一个屏幕,即多个客户端共享同一屏幕,或者每个新客户端都获得一个新的、独立的屏幕?