Архитектура и функционал Mediaserver
Основные компоненты
Linux system service (системный сервис Linux)
Многопоточный сервис, реализованный на C/C++
Конфигурирование
media-server.ini
Файл конфигурирования mediaserver, в котором возможно настроить:
Кластер
Количество системных потоков
Сетевые порты и доступные сервисы
SSL и секретные ключи для токенов авторизации
Подключаемые модули
Пути размещения архива
streams/<uid>.ini
Файл конфигурации каждого обрабатываемого потока, в котором возможно настроить:
Уникальный идентификатор потока (UID)
Какие каналы захватывать (video, audio, application)
Запись DVR (длительность хранения, куда записывать)
Интервалы переподключения
RTSP url источника (какую камеру захватывать)
Захват RTSP-потока
Функция выполняет следующие действия:
Подключение
Переподключение в случае потери соединения
Дефрагментация RTP
Архив (DVR)
Компонент имеет следующие функции:
Индексирование медиаданных
Сохранение контента
Создание диапазонов (индексирование)
Удаление устаревших записей
Запись по событиям
Воспроизведение (Playback)
Функция выполняет следующие действия:
Авторизация клиентов для возможности воспроизведения:
Public – доступ к потоку неограничен
Protected – для доступа к потоку должен быть указан список разрешенных IP-адресов (whitelist)
Private – доступ к потоку осуществляется на основании временного токена
Преобразование в форматы HLS, MP4, RTSP
Доставка медиаконтента
Preview и Videoshot
WEB интерфейс (cpanel)
LUA интерфейс (для изменения)
Состояние потоков
Информация о потоке
Информация о ресурсах системы и сервера
Модуль API
LUA интерфейс (для изменения)
Информация о сервере, кластере, потоках
Управление потоками
Генерация токенов доступа
Кластер (резервирование)
Компонент имеет следующие функции:
Основной, резервный сервер для потока
Проверка состояния серверов
Перезахват потоков при выходе основного сервера из строя
Трансфер потоков