今天要记录的是通过Xvfb实现无显示器情况下调用浏览器,实现浏览器视频功能。
问题是这样的,最近我在学openVidu的相关技术,测试类中有通过浏览器去调取视频的相关代码,在windows操作系统下能够正常运行,能够通过java代码来调用浏览器,同样在有桌面窗口的linux也是可以正常调起来浏览器的。
不过在无桌面窗口的linux服务器上就不可以了,因为浏览器调用摄像头和麦克风是需要有UI界面的,经过的一番查询,期初也没有找到相关的实现功能。
就在昨天经过跟同事沟通讨论,得知Xvfb可以实现在没有显示器的情况下正常调用浏览器,并完成视频的播放和录制相关功能。
Xvfb是一个实现了X11显示服务协议的显示服务器。 不同于其他显示服务器,Xvfb在内存中执行所有的图形操作,不需要借助任何显示设备。
了解了以上情况,用起来就很简单了
安装Xvfb
yum install Xvfb -y
启动
Xvfb -ac :99 -screen 0 1280x1024x16 &
切换到虚拟显示器 ,99为启动时设置的参数 ,可以自己指定
export DISPLAY=:99
启动我们需要的程序,这里我是java程序
java -jar xxx.jar
这样 java就能在没有显示器和图像化界面的情况下调用浏览器了