伙计们:
当我在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)
所以我安装了这些库,但是它总是显示此错误。请帮助我。
我相信x11grab在此版本的ffmpeg中已弃用,尽管他们仅Changelog在3.3版本中将其写入。
如果您拖动ffmpeg的git版本并检查git log,则可以在2017年3月15日左右看到多个提交,5ed4644d6d 4fef648d10而其他提交则删除了旧x11grab引用。
的替代方法在ffmpeg 中x11grab被调用xcbgrab(高于3.2),可以使用构建--enable-libxcb。