#! /usr/bin/vargus --no-daemon

# Роль player. Импортирует видеопоток с видеокамеры или другого vargus-сервера,
# обрабатывает, перекодирует по потребностям и вещает
# обработанно-перекодированное для writer'ов, view'ров и прочих нуждающихся.


# Параметры для VLC. Описание их смотрите в документации по VLC 
# (~/.config/vlc/vlcrc, vlc -H).
#

# для v4l-источников требуется немного кешировать видео, иначе, будут 
# проблемы с кодированием.
[v4l2]
v4l2-caching=200

# управляющие каналы VLC-демона
# применение vargus-макроса для получения свободного порта
[lua]
lua-config=rc={host='localhost:(get_port:rc:tcp:8000)'},telnet={host='localhost:(get_port:telnet:tcp:7000)',password='admin'}

[access_output_udp]
sout-udp-caching=200

# Можно раскомментировать для снижения латентности RTSP-потоков. 
# Очень низкие значения могут приводить к порче видео.
;[mux_ts]
;sout-ts-shaping=10
;sout-ts-dts-delay=20

# Потенциально может снизить нагрузку на процессор при воспроизведении видео, 
# но не значительно. Нестабильно, не рекомендуется.
;[avcodec]
;ffmpeg-hw=1

[main] # main program
sout-keep=1
loop=1
#syslog=1
intf=rc
extraintf=telnet
sout-mux-caching=0

# Параметры для vargus-демона в роли player
[vargus]
# Группа, членам которой позволено запускать vargus. 
# Если vargus запускается от пользователя root, он сбрасывает полномочия и
# продолжает выполнение от имени пользователя vargus.
# Иначе, если vargus запускается пользователем, входящим в группу *allowed-group*, 
# он продолжает исполняться с полномочиями этого пользователя.
allowed-group=vargus

# Максимально допустимый размер памяти, потребляемый одним VLC-процессом. При
# превышении этот процесс будет убит и перезапущен. 
max-vlc-memory=512M

# Минимально допустимая нагрузка на процессор. Если средняя нагрузка на
# процессор меньше этой величины, значит, скорее всего, VLC-процесс подвис и его
# надо перезапустить. Применяется только к тем VLC-процессам, которые занимаются
# перекодированием видео и потребляют ресурсы процессора.
min-vlc-load=5

#  Process model: Организация обработки VLM-каналов. 
#  separated: каждый канал обслуживается отдельным процессом VLC. Рекомендуется.
#  common: один VLC-процесс для всех каналов.
#process-model=separated

