Архив DVR¶
Архив превращает канал из «только прямой эфир» в nPVR: зритель отматывает назад, догоняет начало передачи, смотрит вчерашний выпуск. Запись ведёт стример, на котором работает канал; эта страница готовит диски, включает запись и показывает, как убедиться, что архив действительно пишется и играется.
Подготовьте диски стримера¶
Хранилище архива — настройка стримера, а не канала. Откройте стример из реестра, блок DVR в его настройках:
- Корень архива — каталог, в который смонтированы диски архива.
- Диски — по одному на физическое устройство: дочерние каталоги корня.
- Проверять монтирование перед записью — включено по умолчанию: каталог без собственного монтирования репортится как «не смонтирован», а писать архив на раздел системного корня стример отказывается — это верный способ уронить машину вместе с архивом. Выключайте только осознанно.
Диски собираются так: смонтируйте каждый диск дочерним каталогом одного общего каталога — /storage/dvr/disk1, /storage/dvr/disk2, /storage/dvr/disk3, — укажите общий каталог как Корень архива и внесите каждый диск в список дисков как его дочерний каталог:

Нажмите Сохранить изменения — central доставит хранилище стримеру, индикаторы применения покажут, когда оно вступило в силу. Без настроенного хранилища запись не начнётся, сколько бы каналов её ни попросили.
Локальный стример одномашинной инсталляции — не исключение: он открывается из того же реестра, и его хранилище настраивается тем же блоком DVR в консоли.
JBOD вместо RAID¶
Архивная подсистема Catena — это application RAID: стример сам раскладывает запись по независимым устройствам, сам замечает выпавший диск и продолжает писать на оставшиеся. Поэтому диски отдаются ему по отдельности — JBOD: у каждого своя файловая система и своя точка монтирования, как в сборке выше. Потеря диска стоит ровно его доли архива: остальные диски продолжают писать, а в реестре стримеров краснеет индикатор DVR.
Аппаратный и программный RAID под архивом мы не рекомендуем — и обещаем, что с этими инженерными решениями вы столкнётесь с проблемами. Запись архива — непрерывный поток на все каналы машины сразу, и под такой нагрузкой массив ведёт себя хуже суммы своих дисков: деградация или ребилд одного диска тормозит массив целиком, и задержки с пропусками записи растут у всех каналов одновременно. Ровно так перегруз архива и выглядит на графике записи вкладки DVR: кривые пропусков и задержек поднимаются у всех каналов машины разом.
Включите запись¶
На странице канала откройте вкладку DVR:
- Писать в DVR — включает запись.
- Глубина хранения (часы) — сколько часов эфира держать; вышедшее за глубину стирается само.
- Макс. размер (байты) — потолок по месту на диске. Работают оба лимита сразу: что наступит раньше, то и подрежет архив.
Нажмите Сохранить. Через минуту-другую на этой же вкладке появится Текущее состояние записи: индикатор с вердиктом и окно архива — от начала записи до текущего момента. Когда стример отдаёт расширенную статистику, здесь же показываются часы с данными (с дырами, если запись прерывалась), размер архива, живые скорости записи и график записи — история этих скоростей вместе с ошибками и пропусками.

Следите за записью¶
В списке каналов у канала с архивом колонка DVR показывает, сколько фактически записано, и светофор:
- Зелёный — запись идёт, ошибок нет.
- Жёлтый — запись деградирована (фрагменты пишутся с задержкой или пропусками) либо DVR настроен, но запись не идёт.
- Красный — ошибки записи: данные теряются прямо сейчас.
- Прочерк — архив у канала не настроен.

Здоровье дисков — на стороне стримера: если диск отваливается или заполняется, краснеет индикатор DVR в реестре стримеров.
Что получает зритель¶
Архив отдаётся теми же HLS-адресами, что и прямой эфир, — плееру не нужно ничего особенного:
- Отмотка назад:
/streaming/v/<имя>/rewind/<секунды>/index.m3u8— тот же канал, сдвинутый в прошлое на указанное число секунд.rewind/3600— час назад. - Диапазоны записи:
/streaming/dvr-ranges/<имя>— JSON со списком записанных интервалов. На нём строится шкала архива в плеере: видно, что записано, а где дыра. - Превью-клип:
/streaming/dvr-preview-mp4/<имя>/<utc_ms>— короткий MP4 вокруг момента времени (UTC в миллисекундах). Удобен монтажным и модераторским интерфейсам: показать кусочек архива, не поднимая плеер. Собирается из миниатюр, записанных в архив, — настройте превью с включённым «Хранить превью в DVR», иначе адрес ответит, что кадров нет.
Если запись не идёт¶
- «DVR настроен, но запись не идёт». Либо канал не в эфире — писать нечего, — либо у стримера не настроено хранилище архива. Проверьте статус канала и блок DVR в настройках стримера.
- «Ошибки записи — данные теряются». Диск полон, отвалился или не смонтирован. Смотрите индикатор DVR и настройки дисков в реестре стримеров.
- Окно архива короче глубины хранения. Это нормально сразу после включения: окно растёт по мере записи и упрётся в глубину только через заданное число часов.