Архитектура и функционал Mediaserver
![](../../../__attachments/4833347917/%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-20220921-110131.png?inst-v=5e52fa89-af48-462a-9bad-31c36e430795)
Архитектура и функционал медиасервера
Основные компоненты
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 интерфейс (для изменения)
Информация о сервере, кластере, потоках
Управление потоками
Генерация токенов доступа
Кластер (резервирование)
Компонент имеет следующие функции:
Основной, резервный сервер для потока
Проверка состояния серверов
Перезахват потоков при выходе основного сервера из строя
Трансфер потоков