Skip to content

Настройка DVR (Digital Video Recording)

Вы можете настраивать DVR как глобально, так и отдельно для каждого потока. В этой главе мы расскажем, как настроить DVR для отдельного потока. О глобальных настройках DVR можно прочитать здесь.

Note

Все настройки доступны в конфигурационном файле. Более быстрый способ - через веб-интерфейс (UI), там есть основные настройки.

Запись потока включается именно в настройках архива. Чтобы начать запись, достаточно указать место хранения архива. Но, возможно, вы захотите настроить и другие параметры - например, ограничение на размер архива, включить репликацию или кэширование.

Содержание:

Где можно хранить архив

Flussonic Media Server позволяет вести запись архива:

  • Локально на сервер Flussonic Media Server. См. далее на этой странице.

  • В массив дисков, которым программно управляет Flussonic. См. Flussonic RAID

  • В системе WebDAV.

  • В облачном HTTP хранилище (OpenStack Swift или Amazon S3). См. Хранение архива в облаке.

Настройка DVR в UI

После того, как вы добавили поток, можно настроить его запись и хранение.

Чтобы настроить DVR для потока:

  1. Откройте администраторский веб-интерфейс к Flussonic Media Server и перейдите в Media.
  2. В списке потоков под Streams перейдите в поток, щелкнув его имя, и перейдите на вкладку DVR.
  3. В настройках DVR для потока укажите:

    • Global DVR config (опционально) – выберите глобальную конфигурацию DVR, чтобы наследовать ее настроки. В дальнейшем вы можете перезаписать любые из этих настроек для потока.
    • Path (обязательное поле) – локальная директория, куда будет сохраняться поток. Например, /storage.

      На практике удобно указать одну и ту же директорию для множества потоков. Flussonic создаст для каждого потока свою вложенную директорию, так что архивы будут храниться по-отдельности внутри указанной директории.
      См. Путь к архиву на диске.

      Важно. Если вы отредактируете настройки и измените путь к DVR, Flussonic не удалит ранее использованную директорию, так что старые записи останутся там. Вы можете удалить их вручную.

    Можно по мере записи копировать поток частями в другое место при помощи опции copy. Например:

    dvr /storage copy=/opt/movies; * Archive depth и Maximum disk consumption (опционально) – ограничения на размер архива. См. Размер архива. * SSD disk cache - директория на SSD диске, в которой будут кэшироваться данные. См. Кэширование архива на SSD. * DVR replicate - включите репликацию архива. * Schedule - добавьте один или несколько периодов времени для записи потока по расписанию. См. Запись по расписанию.

Увидеть, что поток записывается, можно по зеленому индикатору в напротив имени потока:

DVR индикатор

Danger

При переименовании потока его видеоархив удаляется.

Настройка DVR через файл конфигурации

Чтобы начать запись архива, в файл /etc/flussonic/flussonic.conf добавьте параметр dvr для каждого потока, который необходимо записывать.

Пример:

stream channel {
  input fake://fake;
}
stream channel1 {
  input tshttp://localhost:80/channel/mpegts;
  dvr /storage;
}
stream channel2 {
  input tshttp://localhost:80/channel/mpegts;
  dvr swift://user=test:tester&password=testing@swift:8080/test;
}
stream channel3 {
  input tshttp://localhost:80/channel/mpegts;
  dvr s3://minioadmin:minioadmin@minio:9001/test;
}

При таких настройках поток channel1 сохраняется в /storage/channel1/, а поток channel2 - в облачное хранилище Swift.

Важно. Если вы отредактируете настройки и измените путь к DVR, Flussonic не удалит с диска ранее использованную директорию, так что старые записи останутся там. Вы можете удалить их вручную.

Размер архива

Размер архива можно ограничить при помощи опций в файле конфигурации:

  • 2d
    Глубина архива в днях - период (в секундах, минутах, часах, днях или неделях) записи архива, отсчитываемый назад от настоящего момента времени. С течением времени части архива, возраст которых превышает глубину архива, перезаписываются новыми данными. Например: 2d, 10h. Меньше двух часов указывать не рекомендуется.

  • 90%
    Максимальное допустимое заполнение диска в процентах. По умолчанию 97%. Не указывайте 100%, потому что полностью заполненный диск, скорее всего, не будет нормально работать.

Danger

Мы рекомендуем указывать одинаковое для всех потоков заполнение диска в процентах, например, 90%. Иначе возможны конфликты и потеря данных.

  • 10G
    Максимальное допустимое заполнение диска в килобайтах (K), мегабайтах (M) или гигабайтах (G). Пример: 10G. Можно рассчитать, что один мегабитный поток в день создает 10 гигабайт.

Чтобы ограничить размер архива через веб-интерфейс:

  1. Откройте веб-интерфейс Flussonic Media Server.
  2. На странице Media выберите поток из списка Streams и щелкните по нему.
  3. Перейдите на вкладку DVR и заполните поля Maximum disk consumption (в процентах и в байтах) и Archive depth.

Запись по расписанию

Чтобы настроить запись по расписанию, добавьте в файл конфигурации следующий параметр:

  • schedule=8:00-16:00
    Опция schedule задает расписание для записи архива в виде интервалов времени. Указывается UTC время в часах и минутах (опционально). Интервал может переходить за полночь: 22-1:30. В расписании также можно указать несколько временных интервалов, разделённых запятой: 8:00-16:00,22-1:30.

