Я хочу снимать изображения с веб-камеры Logitech C910 с интервалами. Проблема в том, что после того, как сделан снимок, камера сбрасывает фокус , делая следующий снимок не сфокусированным.
Я использую v4l2-ctl
для настройки фокуса.
$v4l2-ctl --device=/dev/video1 --set-ctrl=focus_auto=0
$v4l2-ctl --device=/dev/video1 --set-ctrl=focus_absolute=119
Это мой скрипт для автоматизации захвата.
#!/bin/bash
while true; do
ffmpeg -f v4l2 -i /dev/video1 -vframes 1 $(date '+%Y%m%d%H%M%S')
sleep 60
done
Я попытался использовать fswebcam
и streamer
вместо 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
Установка фокуса на 119, создание первого снимка, установка фокуса снова на 119 и создание второго снимка также приводит к тому, что второе изображение не сфокусировано. Однако, если после первого снимка я изменил фокусировку на другое значение, а затем вернулся к 119, оба изображения сфокусировались.
#!/bin/bash
# Set Manual Focus
v4l2-ctl --device=/dev/video1 --set-ctrl=focus_auto=0
# Infinite Loop
while true; do
# Reset Focus
v4l2-ctl --device=/dev/video1 --set-ctrl=focus_absolute=136
v4l2-ctl --device=/dev/video1 --set-ctrl=focus_absolute=119
# Save Image
ffmpeg -f v4l2 -i /dev/video1 -vframes 1 $(date '+%Y%m%d%H%M%S')
# Wait
sleep 60
done
... так что это мой текущий рабочий скрипт, который сохраняет сфокусированное изображение, снятое с моей веб-камеры каждые 60 секунд. НО , каждый раз, когда делается снимок, объектив камеры перемещается, и механика даже издает странный щелкающий шум. Поскольку я хочу использовать это для создания длительных интервалов с тысячами снимков в день, я могу представить, что это приведет к чрезмерному износу камеры с течением времени. Поэтому я все еще ищу разные способы сделать это. ПРИМЕЧАНИЕ. Когда я не выполняю перефокусировку, шум щелчка отсутствует.
Поскольку сброс фокуса происходит каждый раз, когда захват с камеры останавливается (и светодиод камеры гаснет). Как я мог держать поток с камеры открытым и сохранять изображение из этого потока через определенные промежутки времени? Есть ли какие-либо другие способы, которыми я мог бы попытаться удержать камеру от сброса фокуса после окончания потока?
// Надеюсь, я не сделал вопрос слишком обширным.