change flask to fastapi

This commit is contained in:
awe
2025-11-20 15:35:36 +03:00
parent 0e1b3a2916
commit a85368fdfd
9 changed files with 1452 additions and 121 deletions

183
setup_streaming.sh Executable file
View File

@ -0,0 +1,183 @@
#!/bin/bash
# Скрипт установки и настройки системы потоковой передачи видео
# Версия: 2.0
# Дата: 2025-11-20
set -e # Выход при ошибке
echo "======================================"
echo " Установка системы видеостриминга"
echo "======================================"
echo ""
# Цвета для вывода
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Определение платформы
if [ -f /proc/device-tree/model ]; then
PLATFORM=$(cat /proc/device-tree/model)
echo -e "${GREEN}Платформа: ${PLATFORM}${NC}"
else
PLATFORM="Unknown"
echo -e "${YELLOW}Платформа: ${PLATFORM}${NC}"
fi
# 1. Установка системных зависимостей
echo ""
echo "Шаг 1: Установка системных зависимостей (GStreamer)..."
echo "----------------------------------------"
if command -v apt-get &> /dev/null; then
echo "Используется APT package manager"
echo "Обновление списка пакетов..."
sudo apt-get update -qq
echo "Установка GStreamer..."
sudo apt-get install -y \
gstreamer1.0-tools \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev
# Для Raspberry Pi - установка OMX плагинов
if [[ "$PLATFORM" == *"Raspberry Pi"* ]]; then
echo "Обнаружен Raspberry Pi - установка аппаратных кодеков..."
sudo apt-get install -y gstreamer1.0-omx gstreamer1.0-omx-rpi || true
fi
echo -e "${GREEN}✓ GStreamer установлен${NC}"
else
echo -e "${RED}✗ APT не найден. Установите GStreamer вручную.${NC}"
exit 1
fi
# Проверка установки GStreamer
echo ""
echo "Проверка установки GStreamer..."
if gst-inspect-1.0 x264enc &> /dev/null; then
echo -e "${GREEN}✓ x264enc найден${NC}"
else
echo -e "${RED}✗ x264enc не найден${NC}"
fi
if gst-inspect-1.0 mpegtsmux &> /dev/null; then
echo -e "${GREEN}✓ mpegtsmux найден${NC}"
else
echo -e "${RED}✗ mpegtsmux не найден${NC}"
fi
# 2. Установка Python зависимостей
echo ""
echo "Шаг 2: Установка Python зависимостей..."
echo "----------------------------------------"
if command -v python3 &> /dev/null; then
PYTHON_VERSION=$(python3 --version)
echo "Найден: ${PYTHON_VERSION}"
# Установка pip если его нет
if ! command -v pip3 &> /dev/null; then
echo "Установка pip..."
sudo apt-get install -y python3-pip
fi
echo "Установка Flask-SocketIO и зависимостей..."
cd web_viewer
pip3 install -r requirements.txt --user
cd ..
echo -e "${GREEN}✓ Python зависимости установлены${NC}"
else
echo -e "${RED}✗ Python 3 не найден. Установите Python 3.${NC}"
exit 1
fi
# 3. Сборка C++ приложения
echo ""
echo "Шаг 3: Сборка C++ приложения..."
echo "----------------------------------------"
cd beacon_track
# Создание build директории если её нет
if [ ! -d "build" ]; then
echo "Создание директории build..."
mkdir build
fi
cd build
# Очистка старой сборки
echo "Очистка старой сборки..."
rm -rf CMakeCache.txt CMakeFiles cmake_install.cmake Makefile main
# CMake конфигурация
echo "Запуск CMake..."
cmake .. -DCMAKE_BUILD_TYPE=Release
# Сборка
echo "Компиляция..."
CORES=$(nproc)
echo "Использование ${CORES} ядер CPU..."
make -j${CORES}
if [ -f "main" ]; then
echo -e "${GREEN}✓ Сборка завершена успешно${NC}"
echo "Исполняемый файл: $(pwd)/main"
else
echo -e "${RED}✗ Ошибка сборки${NC}"
exit 1
fi
cd ../..
# 4. Проверка конфигурации
echo ""
echo "Шаг 4: Проверка конфигурации..."
echo "----------------------------------------"
CONFIG_FILE="beacon_track/config.ini"
if grep -q "EnableVideoStreaming = true" "$CONFIG_FILE"; then
echo -e "${GREEN}✓ Video Streaming включен в config.ini${NC}"
else
echo -e "${YELLOW}! Video Streaming выключен в config.ini${NC}"
echo " Отредактируйте config.ini и установите EnableVideoStreaming = true"
fi
# Вывод настроек стриминга
echo ""
echo "Текущие настройки потоковой передачи:"
grep -A 10 "\[VideoStreaming\]" "$CONFIG_FILE" | grep -E "(Enable|Stream)" || echo "Секция [VideoStreaming] не найдена"
# 5. Инструкции по запуску
echo ""
echo "======================================"
echo " Установка завершена!"
echo "======================================"
echo ""
echo -e "${GREEN}Все компоненты установлены и готовы к использованию.${NC}"
echo ""
echo "Для запуска системы:"
echo ""
echo "1. Терминал 1 (C++ Backend):"
echo " cd beacon_track/build"
echo " ./main realtime output.txt"
echo ""
echo "2. Терминал 2 (Flask Web):"
echo " cd web_viewer"
echo " python3 app.py"
echo ""
echo "3. Откройте браузер:"
echo " http://localhost:5000"
echo ""
echo "Документация: STREAMING_UPGRADE_README.md"
echo ""