我正在尝试使用 ffmpeg 的命令从终端拍照:
ffmpeg -f video4linux2 -s 4208x3120 -i /dev/video1 -qscale:v 2 -frames 1 -ss 00:00:20 out.png
但是它似乎忽略了该-ss
选项。我的想法是等待一段时间让相机自动对焦。无论值是多少,该选项都会被忽略,并且图片会立即保存,导致经常失焦。相机中有自动对焦功能(See3cam 130),如果我使用 cheese,它几乎会立即对焦。有什么提示吗?
编辑
-ss
把参数放在前面-i
没有帮助。还尝试了不同的相机,结果相同。
答案1
我怀疑你想要的是--delay 5
FFmpeg 的类型选项,目前除了作为功能请求外,它还不存在。不过,有一个较旧的实用程序fswebcam
,我已在我的系统上进行了全面测试,它可以实现确切地你想要的。安装方式:
sudo apt-get install fswebcam
并运行简单的命令行类似如下:
fswebcam --delay 5 --skip 200 --png 5 testing.png
A更加精致在我的系统上运行时,命令行加上完整的终端输出如下所示:
andrew@ilium~$ fswebcam --device /dev/video0 \
> --input "Camera 1" \
> --resolution 800x600 --delay 5 \
> --skip 200 --png 5 \
> testing.png
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
Delaying 5 seconds.
--- Capturing frame...
Skipping 200 frames...
Capturing 1 frames...
Captured 201 frames in 6.64 seconds. (30 fps)
--- Processing captured image...
Setting output format to PNG, quality 5
Writing PNG image to 'testing.png'.
andrew@ilium~$
该选项--delay 5
使网络摄像头有机会初始化,同时该选项--skip 200
会在流打开后延迟约 6 秒进行屏幕截图。您需要对此进行一些试验,以适应特定相机的自动对焦时间。
Linux 命令行有多酷啊:)