将 ffmpeg 与 xvfb 一起使用会呈现屏幕的裁剪版本
Using ffmpeg with xvfb renders a cropped version of the screen
我正在使用以下命令在虚拟帧缓冲区内渲染 chrome 浏览器 运行 的视频(使用 xvfb
):
ffmpeg -f x11grab -i :5 -s `DISPLAY=:5 xdpyinfo | grep 'dimensions:'|awk '{print }'` -r 30 tests.mpg
当我省略 DISPLAY=:5 xdpyinfo | grep 'dimensions:'|awk '{print }'
时,它将在大约 1024x768
处呈现,因此我调用了 xdpyinfo 来获取显示器的分辨率并将其告知 ffmpeg。
但是当我使用该命令时,它显示相同的裁剪区域,只是拉伸以适应我给 ffmpeg 的分辨率。
我希望能够在不裁剪或拉伸的情况下记录整个虚拟帧缓冲区。有办法吗?
我今天早上刚从源代码编译了ffmpeg,运行 v2.8.git
-i
之后的参数控制输出,而不是输入。
要设置源分辨率,请在 -i
之前使用 -video_size
和 xdpyinfo
输出 。对于帧率使用 -framerate
.
x11grab
输入的格式为 [hostname]:display_number.screen_number[+x_offset,y_offset]
。
ffmpeg -video_size `DISPLAY=:5 xdpyinfo | grep 'dimensions:'|awk '{print }'` -framerate 30 -f x11grab -i :5.0+0,0 output.mpg
我正在使用以下命令在虚拟帧缓冲区内渲染 chrome 浏览器 运行 的视频(使用 xvfb
):
ffmpeg -f x11grab -i :5 -s `DISPLAY=:5 xdpyinfo | grep 'dimensions:'|awk '{print }'` -r 30 tests.mpg
当我省略 DISPLAY=:5 xdpyinfo | grep 'dimensions:'|awk '{print }'
时,它将在大约 1024x768
处呈现,因此我调用了 xdpyinfo 来获取显示器的分辨率并将其告知 ffmpeg。
但是当我使用该命令时,它显示相同的裁剪区域,只是拉伸以适应我给 ffmpeg 的分辨率。
我希望能够在不裁剪或拉伸的情况下记录整个虚拟帧缓冲区。有办法吗?
我今天早上刚从源代码编译了ffmpeg,运行 v2.8.git
-i
之后的参数控制输出,而不是输入。
要设置源分辨率,请在 -i
之前使用 -video_size
和 xdpyinfo
输出 。对于帧率使用 -framerate
.
x11grab
输入的格式为 [hostname]:display_number.screen_number[+x_offset,y_offset]
。
ffmpeg -video_size `DISPLAY=:5 xdpyinfo | grep 'dimensions:'|awk '{print }'` -framerate 30 -f x11grab -i :5.0+0,0 output.mpg