Настройка DVR (Digital Video Recording)
Вы можете настраивать DVR как глобально, так и отдельно для каждого потока. В этой главе мы расскажем, как настроить DVR для отдельного потока. О глобальных настройках DVR можно прочитать здесь.
Note
Все настройки доступны в конфигурационном файле. Более быстрый способ — через веб-интерфейс (UI), там есть основные настройки.
Запись потока включается именно в настройках архива. Чтобы начать запись, достаточно указать место хранения архива. Но, возможно, вы захотите настроить и другие параметры, например, ограничение на размер архива, включить репликацию или кэширование.
Содержание:
- Где можно хранить архивы
- Настройка DVR в веб-интерфейсе
- Настройка DVR в конфигурационном файле
- Размер архива
- Запись по расписанию
- Репликация архива
- Кэширование архива на SSD
- Запись архива в WebDAV
- Копирование потоков частями в другое место
- Путь к архиву на диске
Где можно хранить архив
Flussonic Media Server позволяет вести запись архива:
-
Локально на сервер Flussonic Media Server. См. далее на этой странице.
-
В массив дисков, которым программно управляет Flussonic. См. Flussonic RAID
-
В системе WebDAV.
-
В облачном HTTP хранилище (OpenStack Swift или Amazon S3). См. Хранение архива в облаке.
Настройка DVR в UI
После того, как вы добавили поток, можно настроить его запись и хранение.
Чтобы настроить DVR для потока:
- Откройте администраторский веб-интерфейс к Flussonic Media Server и перейдите в Media.
- В списке потоков под Streams перейдите в поток, щелкнув его имя, и перейдите на вкладку DVR.
-
В настройках 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 — добавьте один или несколько периодов времени для записи потока по расписанию. См. Запись по расписанию.
Увидеть, что поток записывается, можно по зеленому индикатору в напротив имени потока:
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 гигабайт.
Чтобы ограничить размер архива через веб-интерфейс:
- Откройте веб-интерфейс Flussonic Media Server.
- На странице Media выберите поток из списка Streams и щелкните по нему.
- Перейдите на вкладку DVR и заполните поля Maximum disk consumption (в процентах и в байтах) и Archive depth.
Note
Если вы удалите поток из конфигурации Flussonic, файлы архива DVR этого потока также будут удалены с диска. Однако они удалятся не сразу, а постепенно: каждый час будет удаляться по 1 часу записи, пока не удалится весь архив. Это делается для того, чтобы снизить риск ошибок и избежать излишней нагрузки на диск во время удаления архива.
Запись по расписанию
Чтобы настроить запись по расписанию, добавьте в файл конфигурации следующий параметр:
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.
Для того, чтобы задать расписание для записи архива через веб-интерфейс, необходимо:
- Открыть веб-интерфейс Flussonic Media Server.
- На главной странице Media выбрать поток из списка Streams и кликнуть на него:
- Перейти на вкладку DVR, где находится секция Schedule. Затем нажмите Add schedule range:
- Укажите ваш временной интервал или несколько временных интервалов и сохраните их, нажав Save:
Вы успешно добавили расписание для записи архива.
Репликация архива
Если у вас несколько серверов Flussonic Media Servers, можно включить репликацию DVR с помощью опции Replication.
Репликация означает, что архив хранится на двух (или более) серверах Flussonic. Ее используют для надежности или для вещания со сдвигом по времени.
Caution
Включать репликацию нужно на сервере-рестримере. При этом должны быть указаны сервера-источники в настройках (Media > Origin servers).
По этой теме: * Ретрансляция потоков * Репликация
Чтобы включить репликацию в конфигурационном файле, добавьте опцию replicate
:
stream channel1 {
input tshttp://vlc:9090/;
dvr /storage replicate;
}
Чтобы включить репликацию через веб-интерфейс:
- Перейдите в Media.
- В списке потоков под Streams щелкните имя потока и перейдите на вкладку DVR.
- Щелкните enabled под Replication и сохраните настройки (Save).
Кэширование архива на SSD
Кэширование архива на SSD ускоряет работу с ним. Когда пользователи перематывают запись назад и вперёд, видео загружается очень быстро. Flussonic можно настроить, чтобы видео кэшировалось на SSD.
Caution
Для кэша DVR не используйте разделы SSD, смонтированные с опцией noatime
.
Чтобы включить кэширование на SSD через веб-интерфейс:
- В Media, кликните имя потока под Streams, перейдите на вкладку DVR.
-
Под SSD disk cache укажите:
-
Path — путь к директории на SSD диске где будет храниться кэшированная запись.
- Также можно ограничить размер кэша (в гигабайтах) и время хранения записи в кэше (в днях).
Чтобы включить кэширование на 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 сервиса.