Как писать скрипты автоматизации для бесплатного NVR
Автоматизация NVR экономит время и повышает надёжность системы видеонаблюдения. Ниже — практическое руководство для домашних пользователей, инсталляторов и IT‑специалистов. Смотрите, какая штука: большинство задач решаются простыми скриптами. Я объясню выбор софта и оборудования, покажу схемы, реальные примеры скриптов и дам чек‑лист для запуска.
Коротко о выборе бесплатного NVR
Бесплатные NVR — это программные решения, которые можно установить на сервер или мини‑ПК. Популярные варианты: Shinobi, ZoneMinder, MotionEye, Kerberos.io, Frigate. Они поддерживают RTSP/ONVIF‑камеры и имеют API/webhook‑вызовы. Если нужно купить камеру или регистратор, посмотрите каталог y‑ss.ru:
https://y-ss.ru/catalog/sistemy_videonablyudeniya/
и общий каталог:
https://y-ss.ru/catalog/.
Типовая схема автоматизации
Схема простая: камера → NVR (сервер) → скрипты/сервер автоматизации → хранилище/уведомления.
Камера (RTSP/ONVIF)
↓
NVR (Shinobi/ZoneMinder)
↓
Webhook/API/SSH → Скрипты (Bash/Python)
↓
Хранилище (NAS/S3) и уведомления (Telegram/Email)
Что можно автоматизировать
- Сохранение фрагментов при детекции движения.
- Архивация видео на NAS или облако по расписанию.
- Управление PTZ по сценарию (патрулирование, возврат в «бережный» режим).
- Оповещения: Telegram, SMS, почта.
- Ротация и очистка старых записей.
- Интеграция с СКУД или тревожными входами.
Примеры простых скриптов
1) Скачать моментальный снимок с RTSP через ffmpeg (Bash):
#!/bin/bash
URL="rtsp://user:pass@192.168.1.10:554/stream"
OUT="/var/www/html/snap.jpg"
ffmpeg -y -rtsp_transport tcp -i "$URL" -vframes 1 -q:v 2 "$OUT"
2) Отправить уведомление в Telegram (Bash):
#!/bin/bash
TOKEN="123:ABC"
CHAT_ID="987654321"
TEXT="Движение у камеры 1"
curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" -d text="$TEXT"
3) Автоматический перенос записей на NAS (Python, использование rsync/SSH):
import subprocess
src="/var/lib/nvr/records/"
dst="user@nas:/mnt/records/"
subprocess.run(["rsync","-avz","--remove-source-files",src,dst])
4) ONVIF PTZ‑команда (Python + onvif‑zeep):
from onvif import ONVIFCamera
cam = ONVIFCamera('192.168.1.10', 80, 'user', 'pass')
ptz = cam.create_ptz_service()
# пример: перейти в позицию
ptz.Goto({'ProfileToken':'profile0','Position':{'PanTilt':{'x':0.0,'y':0.0},'Zoom':{'x':1.0}}})
Интеграция со свободными NVR (на примере Shinobi)
Shinobi имеет REST API. Типичный сценарий: при срабатывании детектора NVR выполняет HTTP POST на ваш сервер. На сервере — скрипт, который:
- получает данные о событии,
- сохраняет метаданные в БД,
- вызывает ffmpeg для вырезки нужного фрагмента,
- отправляет уведомление.
Пример curl‑вызова к API Shinobi:
curl -s -X POST "http://nvr:8080/api/record/start" \
-H "Content-Type: application/json" \
-d '{"key":"APIKEY","file":"on_event.mp4","length":30}'
Хранение и расчёт места
Ниже пример расчёта для одной камеры:
| Параметр | Значение | Комментарий |
| Разрешение | 1080p | 2–4 Mbps при H.264 |
| Битрейт | 3 Mbps | постоянный |
| Гигабайт в час | ≈1.35 GB | 3 Mbps → 3600s → 1.35GB |
| На 30 дней | ≈972 GB | при непрерывной записи |
Если запись по детекции — место расходуется меньше. Резервируйте 20–30% для ротации и логов.
Безопасность и закон
- Закройте доступ к NVR снаружи через VPN или прокси.
- Используйте сильные пароли и обновляйте ПО.
- Шифруйте каналы администрирования.
- Проверьте местные законы о видеозаписи: куда можно ставить камеры, срок хранения, обязанность уведомлять.
Запись людей в частных зонах регулируется; в общественных местах часто допустима, но срок хранения может быть ограничен.
Советы по выбору оборудования
Если вам нужен недорогой вход в систему, берите камеры с RTSP/ONVIF и PoE‑питанием. Для хранения выбирайте NAS с RAID. Каталог подходящих камер и регистраторов — на y‑ss.ru:
Раздел системы видеонаблюдения
и общий каталог:
Каталог оборудования.
Чек‑лист перед запуском
- Камеры поддерживают RTSP/ONVIF.
- NVR выбран (Shinobi/ZoneMinder/Frigate и т. п.).
- Настроен доступ к API или webhook событий.
- Есть план хранения и резервирования.
- Настроены уведомления (Telegram/Email).
- Ограничен внешний доступ (VPN, firewall).
- Проверены юридические требования к записи.
Финишная мысль
Автоматизация бесплатного NVR — это набор небольших скриптов и надёжная схема хранения. Начните с простых задач: снимки по событию, отправка уведомлений и перенос важных записей на NAS. Потом добавьте PTZ‑сценарии и интеграцию с другими системами. Если нужно подобрать камеры или оборудование по проекту, смотрите каталог y‑ss.ru и выбирайте оборудование с поддержкой RTSP/ONVIF — это облегчит автоматизацию.