add stream_module
This commit is contained in:
136
web_viewer/README.md
Normal file
136
web_viewer/README.md
Normal file
@ -0,0 +1,136 @@
|
||||
# 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://<IP_адрес_вашего_компьютера>: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
|
||||
Reference in New Issue
Block a user