Система мониторинга камер
Система для мониторинга видео с камер в реальном времени с детекцией остановки изображения и пикселизации.
Использованные материалы:
https://www.figma.com/design/s7jc7c13gjRSXhus5c16kv/Untitled?node-id=0-1&t=GR5kPAJrVH47zfGM-1 https://docs.google.com/presentation/d/141AfUvOb5UnS4HW-wjrDpxiAzZKUppQa0T6zVJ7_clY/edit?slide=id.g39c1585516a_0_3#slide=id.g39c1585516a_0_3
Возможности
- Мониторинг нескольких камер одновременно
- Детекция замороженного изображения
- Детекция пикселизации/низкого качества
- Система уведомлений с индексом камеры
- Веб-интерфейс для мониторинга
- Статистика работы камер
- API для управления камерами
Установка
- Создайте виртуальную среду и установите зависимости:
python -m venv venv
./venv/Scripts/Activate
pip install -r requirements.txt
pip install git+https://github.com/bbc/rd-apmm-python-lib-rtp.git
pip install rtp
Настройка параметров
В классе VideoDiagnostics можно настроить:
self.freeze_threshold = 500 # Порог для детекции заморозки
self.freeze_frames = 3 # Кадры для подтверждения заморозки
self.quality_threshold = 30 # Порог качества изображения
self.timeout_seconds = 10 # Таймаут для определения потери связи
В файле main.py можно добавить новую камеру в словарь:
CAMERA_CONFIGS = [ { "id": 1, "name": "Camera 1", "rtsp_url": "rtsp://ins046msc:wQpQk35t@85.141.77.197:7554/ISAPI/Streaming/Channels/101" }, { "id": 2, "name": "Camera 2", "rtsp_url": "rtsp://ins046msc:wQpQk35t@85.141.77.197:7554/ISAPI/Streaming/Channels/103" } ]
Логирование
Система ведет подробные логи всех событий:
- Подключение/отключение камер
- Обнаружение проблем
- Статистика работы
Требования
- Python 3.8+
- OpenCV
- FastAPI
- NumPy
- Доступ к RTSP потокам камер