Skip to content

LiveStreamInput (LSI)

Обзор

LiveStreamInput (LSI) — это модуль в составе mcaster, который реализует управление источниками сигналов и автоматическое переключение между основным и резервными источниками. Модуль обеспечивает высокую надежность вещания за счет автоматического переключения при проблемах с основным источником.

Принцип работы

Автоматическое переключение

LSI автоматически переключается между источниками при следующих условиях: - Отсутствие кадров на основном источнике - Проблемы с качеством сигнала - Технические сбои оборудования

Проверка резервных источников

В процессе работы основного источника LSI регулярно выполняет проверочные подключения к вторичным источникам для обеспечения готовности резерва к работе.

Совместимость источников

LSI проверяет совместимость основного и резервных источников по: - Кодекам - Аудиодорожкам - Параметрам потока - Другим характеристикам для бесшовного переключения

Конфигурация

Базовая настройка

stream Reg_1010_01_Kanal_ENC {
  input copy://Reg_1010_01_Kanal_sdi1;
  input copy://Reg_1010_01_Kanal_sdi2;
  title "01 ПЕРВЫЙ КАНАЛ";
  source_timeout 1;
}

Параметры конфигурации

Параметр Описание Обязательный Пример
input Источник видеосигнала Да copy://Reg_1010_01_Kanal_sdi1
title Название потока Нет "01 ПЕРВЫЙ КАНАЛ"
source_timeout Таймаут переключения (секунды) Нет 1

Расширенная конфигурация

stream Main_Channel {
  input copy://primary_source source_timeout=10;
  input copy://backup_source_1;
  input copy://backup_source_2;
  title "Основной канал";
  source_timeout 2;  
}

Мониторинг через HTTP API

Основные методы API

  • streams_list — список всех потоков
  • stream_get — детальная информация о потоке

Ключевые параметры stats

Переподключения и переключения

{
  "stats": {
    "input": {
      "retries": 15,           // Количество переподключений
      "input_switches": 3,     // Количество переключений между источниками
      "num_sec_on_primary_input": 86400,    // Время работы на основном источнике
      "num_sec_on_secondary_input": 3600    // Время работы на резервном источнике
    }
  }
}

Состояние резервных источников

{
  "stats": {
    "input": {
      "valid_secondary_inputs": 2,      // Количество рабочих резервных источников
      "invalid_secondary_inputs": 1,    // Количество сбойных резервных источников
      "divergent_inputs": 0             // Количество несовместимых источников
    }
  }
}

Интерпретация параметров мониторинга

Переподключения (stats.input.retries)

  • Нормальное значение: 0-5 переподключений в день
  • Проблемное значение: >10 переподключений в день
  • Действие: При высоком количестве переподключений необходимо проверить стабильность источника

Переключения (stats.input.input_switches)

  • Нормальное значение: 0-2 переключения в день
  • Проблемное значение: >5 переключений в день
  • Действие: Частые переключения указывают на проблемы с основным источником

Время работы на источниках

Сравнение параметров num_sec_on_primary_input и num_sec_on_secondary_input показывает: - Эффективность резервирования — сколько времени система работала на резерве - Качество основного источника — частота использования резерва - Потенциальный простой без автоматического переключения

Состояние резервных источников

Рабочие резервы (stats.input.valid_secondary_inputs)

  • Нормальное значение: >0 (есть рабочий резерв)
  • Критическое значение: 0 (нет рабочих резервов)
  • Действие: При значении 0 немедленно требуется ремонт резервных источников

Сбойные резервы (stats.input.invalid_secondary_inputs)

  • Нормальное значение: 0-1
  • Проблемное значение: >2
  • Действие: Рассмотреть удаление или снижение платы за нестабильные источники

Несовместимые источники (stats.input.divergent_inputs)

  • Нормальное значение: 0
  • Проблемное значение: >0
  • Риск: При аварии возможны нарушения проигрывания вплоть до зависания телевизоров
  • Действие: Привести источники к единому формату

Примеры мониторинга

Проверка состояния потока

# Получение списка потоков
curl -X GET "http://localhost:8080/api/streams_list"

# Получение детальной информации о потоке
curl -X GET "http://localhost:8080/api/stream_get?name=Reg_1010_01_Kanal_ENC"

Скрипт мониторинга

#!/bin/bash

# Проверка количества переподключений
retries=$(curl -s "http://localhost:8080/api/stream_get?name=Reg_1010_01_Kanal_ENC" | jq '.stats.input.retries')

if [ $retries -gt 10 ]; then
    echo "WARNING: High number of retries: $retries"
fi

# Проверка наличия резервных источников
valid_backups=$(curl -s "http://localhost:8080/api/stream_get?name=Reg_1010_01_Kanal_ENC" | jq '.stats.input.valid_secondary_inputs')

if [ $valid_backups -eq 0 ]; then
    echo "CRITICAL: No valid backup sources available"
fi

Устранение неполадок

Частые переподключения

  1. Проверьте стабильность основного источника
  2. Увеличьте source_timeout для снижения чувствительности
  3. Проверьте сетевые настройки между mcaster и источником
  4. Мониторьте логи модуля LSI

Отсутствие резервных источников

  1. Проверьте доступность резервных источников
  2. Убедитесь в правильности конфигурации
  3. Проверьте сетевую связность
  4. Восстановите резервные источники

Несовместимость источников

  1. Приведите источники к единому формату
  2. Проверьте кодеки и параметры
  3. Убедитесь в совпадении аудиодорожек
  4. Настройте единые параметры потока

Рекомендации по настройке

Оптимальные значения source_timeout

  • Стабильные источники: 1-2 секунды
  • Нестабильные источники: 3-5 секунд
  • Спутниковые источники: 5-10 секунд

Количество резервных источников

  • Минимум: 1 резервный источник
  • Рекомендуется: 2-3 резервных источника
  • Максимум: 5 резервных источников (для избежания сложности)

Мониторинг и алерты

alerts:
  - condition: "stats.input.valid_secondary_inputs == 0"
    severity: "critical"
    message: "No backup sources available"

  - condition: "stats.input.retries > 10"
    severity: "warning"
    message: "High number of reconnections"

  - condition: "stats.input.divergent_inputs > 0"
    severity: "warning"
    message: "Incompatible sources detected"

Заключение

LiveStreamInput (LSI) обеспечивает высокую надежность вещания за счет автоматического переключения между источниками. Правильная настройка и мониторинг модуля позволяют минимизировать простой сервиса и обеспечить стабильное вещание даже при проблемах с основным источником сигнала.