change flask to fastapi
This commit is contained in:
183
setup_streaming.sh
Executable file
183
setup_streaming.sh
Executable 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 ""
|
||||
Reference in New Issue
Block a user