Files
olcrtc/docs/server.example.yaml
2026-05-16 02:10:34 +03:00

80 lines
2.0 KiB
YAML

# olcrtc server config example
# Run with: olcrtc server.yaml
mode: srv
# Connection topology
link: direct # p2p link type
auth:
provider: jitsi # jitsi | telemost | jazz | wbstream | none
# For jitsi: full conference URL (https://host/room or host/room).
# For telemost / wbstream / jazz: room ID returned by the service.
room:
id: "https://meet.cryptopro.ru/REPLACE_WITH_ROOM_NAME"
crypto:
# 32-byte hex (64 chars). Generate with: openssl rand -hex 32
# Or use key_file: "./olcrtc.key" to keep the secret out of this file.
key: "REPLACE_ME_WITH_64_HEX_CHARS"
net:
transport: datachannel # datachannel | videochannel | seichannel | vp8channel
dns: "8.8.8.8:53"
liveness:
interval: 10s
timeout: 5s
failures: 3
# Optional planned rebuild for long-running calls.
# lifecycle:
# max_session_duration: 6h
# Optional reliability shaping for encrypted wire messages.
# traffic:
# max_payload_size: 4096
# min_delay: 5ms
# max_delay: 30ms
# Outbound SOCKS5 proxy for server-side egress (optional)
socks:
proxy_addr: "" # e.g. "127.0.0.1"
proxy_port: 0 # e.g. 1080
# Direct engine mode — only used when auth.provider is "none"
engine:
name: "" # livekit | goolom | salutejazz | jitsi
url: ""
token: ""
# vp8channel tuning (only when net.transport == vp8channel)
vp8:
fps: 25
batch_size: 1
# seichannel tuning (only when net.transport == seichannel)
sei:
fps: 20
batch_size: 1
fragment_size: 900
ack_timeout_ms: 3000
# videochannel tuning (only when net.transport == videochannel)
video:
width: 1920
height: 1080
fps: 30
bitrate: "2M"
hw: none # none | nvenc
codec: qrcode # qrcode | tile (tile requires 1080x1080)
qr_size: 0 # 0 = auto
qr_recovery: low # low (7%) | medium (15%) | high (25%) | highest (30%)
tile_module: 4 # 1..270, only for codec: tile
tile_rs: 20 # 0..200, only for codec: tile
data: data # data directory (names files etc.)
debug: false
ffmpeg: ffmpeg # path to ffmpeg binary (only used by videochannel)