# Beacon Tracker Web Viewer Веб-приложение для просмотра видео потока с камеры в реальном времени из проекта beacon_track. ## Архитектура Приложение состоит из трех компонентов: 1. **C++ Beacon Tracker** - захватывает кадры с камеры, детектирует белую точку и записывает JPEG-кодированные кадры в shared memory 2. **Python Flask Server** - читает кадры из shared memory и стримит их через Server-Sent Events (SSE) 3. **HTML/JavaScript Frontend** - отображает видео поток в браузере ## Установка ### Зависимости для Python ```bash cd /home/awe/Documents/radar_frontend/web_viewer pip install -r requirements.txt ``` Если у вас нет `posix_ipc`, установите его: ```bash pip install posix_ipc ``` ### Сборка C++ приложения ```bash cd /home/awe/Documents/radar_frontend/beacon_track/build cmake .. make ``` ## Настройка Убедитесь, что в файле `beacon_track/config.ini` включены следующие параметры: ```ini [Processing] EnableFrameBuffer = true FrameBufferMaxSize = 2097152 FrameBufferJpegQuality = 85 ``` ## Запуск ### 1. Запустите C++ приложение beacon_track ```bash cd /home/awe/Documents/radar_frontend/beacon_track/build ./main realtime output.txt ``` Это создаст shared memory сегмент `BeaconFrameBuffer` и начнет записывать кадры. ### 2. Запустите Flask сервер В отдельном терминале: ```bash cd /home/awe/Documents/radar_frontend/web_viewer python3 app.py ``` Сервер запустится на `http://0.0.0.0:5000` ### 3. Откройте браузер Перейдите на: ``` http://localhost:5000 ``` или с другого компьютера в сети: ``` http://:5000 ``` ## Тестирование shared memory reader Чтобы проверить работу shared memory reader без веб-интерфейса: ```bash cd /home/awe/Documents/radar_frontend/web_viewer python3 shared_memory_reader.py ``` Это отобразит информацию о получаемых кадрах в консоли. ## API Endpoints - `GET /` - главная страница с видео плеером - `GET /stream` - Server-Sent Events stream с JPEG кадрами - `GET /status` - JSON статус подключения и последнего кадра - `GET /latest_frame` - последний кадр как JPEG изображение ## Возможные проблемы ### Shared memory не найден Если вы видите ошибку "Shared memory segment 'BeaconFrameBuffer' does not exist": 1. Убедитесь, что C++ приложение beacon_track запущено 2. Проверьте, что в config.ini параметр `EnableFrameBuffer = true` 3. Убедитесь, что приложение скомпилировано после изменений ### Нет кадров Если подключение установлено, но кадры не появляются: 1. Проверьте логи C++ приложения на наличие ошибок 2. Убедитесь, что камера работает корректно 3. Проверьте размер JPEG кадров - они не должны превышать `FrameBufferMaxSize` ### Низкий FPS Если FPS низкий: 1. Увеличьте `FrameBufferJpegQuality` в config.ini (это уменьшит размер кадров) 2. Уменьшите разрешение камеры в config.ini 3. Проверьте загрузку CPU ## Производительность - **Разрешение**: зависит от настроек камеры (например, 1920x1080) - **FPS**: до 30-60 FPS (зависит от камеры и настроек) - **Задержка**: обычно 20-100ms - **Битрейт**: зависит от качества JPEG и содержимого кадра (обычно 1-5 Mbps) ## Лицензия Часть проекта beacon_track