Appearance
Быстрый старт
Установка из пакета, первая камера и проверка, что запись идёт и поток открывается. Около десяти минут.
Что понадобится
- Сервер на Linux: Debian или Ubuntu (пакет
.deb), RHEL, Rocky или AlmaLinux (пакет.rpm) - IP-камера с RTSP-адресом потока, доступная с этого сервера по сети
ffmpeg— для экспорта и таймлапса архива и для ступени 720p в HLS. Приём, запись и рестрим работают без него
1. Установите пакет
Скачайте пакет для своей системы на странице загрузки и установите его.
Debian / Ubuntu
bash
sudo dpkg -i forgevis_*.debRHEL / 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 /rpool3. Добавьте камеру
Каждую камеру удобно держать в своём файле в /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/ready5. Проверьте запись
bash
ls -lR /var/lib/forgevis/recordings/camera_001Файл появляется сразу после подключения камеры и растёт по мере записи. Архив пишется во фрагментированном MP4, так что файл можно открыть, пока он ещё пишется. Новый файл начинается каждые 15 минут (segmentDuration: 900 в разделе record).
Подключение камеры видно в журнале (разрешение и кодеки — те, что отдаёт ваша камера):
bash
sudo journalctl -u forgevis -fStarting 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_001HLS — по адресу 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 — сообщение об ошибке называет ключ конфигурации, который нужно исправить.
Дальше
- Конфигурация — все параметры
- Субпотоки — запись в полном качестве, на экран — облегчённый поток
- Очистка архива — сколько хранить записи
- Безопасность и авторизация — пользователи, права, TLS
- Кластеризация и HA — несколько серверов записи