Skip to content

MrGeRoI/webcam-motion-security

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

webcam-motion-security

Простой инструмент видеонаблюдения с детекцией движения через веб‑камеру. При обнаружении движения пишет видео и звук, делает снимок кадра, собирает MP4 (через ffmpeg) и отправляет уведомления/файлы в Telegram.

Возможности

  • Детекция движения: порог по EMA разности кадров (OpenCV)
  • Запись: видео (AVI) + звук (WAV) с последующей сборкой в MP4 (ffmpeg)
  • Уведомления: отправка снимка и MP4 в Telegram (Telethon)
  • Настройка устройств и чувствительности: выбор камеры/аудио, порог, таймаут, EMA
  • Простая защита секретов: шифрование api_id/api_hash/bot_token (AES‑GCM + scrypt)

Требования

  • Python 3.10+
  • Установленный ffmpeg в PATH
  • Веб‑камера и микрофон
  • Зависимости Python: opencv-python, numpy, sounddevice, telethon, cryptography

Быстрая установка зависимостей:

pip install opencv-python numpy sounddevice telethon cryptography

Быстрый старт

  1. Первичный запуск для создания конфига:
python security.py

В корне появится config.json. Заполните секцию telegram.username (логин получателя, без @).

  1. Зашифруйте Telegram‑секреты в config.json:
python encrypter.py

Скрипт запросит api_id, api_hash, bot_token и пароль шифрования. Повторный запуск можно делать и с аргументами CLI, но безопаснее вводить пароль интерактивно.

  1. Запустите основной процесс:
python security.py

Записи и снимки сохраняются в папку по умолчанию ./records (создаётся автоматически), файлы также отправляются в Telegram.

Конфигурация (config.json)

  • video_device: индекс камеры (например, 0)
  • audio_device: индекс входного аудиоустройства (или null для авто)
  • sensitivity: порог (сумма разности кадров), влияет на запуск записи
  • timeout: пауза (сек) без движения до остановки записи
  • output_dir: каталог для файлов (по умолчанию ./records)
  • ema_alpha: сглаживание EMA для метрики движения (0..1)
  • debug: отладочный режим (окно предпросмотра)
  • telegram.api_id/api_hash/bot_token: значения хранятся в зашифрованном виде
  • telegram.username: получатель в Telegram (строка, без @)

Полезные утилиты

  • scripts/sense.py — сбор фонового шума и оценка разумного порога чувствительности
  • scripts/bot.py — удобная настройка параметров камеры (яркость/контраст/экспозиция)

Структура проекта

.
├─ security.py           # основной запуск детектора и отправки в Telegram
├─ encrypter.py          # шифрование и запись Telegram‑секретов в config.json
├─ config.json           # конфигурация (создаётся при первом запуске)
├─ scripts/
│  ├─ recorder.py        # логика детекции/записи/сборки MP4/отправки
│  ├─ crypt.py           # AES‑GCM + scrypt для encrypt/decrypt
│  ├─ sense.py           # помощник для подбора sensitivity
│  └─ bot.py             # регулировка параметров камеры (GUI‑слайдеры)
├─ records/           # выходные файлы (может создаваться автоматически)

Примечания

  • Получите api_id/api_hash на my.telegram.org, bot_token — у @BotFather
  • Убедитесь, что ffmpeg установлен и доступен в PATH
  • Некоторые камеры драйверно ограничивают управление параметрами экспозиции/яркости

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages