Ubuntu18.04下FFmpeg使用gdigrab录屏报错Unknown input format如何解决
Ubuntu 18.04 下使用FFmpeg录制指定窗口的解决方案
报错原因
gdigrab是Windows平台专属的屏幕采集输入格式,dshow是Windows的DirectShow多媒体采集框架,二者均不支持Linux系统,因此会出现格式不识别的报错。
解决方案1:使用FFmpeg原生x11grab采集(Ubuntu18.04默认X11桌面可用)
- 方法A:通过窗口标题直接匹配录制
直接替换原命令的输入格式即可,适配Linux的命令如下:
ffmpeg -f x11grab -framerate 30 -window_title "german.avi - VLC media player" -i :0.0 -b:v 3M germ.flv
如果需要输出MP4格式,仅需把输出文件名后缀改为.mp4即可。
- 方法B:通过窗口ID精准匹配录制
如果窗口标题存在重复,可先获取目标窗口的唯一ID:
- 运行命令
xwininfo,此时鼠标会变成十字形状,点击你需要录制的目标窗口 - 从返回结果中复制
Window id:后面的十六进制ID值,替换到下方命令的对应位置:
ffmpeg -f x11grab -framerate 30 -window_id 你获取的窗口ID -i :0.0 -b:v 3M germ.mp4
如果你的Ubuntu18.04切换过Wayland显示协议,x11grab会失效,可在登录界面点击齿轮图标选择「Ubuntu on Xorg」切回X11即可正常使用上述命令。
解决方案2:使用GUI工具录制(操作更简便)
- SimpleScreenRecorder
轻量级录屏工具,支持窗口选择、码率/格式自定义,安装及使用方法:
- 安装:
sudo apt update && sudo apt install simplescreenrecorder - 打开后选择「录制特定窗口」,点击选中目标窗口,按引导设置输出格式为FLV/MP4、视频码率等参数,即可启动录制。
- OBS Studio
专业级录屏推流工具,适合有更多自定义需求的场景:
- 安装:
sudo apt install obs-studio - 启动后添加「窗口捕获(X Composite)」源,选择对应目标窗口,设置输出格式后即可录制。
内容的提问来源于stack exchange,提问作者Abdul ahad
相关产品推荐
相关产品推荐

