Skip to content

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

Flussonic Media Server позволяет записывать потоки в архив и затем работать с архивом. Эта функциональность называется Digital Video Recording (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 для потока укажите:

  4. Path (обязательное поле) – локальная директория, куда будет сохраняться поток. Например, /storage.

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

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

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

    dvr /storage copy=/opt/movies;

  5. Saved duration (опционально) – сколько последних часов (hour) или дней (days) хранить. Если указать 30 days, то запись старше 30 дней будет удаляться.

    Чтобы изменить единицу измерения, щелкните по ней. Доступные единицы - hours и days.

  6. Allowed absolute disk usage (опционально) - максимальный объём потребляемого места на диске, по умолчанию в Гигабайтах. Например, 10 Gigabytes.

    Чтобы изменить единицу измерения, щелкните по ней. Доступные единицы - Kilobytes, Megabytes и Gigabytes.

    DVR настройки в UI

Дополнительно, можно настроить репликацию архива.

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

Danger

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

Настройка DVR через файл

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

Пример:

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

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

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

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

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

  • 2d
    Глубина архива в днях (d) или часах (h). Примеры: 2d, 10h. Меньше двух часов указывать не рекомендуется.

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

Danger

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

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

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

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

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

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

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

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

Caution

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

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

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

stream channel1 {
  url 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 {
  url tshttp://vlc:9090/;
  dvr /storage;
  cache /storage/ssd1 3d 50G;
}

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

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

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

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

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

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

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

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

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

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

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

Warning

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

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

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

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

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

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

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

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

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

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

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

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

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