未知的输入格式:“ x11grab”

jjh*_*jjh 1 ffmpeg

伙计们:

当我在Linux中编译ffmpeg并运行ffmpeg时遇到问题。

我的环境:

1:ubuntu 17.10_x64_bit(我认为操作系统版本不是关键)

2:gcc(Ubuntu 6.3.0-19ubuntu1)6.3.0 20170618

3:ffmpeg开源代码:3.2

首先,我从ffmpeg 官方网站下载源代码。我在编译该项目时有说明吗?

./configure --prefix=/home/jjh/software/ffmpeg --enable-shared
make
make install
Run Code Online (Sandbox Code Playgroud)

它的工作没有任何错误,除了一些警告,然后我运行:

./ffmpeg -h
Run Code Online (Sandbox Code Playgroud)

我确保它能正常工作并输出。

但我想用ffmpeg来抓屏。所以我用这个构造(o):

ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg
Run Code Online (Sandbox Code Playgroud)

然后输出错误:

Unknown input format: 'x11grab'
Run Code Online (Sandbox Code Playgroud)

我想使用--enable-x11grab选项btw重新编译该项目,因此很多解决方案告诉我这一点。但是当我添加此选项时,出现一些错误:

Invalid option --enable-x11grab
Run Code Online (Sandbox Code Playgroud)

有人说我应该安装一些库:

libxfixes-dev
sudo apt-get install libxext-dev
Run Code Online (Sandbox Code Playgroud)

所以我安装了这些库,但是它总是显示此错误。请帮助我。

hal*_*elf 5

我相信x11grab在此版本的ffmpeg中已弃用,尽管他们仅Changelog在3.3版本中将其写入。

如果您拖动ffmpeg的git版本并检查git log,则可以在2017年3月15日左右看到多个提交,5ed4644d6d 4fef648d10而其他提交则删除了旧x11grab引用。

的替代方法在ffmpeg 中x11grab被调用xcbgrab(高于3.2),可以使用构建--enable-libxcb