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