Настройка DVR (Digital Video Recording)
Flussonic Media Server позволяет записывать потоки в архив и затем работать с архивом. Эта функциональность называется Digital Video Recording (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 для потока укажите:
-
Path (обязательное поле) – локальная директория, куда будет сохраняться поток. Например,
/storage
.На практике, удобно указать одну и ту же директорию для множества потоков. Flussonic создаст для каждого потока свою вложенную директорию, так что архивы будут храниться по-отдельности внутри указанной директории.
См. Путь к архиву на диске.Важно. Если вы отредактируете настройки и измените путь к DVR, Flussonic не удалит ранее использованный каталог, так что старые записи останутся там. Вы можете удалить их вручную.
Можно по мере записи копировать поток частями в другое место при помощи опции
copy
. Например:dvr /storage copy=/opt/movies;
-
Saved duration (опционально) – сколько последних часов (hour) или дней (days) хранить. Если указать 30 days, то запись старше 30 дней будет удаляться.
Чтобы изменить единицу измерения, щелкните по ней. Доступные единицы - hours и days.
-
Allowed absolute disk usage (опционально) - максимальный объём потребляемого места на диске, по умолчанию в Гигабайтах. Например, 10 Gigabytes.
Чтобы изменить единицу измерения, щелкните по ней. Доступные единицы - Kilobytes, Megabytes и Gigabytes.
Дополнительно, можно настроить репликацию архива.
Увидеть, что поток записывается, можно по индикатору в UI - напротив имени потока будет зелёный индикатор:
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;
}
Чтобы включить репликацию через веб-интерфейс:
- Перейдите в 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 {
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;
}
Копирование потоков частями в другое место
Flussonic пишет потоки в указанное хранилище посегментно. Можно сделать так, чтобы данные накапливались во временной директории и копировались более крупными порциями в требуемое хранилище - на локальном диске или в облаке.
Как работает копирование
Копирование записанных данных происходит во время записи. Архив записывается в локальную директорию, и затем один раз в час запись копируется в указанное хранилище.
Чтобы копировать архив в облако:
В конфигурационном файле укажите параметр 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
.
Запрет индексирования
Эта настройка актуальна только для сервисов с UGC (User-generated content):
- Если на сервере множество потоков, публикуемых пользователями, и нужно удалять старые данные.
- Если требуется постоянно хранить архивы всех таких потоков.
Чтобы быстро определить, какие архивы устарели и какие данные в архиве устарели, Flussonic индексирует потоки, публикуемые пользователями, т.е. создает индексный файл с информацией о потоках и глубине хранения архивов. Очистка архивов происходит при запуске Flussonic и может занимать много времени если на сервере очень много потоков. Чтобы ускорить запуск Flussonic, можно отключить индексирование. Тогда удаление устаревших данных будет происходить только при обращении к архиву.
Если же вам требуется постоянно хранить архивы со всей записью, индексирование не имеет смысла.
Чтобы запретить индексирование DVR, используйте параметр no_index
:
live mylive {
url fake://fake;
dvr /storage no_index;
}
Если DVR в облаке (S3, Swift), то при конфигурации с запретом индексирования разные серверы Flussonic смогут вести запись в одно хранилище (при миграции потока с одного сервера на другой).