Files
radar_frontend/setup_streaming.sh
2025-11-20 15:35:36 +03:00

184 lines
5.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 ""