我希望能够读取发送到 X 服务器的数据,并将其传输到我的应用程序中进行实时处理。我尝试使用 ffmpeg [2] 来捕获所有数据,但它占用了太多 CPU 资源,而且我不需要创建 mpeg 文件,我只需要进行实时处理。此外,ffmpeg 不会捕获鼠标。所以我希望接入 X 会占用更少的资源,并且它会捕获鼠标。另一个选择是能够接入 HDMI 输出。
我正在运行 ubuntu 14.04 LTS。
编辑:
- 不需要[创建] mpeg [文件]。
- ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 -c:v libx264 捕获.mkv
- ffmpeg 输出
答案1
捕获鼠标
我猜你缺少一些 XCB 依赖项,所以ffmpeg
无法捕获鼠标。你需要一个新的ffmpeg
。
如果要编译,请确保安装 XCB 依赖项:libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev
。请参阅FFmpeg Wiki:Ubuntu 编译指南了解更多详细信息。或者,您也可以使用mc3man 的 PPA而不是编译。
示例命令
您的要求:
- 未压缩的输出
- 不创建输出文件(我假设您想通过管道传输输出)
此示例将以 mpegts 格式输出 rawvideo,但您可能希望更改它以满足您的需求。请参阅ffmpeg -formats
列表,但请注意,并非所有格式都适合管道传输,例如 MOV 和 MP4。
ffmpeg -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 \
-c:v rawvideo -f mpegts -