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