1. Описание и системные требования

MicroPVR - комплекс программного обеспечения, предназначенный для создания видео-сервера записи Live-контента и предоставления абонентам интерактивных видео-сервисов, таких как отложенный просмотр (Catch Up), видеомагнитофон (NPVR), пауза (Pause TV), просмотр в сдвиге (Timeshift) и других.

Благодаря наличию API возможно создание собственных интерактивных сервисов.

Позволяет задействовать различные виды памяти СХД, например HDD, SSD, RAM, что позволяет создавать конфигурации для обслуживания до 10Gbps абонентского трафика на один сервер.

1.1. Описание архитектуры MicroPVR

micropvr - менеджер видео-записей. Управляющий процесс, реализующий API-интерфейс в формате JSON и взаимодействующий с процессами записи контента.

recorder - модуль записи контента в формате MPEG-TS.

micropvs - модуль для nginx, взаимодействует с micropvr и предназначен для вещания записанных передач в формате HTTP MPEG-TS.

live555_mi - модифицированная версия видео-сервера Live555MediaServer, взаимодействует с micropvr и предназначен для вещания записанных передач в формате RTSP/UDP/RTP.

_images/micropvr-architecture.png

1.2. Системные требования

ПО MicroPVR предназначено для работы в ОС Linux Debian 64-битной версии и подобных дистрибутивах, по-умолчанию поставляется версия для архитектуры amd64.

Внимание! ПО MicroPVR не предназначено для работы на виртуальной машине по причине негарантированной стабильности работы виртуального сетевого адаптера.

Требования к аппаратному обеспечению, исходя из принимаемого/передающегося объема трафика:

Процессор 1 ядро 2.4Ghz+ на каждые 400Mbps трафика
Оперативная память 1GB на каждые 400Mbps трафика
Сетевая карта карта с Enterprise чипом Intel, имеющая несколько очередей для входящих пакетов (multiple Rx queues)

1.2.1. Расчет суммарного объема хранилища

Если:

M - количество каналов определенного битрейта/качества
N - средний битрейт одного канала в мегабитах в секунду
K - глубина записи архива в днях
X - результат расчета в терабайтах

Тогда формула расчета:

X = ((((M * N) / 8) * 3600 * 24 * K) / 1024) / 1024

Например, 100 каналов SD в битрейте 3.5Mbps необходимо записывать на 7 дней:

((((100 * 3.5) / 8) * 3600 * 24 * 7) / 1024) / 1024 = 25,23TB

1.2.2. Расчет конфигурации хранилища

Конфигурация серверов может быть подобрана индивидуально исходя из бюджета и технических требований. Рекомендованные значения - записывать не более 50 каналов на один сервер, исходя из этого, если:

M - количество каналов определенного битрейта/качества
N - средний битрейт одного канала в мегабитах в секунду
K - глубина записи архива в днях
X - общий объем хранилища
Y - количество серверов

Тогда формула расчета:

M = 50
Y = X / (((((M * N) / 8) * 3600 * 24 * K) / 1024) / 1024)

При количестве одновременных запросов на сервис PVR, равном 1000 на каждый сервер (т.е. суммарно 1000*Y одновременных пользователей), количество дисков хранилища на одном сервере должно быть не менее 6, количество SSD в размере 500GB не менее 2.

При необходимости резервирования СХД количество дисков следует увеличить исходя из выбранной модели резервирования (RAID Level).