Пример настройки DVR

stream channel0 {
  input fake://fake;
  dvr /storage 6h 90% 10G schedule=8:00-16:00;
  cache /mount/ssd1 3d 50G;
}

Начиная с версии Flussonic 21.05 у Вас появилась возможность задать расписание через веб-интерфейс Flussonic UI.

Для того, чтобы задать расписание для записи архива через веб-интерфейс, необходимо:

  1. Открыть веб-интерфейс Flussonic Media Server.
  2. На главной странице Media выбрать поток из списка Streams и кликнуть на него:

Список Streams

  1. Перейти на вкладку DVR, где находится секция Schedule. Затем нажмите Add schedule range:

Вкладка DVR

  1. Укажите ваш временной интервал или несколько временных интервалов и сохраните их, нажав Save:

Временные интервалы

Вы успешно добавили расписание для записи архива.

Репликация архива

Если у вас несколько серверов Flussonic Media Servers, можно включить репликацию DVR с помощью опции Replication.

Репликация означает, что архив хранится на двух (или более) серверах Flussonic. Ее используют для надежности или для вещания со сдвигом по времени.

Caution

Включать репликацию нужно на сервере-рестримере. При этом должны быть указаны сервера-источники в настройках (Media > Origin servers).

По этой теме: * Ретрансляция потоков * Репликация

Чтобы включить репликацию в конфигурационном файле, добавьте опцию replicate:

stream channel1 {
  input tshttp://vlc:9090/;
  dvr /storage replicate;
}

Чтобы включить репликацию через веб-интерфейс:

  1. Перейдите в Media.
  2. В списке потоков под Streams щелкните имя потока и перейдите на вкладку DVR.
  3. Щелкните enabled под Replication и сохраните настройки (Save).

Кэширование архива на SSD

Кэширование архива на SSD ускоряет работу с ним - когда пользователи перематывают запись назад и вперёд, видео загружается очень быстро. Flussonic можно настроить, чтобы видео кэшировалось на SSD.

Caution

Для кэша DVR не используйте разделы SSD, смонтированные с опцией noatime.

Чтобы включить кэширование на SSD через веб-интерфейс:

  1. В Media, кликните имя потока под Streams, перейдите на вкладку DVR.
  2. Под SSD disk cache укажите:

  3. Path - путь к директории на SSD диске где будет храниться кэшированная запись.

  4. Также можно ограничить размер кэша (в гигабайтах) и время хранения записи в кэше (в днях).

Чтобы включить кэширование на SSD в файле, добавьте параметр cache:

stream channel2 {
  input tshttp://vlc:9090/;
  dvr /storage;
  cache /storage/ssd1 3d 50G;
}

Запись архива в WebDAV

Вы можете хранить записи DVR в файловой системе WebDAV.

Чтобы настроить хранилище в WebDAV, добавьте в настройки потока строку с адресом WebDAV:

stream channel5 {
  input fake://fake;
  dvr http://nginx:4201/webdav;
}

Flussonic поддерживает экономичный способ копирования видео на WebDAV по частям с помощью опции copy:

stream channel6 {
  input fake://fake;
  dvr /storage copy=http://nginx:4201/webdav;
}

Копирование потоков частями в другое место

Параметр copy позволяет значительно снизить количество сетевых обращений при записи в облачное хранилище. Flussonic пишет потоки в указанное хранилище посегментно. Можно сделать так, чтобы данные накапливались во временной директории и копировались более крупными порциями в облако.

Как работает копирование

Копирование записанных данных происходит во время записи. Архив записывается в указанную временную директорию и затем один раз в час запись копируется (переносится) в указанное хранилище. Из временной директории данные при этом удаляются после каждого копирования (т.е. раз в час).

Указанные лимиты (например, глубина записи) применяются не ко временной директории, а к конечной директории, куда происходит копирование.

Warning

Убедитесь, что во временной директории достаточно места для хранения как минимум 2 часов всех записываемых в нее потоков.

Чтобы копировать архив в облако:

В конфигурационном файле укажите параметр copy:

stream chan7 {
  input fake://fake;
  dvr /storage copy=s3://minioadmin:minioadmin@minio:9001/test 10G;
}

Поток будет записываться в /storage и копироваться частями каждый час в S3.

Чтобы копировать архив в локальное хранилище:

stream chan8 {
  input fake://fake;
  dvr /storage copy=/opt/movies 10G;
}

Поток будет записываться в /storage и переноситься частями каждый час в /opt/movies.

Путь к архиву на диске

Для каждого потока Flussonic создает директорию внутри той директории, которая указана в настройках архива как путь на диске. Имя новой директории совпадает с именем потока.

Напимер, укажем, что поток my_stream нужно записывать в /storage:

stream my_stream {
  input fake://fake;
  dvr /storage;
}

Тогда архив потока будет храниться в /storage/my_stream.

Важная информация

  • Мы не рекомендуем использовать сетевые хранилища (NFS, Samba и другие популярные протоколы для NAS) для записи DVR. Это не очень хорошее решение, поскольку в большинстве случаев сетевые хранилища работают медленнее, что серьезно влияет на качество сервиса. Лучше использовать локальные жесткие диски, при необходимости, добавив SSD-кеш.
  • Недопустима конфигурация, когда несколько серверов одновременно читают и пишут с одного хранилища, это может привести к потере данных. Обратитесь в службу поддержки для получения актуальной информации по организации распределенного DVR сервиса.