◆ ForgeVis
Skip to content

Быстрый старт ​

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

Что понадобится ​

  • Сервер на Linux: Debian или Ubuntu (пакет .deb), RHEL, Rocky или AlmaLinux (пакет .rpm)
  • IP-камера с RTSP-адресом потока, доступная с этого сервера по сети
  • ffmpeg — для экспорта и таймлапса архива и для ступени 720p в HLS. Приём, запись и рестрим работают без него

1. Установите пакет ​

Скачайте пакет для своей системы на странице загрузки и установите его.

Debian / Ubuntu

bash
sudo dpkg -i forgevis_*.deb

RHEL / Rocky / AlmaLinux

bash
sudo rpm -i forgevis-*.rpm

Пакет раскладывает всё по стандартным местам:

ЧтоГде
Программа/usr/bin/forgevis
Основная конфигурация/etc/forgevis/config.yaml
Файлы камер/etc/forgevis/conf.d/
Рабочий каталог службы/var/lib/forgevis
Журналы/var/log/forgevis/

2. Укажите, куда писать архив ​

Место для архива задаёт шаблон record_path в /etc/forgevis/config.yaml. Укажите каталог на диске, где хватит места под записи:

yaml
cameraDefaults:
  record_path: "/var/lib/forgevis/recordings/%path/%Y/%m/%d/%path_%Y-%m-%d_%H-%M-%S.mp4"

%path — идентификатор камеры, остальное — дата и время начала файла. Каталоги создаются сами.

Под архив лучше отвести отдельный диск или пул. Например, для пула ZFS путь может выглядеть так:

yaml
cameraDefaults:
  record_path: "/rpool/%path/%Y/%m/%d/stream-%path_%Y-%m-%d_%H-%M-%S.mp4"

В конфигурации из пакета стоит /var/lib/forgevis/recordings/.... Служба работает от пользователя forgevis, поэтому свой каталог для архива отдайте ему перед первым запуском:

bash
sudo chown forgevis:forgevis /rpool

3. Добавьте камеру ​

Каждую камеру удобно держать в своём файле в /etc/forgevis/conf.d/. Создайте /etc/forgevis/conf.d/camera_001.yaml:

yaml
camera_001:
  source: "rtsp://admin:password@192.168.1.100:554/stream1"
  sub: "rtsp://admin:password@192.168.1.100:554/stream2"   # субпоток, необязательно

camera_001 — идентификатор камеры: он же будет в адресах потоков и в пути архива. Допустимы латинские буквы, цифры, _ и -.

Где взять RTSP-адрес

Он есть в документации камеры или в её веб-интерфейсе. Проверьте адрес в VLC (Медиа → Открыть URL) с самого сервера — если VLC показывает видео, ForgeVis его тоже примет.

Файлы в conf.d/ подхватываются на лету: следующие камеры добавляются без перезапуска службы.

4. Запустите службу ​

bash
sudo systemctl enable --now forgevis
systemctl status forgevis

В статусе должно быть active (running). Если служба не поднялась, причина будет в журнале: конфигурация проверяется при запуске, и ошибка называет ключ, который нужно исправить.

bash
sudo journalctl -u forgevis -b

Готовность сервера целиком — хранилище, каталог записи, лицензия:

bash
curl http://localhost:9997/api/health/ready

5. Проверьте запись ​

bash
ls -lR /var/lib/forgevis/recordings/camera_001

Файл появляется сразу после подключения камеры и растёт по мере записи. Архив пишется во фрагментированном MP4, так что файл можно открыть, пока он ещё пишется. Новый файл начинается каждые 15 минут (segmentDuration: 900 в разделе record).

Подключение камеры видно в журнале (разрешение и кодеки — те, что отдаёт ваша камера):

bash
sudo journalctl -u forgevis -f
Starting recorder for camera: camera_001
Stream parameters for camera_001: video 1920x1080 H.264, audio 8000Hz 1ch G.711 A-law

Журнал также пишется в файлы /var/log/forgevis/forgevis-info-<дата>.log.

6. Откройте поток ​

На самом сервере поток открывается без пароля:

bash
# RTSP — основной поток и субпоток
ffplay rtsp://localhost:8554/camera_001
ffplay rtsp://localhost:8554/camera_001/sub

# HLS — для браузера и плееров
ffplay http://localhost:8888/camera_001/index.m3u8

С другого компьютера нужна учётная запись. Конфигурация из пакета пускает без пароля только с самого сервера, поэтому добавьте в /etc/forgevis/config.yaml пользователя для просмотра, оставив существующую запись для 127.0.0.1:

yaml
security:
  auth_method: internal
  users:
    - user: any
      pass:
      ips: ["127.0.0.1/32", "::1/128"]
      permissions:
    - user: viewer
      pass: "argon2:<хэш пароля>"
      ips: []
      permissions:
        - action: read

Хэш пароля:

bash
echo -n "пароль" | argon2 "$(openssl rand -hex 16)" -id -t 2 -m 16 -p 1 -e

Пользователи читаются при запуске, поэтому после правки security перезапустите службу:

bash
sudo systemctl restart forgevis

Теперь поток открывается с любого компьютера сети:

bash
vlc rtsp://viewer:пароль@сервер:8554/camera_001

HLS — по адресу http://сервер:8888/camera_001/index.m3u8, браузер спросит логин и пароль. Если на сервере включён файрвол, откройте порты 8554 (RTSP) и 8888 (HLS).

Другие варианты авторизации и права доступа — в разделе Безопасность и авторизация.

Только запись или только раздача ​

Запись и рестрим включаются независимо:

  • Только раздача, без архива — record: false у камеры
  • Только архив, без RTSP-сервера — rtsp.enabled: false в config.yaml

Если что-то не работает ​

Камера не подключается. В журнале будет ошибка подключения. Проверьте адрес в VLC с самого сервера, логин и пароль камеры и что камера отвечает на ping.

Файлов записи нет. Проверьте record_path: каталог должен быть на существующем диске (df -h). Проверьте, что у камеры не стоит record: false, и нет ли в журнале ошибок записи.

Поток не открывается с другого компьютера. Проверьте учётную запись и что служба перезапущена после правки security. Проверьте порты в файрволе и что rtsp.enabled не выключен.

Служба не запускается. sudo journalctl -u forgevis -b — сообщение об ошибке называет ключ конфигурации, который нужно исправить.

Дальше ​

Proprietary software.