我想定期从 Logitech C910 网络摄像头捕获图像。问题是,拍摄一张照片后,相机会重置焦点,导致下一张照片无法对焦。
我用来v4l2-ctl设置焦点。
$v4l2-ctl --device=/dev/video1 --set-ctrl=focus_auto=0
$v4l2-ctl --device=/dev/video1 --set-ctrl=focus_absolute=119
Run Code Online (Sandbox Code Playgroud)
这是我的自动捕获脚本。
#!/bin/bash
while true; do
ffmpeg -f v4l2 -i /dev/video1 -vframes 1 $(date '+%Y%m%d%H%M%S')
sleep 60
done
Run Code Online (Sandbox Code Playgroud)
我尝试使用fswebcamandstreamer代替,但ffmpeg结果相同。每次拍摄时焦点都会重置。
从网络摄像头播放视频$mpv /dev/video1也会在播放器关闭后重置焦点。
当使用 检查当前值时,在进行第一次和第二次拍摄后v4l2-ctl --list-ctrls的值保持不变。focus_absolute但第二个的输出没有重点。
$v4l2-ctl -d /dev/video1 --list-ctrls
...
focus_absolute 0x009a090a (int) : min=0 max=255 step=17 default=68 value=119
focus_auto 0x009a090c (bool) : default=1 value=0
Run Code Online (Sandbox Code Playgroud)
将焦点设置为 119 进行第一次拍摄,再次将焦点设置为 119 进行第二次拍摄也会导致第二张图像未对焦。然而,如果在拍摄第一张照片后我将焦点更改为其他值,然后又返回到 119,则两张图像都会对焦。
#!/bin/bash
# Set Manual …Run Code Online (Sandbox Code Playgroud)