我正在尝试从运行的 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)
但我还是想在这里得到更多的反馈和答案。
小智 5
我碰巧遇到了同样的问题并发现:您必须指定深度(在这种情况下为 16),因此 ffmpeg 不会产生黑屏。
例如
Xvnc -geometry 1024x768 -depth 16 :10 <<---WORKS
Xvnc -geometry 1024x768 :10 <<---does NOT work, produce black screen.
Run Code Online (Sandbox Code Playgroud)