Запись движения с вебки под Windows.
useful_faq — 28.06.2024 Сразу скажу: винды я не держал в руках со времён XP, что там и как сейчас не знаю. Но вот потребовалось неспешно настроить камеры. С железом вопросов нет, требования к софту:1) Freeware (open source - хорошо, но не обязательно)
2) Запись только по движению, на зоны кадры делить не нужно, но чувствительность настраивать нужно
3) Ограничение по времени записи одного фрагмента
4) Задать время, после которого движение считается завершённым
5) Указать что делать после записи фрагмента
Для знатоков: 80% моих потребностей это motion или ZoneMinder. А вот конфиг самописной софтины, которую я использую под дебианом, в идеале хотелось бы того же, ну, хотя бы примерно:
/*
Стандартные подстановки
%Name% меняется на Name, as is
%name% меняется на lc Name
%NAME% меняется на uc Name
%Name:tr% меняется на translit(Name), etc (только ALA-LC RUS)
%y - year %04u
%m - month %02u
%d - day %02u
%H - hour %02u
%M - min %02u
%S - sec %02u
$ENV{...} - понятно
*/
MotionFile "$ENV{HOME}/Video/motion/%y-%m-%d/%id%/%H_%M_%S.mkv"
LogFile "$ENV{HOME}/tmp/log/netcam-%name%.log"
LogLevel Info
LogComments True
LogStdout Yes
# По умолчанию "Camera"
Name Наружка
####UseTranslit Yes
Onvif "http://192.168.1.111:10080/onvif/device_service"
User user
Password password
# Текст на видео, {%localtime} как его понимает ffmpeg
[Overlay/Time]
Color yellow
X 1056
Y 692
Size 20
[End]
# Текст на видео, Name
[Overlay/Name]
Color white
X 6
Y 8
Size 20
[End]
# Максимальная длина записываемого фрагмента, секунды
MotionTime 60
# Сколько секунд ждать после окончания движения
MotionTimeout 8
RecordSound No
# После какого кол-ва ошибок получения кадра подряд переинициализировать
# камеру или завершать работу (см. WaitFor)
ErrorsMax 10
# Не выводить в лог первые N ошибок ( < ErrorsMax )
SkipErrors 2
# 0 или нет (по умолчанию) - не переинициализировать камеру,
# сразу завершать работу:
WaitFor 1m,30s
# Как часто снимать кадры для отлова движения, микросекунды
CapInterval 500_000
# Чувствительность: 1 - на каждую пылинку, 1_000 - может быть заметим мамонта
Threshold 20
/*
* запускается в отдельном потоке
* таймаут не контролируется (но SIGTERM, SIGINT etc обрабатываются)
* подстановки те же, плюс %f - имя записанного файла
*/
OnRecordEnd lftp -e \
' \
set net:reconnect-interval-base 8; \
set net:max-retries 1; \
put -O "Movies/motion/%name%/%y-%m-%d" -c "%f"; \
exit \
' \
ftp://user:[email protected]:2121
|
</> |