Moment Video Server
Live streaming made easy.
Сетевой видеорегистратор

Настройка

Модуль mod_nvr работает с каналами, которые заданы файлами в директории conf.d (см. раздел «Управление каналами»). Доступные параметры конфигурации:

mod_nvr/enable — включить модуль mod_nvr. По умолчанию: "no" (mod_nvr выключен).

mod_nvr/record_dir — директория, в которую помещается записанное видео. Это обязательный параметр. По умолчанию директория не задана.

mod_nvr/file_duration — максимальная длительность одного видеофайла (сегмента записи) в секундах. По умолчанию: 3600 секунд (1 час). Значение длительности меньше 60 секунд должно нацело делить 60. Значение длительности меньше 3600 сек (1 час) должно нацело делить 3600. Например, подходят значения 10, 15, 20, 30 минут. Аналогичное правило - для значений длительности меньше 24 часов.

mod_nvr/max_age — срок хранения файлов-сегментов видеозаписи в минутах. Файлы старше это срока удаляются. По умолчанию: 120 минут.

Пример настройки модуля mod_nvr:

  mod_nvr {
    enable = y
    record_dir = /opt/records
    file_duration = 3600
    // 31 день == 44640 минут
    max_age = 44640
  }

Кроме того, в файлах настроек каждого канала в директории conf.d можно задавать следующие параметры:

prewrite — размер буфера упреждающей записи в секундах. По умолчанию: 5 секунд.

postwrite — длительность отрезка видео, записываемого после получения команды окончания записи. По умолчанию: 5 секунд.

prewrite_frames — максимальное количество аудио/видеокадров в буфере упреждающей записи. По умолчанию: 1000 кадров.

postwrite_frames — Максимальное количество аудио/видеокадров, записываемых после получения команды окончания записи. По умолчанию: 1000 кадров.

Использование

Живое и записанное видео можно получать по протоколам RTMP, RTMPT и HLS. Для получения информации о состоянии модуля и выгрузки файлов используется HTTP-интерфейс (см. параметр http/http_bind). Для управления модулем mod_nvr используется HTTP-интерфейс администрирования (см. параметр http/admin_bind).

Воспроизведение видео

Доступно два режима воспроизведения: прямая трансляция живого видеопотока и показ записанного видео.

Живой видеопоток транслируется как обычный исходящий канал. Пример ссылки на живой видеопоток с именем "test":
rtmp://127.0.0.1:1935/live/test

Для получения видео в записи по протоколу RTMP нужно использовать ссылку на приложение "nvr", добавив параметр start — unixtime позиции начала воспроизведения, т.е. кол-во секунд, прошедших с 00:00 1 января 1970 года в часовом поясе UTC. Пример ссылки на поток в записи:
rtmp://127.0.0.1:1935/nvr/test?start=1368828341

HTTP-интерфейс

Скачивание участка видеозаписи в формате mp4:
http://.../mod_nvr/file?stream=test&start=1368828341&duration=600&download

Параметры запроса:
  • stream — название канала для просмотра;
  • start — unixtime начала участка в секундах;
  • duration — длительность участка в секундах;
  • download — если этот параметр присутствует, то Content-Type ответа будет "application/octet-stream", что подходит для скачивания файла. Если параметр отсутствует, то Content-Type будет "video/mp4", что подходит для просмотра видеофайла средствами браузера.

Получение информации о состоянии канала в формате JSON:
http://.../mod_nvr/channel_state?stream=test&seq=1

Параметры запроса:
  • stream — название канала;
  • seq — порядковый номер запроса.
Пример ответа сервера:
  { "seq": "1", "recording": true }

HTTP-интерфейс администрирования

Включение/выключение записи:
http://.../mod_nvr_admin/rec_on?stream=test&seq=1
http://.../mod_nvr_admin/rec_off?stream=test&seq=1

Параметры запроса:
  • stream — название канала;
  • seq — порядковый номер запроса.

На запросы rec_on и rec_off сервер даёт такой же ответ, как и на запрос mod_nvr/channel_state

Тестовый веб-интерфейс

Тестовый интерфейс NVR позволяет:

  • Просматривать живой видеопоток;
  • Просматривать записанное видео с произвольного места в режиме непрерывного воспроизведения;
  • Загружать участок записи в виде файла в формате mp4;
  • Включать и выключать запись.

Для установки тестового интерфейса нужно добавить в конфиг сервера соответствующий путь в секцию mod_file и настроить параметры плеера. Доступные параметры (vars):

NvrStreamName — Название канала для показа. По умолчанию: "test"

NvrPlayerBuffer — Размер буфера плеера в секундах. По умолчанию: "2.0"

  mod_file {
    {
      prefix = "nvr"
      path = "/opt/moment/web/nvr"
      vars {
        NvrStreamName = "test"
        NvrPlayerBuffer = "2.0"
      }
    }
  }

При такой настройке ссылка на тестовый интерфейс NVR будет иметь вид http://127.0.0.1:8080/nvr/



К содержанию