Архитeктура Mediaserver
Mediaserver – это мощная платформа для обработки и управления медиаданными, которая состоит из нескольких ключевых модулей, каждый из которых отвечает за выполнение определенных функций. На данной странице документации мы рассмотрим архитектуру Mediaserver и особенности каждого из его модулей: Capture, Streaming и DVR, а также сервиса Web.
На странице:
Архитектурная схема

Архитектура Mediaserver
Модуль Capture
Модуль Capture отвечает за организацию и поддержание соединения с камерой (источником потока). Он выполняет следующие ключевые функции:
Предоставляет API для захвата потоков модулями (внутренними клиентами).
Захватывает потоки RTSP по протоколам TCP/UDP.
Обрабатывает RTP пакеты.
Для выполнения этих задач в Capture есть два типа обработчиков:
Streamer. При добавлении нового потока, создается отдельный обработчик Streamer. Он предоставляет интерфейс, который обрабатывает RTP пакеты потоков с камер и передает их для дальнейшего стриминга.
Recorder. Данный обработчик создается в том случаем, если включена запись потока. Он предоставляет интерфейс, который обрабатывает RTP пакеты потоков с камер и далее передает пакеты в архив DVR/Archive.
Модуль Streaming
Модуль Streaming выполняет следующие функции по управлению потоками видео в различных форматах и протоколах:
RTSP Live стриминг – передача видео в реальном времени с помощью протокола RTSP.
RTSP Archive/DVR стриминг – воспроизведение видео из архива с использованием RTSP.
HLS Live стриминг – передача видео в реальном времени с использованием протокола HLS.
HLS Archive/DVR стриминг – воспроизведение видео из архива с использованием HLS.
WebRTC Live стриминг – передача видео в реальном времени с использованием технологии WebRTC.
WebRTC Archive/DVR стриминг – воспроизведение видео из архива с использованием WebRTC.
Получение записи в отдельном архиве в формате fMP4.
Получение записи в отдельном архиве TAR – сохранение видео в архив в формате TAR, что позволяет упаковывать множество файлов в один архивный файл для удобного хранения и управления.
Для осуществления функциональности сервис Streaming взаимодействует со следующими обработчиками Live/DVR player:
HLS Live / RTSP Live / WebRTC Live – обрабатывают запросы на просмотр видео Live.
HLS DVR / RTSP DVR / WebRTC DVR – обрабатывают запросы на просмотр видео из архива Archive/DVR.
Сервис DVR player обеспечивает загрузку всех RTP пакетов, записанных в архив Archive/DVR, по указанному потоку (Stream UID) и временной отметке (Time stamp).
Модуль DVR
Модуль DVR в Mediaserver позволяет записывать видеопотоки и работать с видеоархивами. Эта функция, называемая DVR (Digital Video Recording), предоставляет гибкие возможности настройки записи, хранения и дальнейшего использования архива для каждого потока. Этот подход обеспечивает удобное и адаптивное управление видеоданными, подходящее для различных сценариев использования, условий эксплуатации системы, а также позволяет эффективно управлять пространством для хранения данных.
DVR обеспечивают следующие возможности.
Запись и хранение потока в зависимости от требований и условий:
По умолчанию записи DVR создаются фрагментами длительностью по 2 минуты. Однако, при заведении потока в Controller, доступна настройка длительности записи в соответствии с потребностями.
Система автоматически архивирует данные в локальное хранилище, расположенное в указанной директории, и хранит их в течение заданного периода. По истечении этого срока старые записи автоматически удаляются, обеспечивая непрерывное сохранение новых. Кроме того, предусмотрена возможность полного удаления архива по запросу клиента.
Архив возможно записывать как постоянно (видео записывается без остановки, обеспечивая полный непрерывный архив), так и для экономии ресурсов настроить частичную запись по следующим параметрам:
Запись по требованию – запись начинается и заканчивается по требованию клиента.
Запись по событию – запись начинается при наступлении определенного события, например, движении в кадре.
Запись по расписанию – запись происходит в соответствии с установленным расписанием, что позволяет записывать видео в определенные промежутки времени.
Запись с прореживанием – запись потока осуществляется с различными вариантами прореживания:
Постоянно – записываются только ключевые кадры потока (IDR кадры).
По требованию – запись включается только по требованию клиента.
По активности сцены – если в кадре нет изменений, то записываются только IDR кадры. При наличии изменений в кадре – происходит событие и видеопоток записывается полностью.
Экспорт архива позволяет сохранить видео в различных форматах, каждый из которых обладает своими преимуществами:
MP4 – один из самых популярных видеоформатов, широко совместимый с различными устройствами и программным обеспечением. Это делает MP4 отличным выбором для удобного воспроизведения и обмена видеофайлами.
fMP4 – вариант формата MP4, поддерживающий адаптивное потоковое видео (adaptive streaming). Это позволяет видео автоматически подстраиваться под скорость интернет-соединения пользователя, обеспечивая наилучшее качество и минимальную задержку даже при изменениях в сети.
Snapshot (MP4) – снимок в формате MP4. Этот формат отлично подходит для быстрого доступа к ключевым моментам видео, позволяя легко находить и просматривать важные события.
Preview (MP4) – предпросмотр видеоматериала в формате MP4. Это дает возможность быстро оценить содержание видеофайла, не тратя время на просмотр всего видео.
Сырой архив – сохранение неотредактированного видеопотока для дальнейшей обработки и анализа. Этот формат позволяет сохранить максимально полную и точную информацию, что может быть полезно для профессионалов, занимающихся детальным анализом видео.
Передача и воспроизведение DVR-записей:
Использование RTSP, HLS и fMP4 для передачи и воспроизведения DVR-записей предоставляет пользователям удобный и эффективный способ удаленного доступа к видеозаписям. Эти протоколы и форматы обеспечивают высокое качество видео, адаптивность и совместимость с большинством современных устройств, включая компьютеры, смартфоны и планшеты.
Просмотр DVR-записи без захвата потока. Одной из важных функций DVR является возможность просмотра записанного видеопотока без необходимости его повторного захвата. Это особенно актуально для систем видеонаблюдения, где требуется оперативно получить доступ к архивным записям.
Сервис Web
Сервис Web предоставляет возможности управления потоками данных, обработки запросов и обеспечения отказоустойчивости системы следующим образом:
HTTP/HTTPS API для управления потоками (CRUD): добавление, удаление, авторизация, и создание токенов.
HTTP/HTTPS прокси API для перенаправления запросов на указанные адреса.
Cluster API – предназначен для работы с кластерами, что помогает обеспечивать отказоустойчивость системы.
Webhooks/Websockets – механизм уведомления Controller о различных событиях как, например, добавление потока, изменения статуса потоков и т.д. Детально смотрите в разделе документации «Конфигурирование Webhook и событий оповещения».