Простой инструмент видеонаблюдения с детекцией движения через веб‑камеру. При обнаружении движения пишет видео и звук, делает снимок кадра, собирает 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
- Первичный запуск для создания конфига:
python security.py
В корне появится config.json. Заполните секцию telegram.username (логин получателя, без @).
- Зашифруйте Telegram‑секреты в
config.json:
python encrypter.py
Скрипт запросит api_id, api_hash, bot_token и пароль шифрования. Повторный запуск можно делать и с аргументами CLI, но безопаснее вводить пароль интерактивно.
- Запустите основной процесс:
python security.py
Записи и снимки сохраняются в папку по умолчанию ./records (создаётся автоматически), файлы также отправляются в Telegram.
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 - Некоторые камеры драйверно ограничивают управление параметрами экспозиции/яркости