mirror of
https://github.com/livekit/livekit.git
synced 2026-04-06 03:35:38 +00:00
* refactor: active speakers 1. Observe the loudest adjusted with active ratio instead of linear average of decibel values 2. Follow RFC6465 to convert audio level from decibel to linear value. 3. Quantize audio level for stable slice comparison 4. Switch moving average algorithm from MMA to EMA to have the same center of mass with SMA 5. Minor: remove seenSids map allocation 6. Minor: minimize division arithmetic * Update pkg/rtc/audiolevel.go Co-authored-by: David Zhao <david@davidzhao.com>
105 lines
4.1 KiB
YAML
105 lines
4.1 KiB
YAML
# main TCP port for RoomService and RTC endpoint
|
|
# for production setups, this port should be placed behind a load balancer with TLS
|
|
port: 7880
|
|
|
|
# log level, valid values: debug, info, warning, error
|
|
log_level: info
|
|
|
|
# when redis is set, LiveKit will automatically operate in a fully distributed fashion
|
|
# clients could connect to any node and be routed to the same room
|
|
redis:
|
|
address: redis.host:6379
|
|
# username: myuser
|
|
# password: mypassword
|
|
|
|
# WebRTC configuration
|
|
rtc:
|
|
# UDP ports to use for client traffic.
|
|
# this port range should be open for inbound traffic on the firewall
|
|
port_range_start: 50000
|
|
port_range_end: 60000
|
|
# when set, LiveKit enable WebRTC ICE over TCP when UDP isn't available
|
|
# this port *cannot* be behind load balancer or TLS, and must be exposed on the node
|
|
# WebRTC transports are encrypted and do not require additional encryption
|
|
tcp_port: 7881
|
|
# when set to true, attempts to discover the host's public IP via STUN
|
|
# this is useful for cloud environments such as AWS & Google where hosts have an internal IP
|
|
# that maps to an external one
|
|
use_external_ip: true
|
|
# when set, LiveKit will attempt to use a UDP mux so all UDP traffic goes through
|
|
# a single port. This simplifies deployment, but mux will become an overhead for
|
|
# highly trafficked deployments.
|
|
# port_range_start & end must not be set for this config to take effect
|
|
# udp_port: 7882
|
|
# optional settings
|
|
# # when using REMB, the max bitrate that the SFU would accept, defaults to 3Mbps
|
|
# max_bitrate: 3145728
|
|
# # number of packets to buffer in the SFU, defaults to 500
|
|
# packet_buffer_size: 500
|
|
# # optional STUN servers for LiveKit clients to use. Clients will be configured to use these STUN servers automatically.
|
|
# # by default LiveKit clients use Google's public STUN servers
|
|
# stun_servers:
|
|
# - server1
|
|
# # minimum amount of time between pli/fir rtcp packets being sent to an individual
|
|
# # producer. Increasing these times can lead to longer black screens when participants join,
|
|
# # while reducing them can lead to higher producer bitrates.
|
|
# pli_throttle:
|
|
# low_quality: 500ms
|
|
# mid_quality: 1s
|
|
# high_quality: 1s
|
|
|
|
# when enabled, LiveKit will expose prometheus metrics on :6789/metrics
|
|
#prometheus_port: 6789
|
|
|
|
# API key / secret pairs.
|
|
# Keys are used for JWT authentication, server APIs would require a keypair in order to generate access tokens
|
|
# and make calls to the server
|
|
keys:
|
|
key1: secret1
|
|
key2: secret2
|
|
|
|
# Default room config
|
|
# Each room created will inherit these settings. If rooms are created explicitly with CreateRoom, they will take
|
|
# precedence over defaults
|
|
#room:
|
|
# # number of seconds to leave a room open when it's empty
|
|
# empty_timeout: 300
|
|
# # limit number of participants that can be in a room, 0 for no limit
|
|
# max_participants: 0
|
|
# # only accept specific codecs for clients publishing to this room
|
|
# # this is useful to standardize codecs across clients
|
|
# # other supported codecs are video/h264, video/vp9
|
|
# enabled_codecs:
|
|
# - mime: audio/opus
|
|
# - mime: video/vp8
|
|
|
|
# customize audio level sensitivity
|
|
#audio:
|
|
# # minimum level to be considered active, 0-127, where 0 is loudest
|
|
# # defaults to 30
|
|
# active_level: 30
|
|
# # percentile to measure, a participant is considered active if it has exceeded the
|
|
# # ActiveLevel more than MinPercentile% of the time
|
|
# # defaults to 40
|
|
# min_percentile: 40
|
|
# # frequency in ms to notify changes to clients, defaults to 500
|
|
# update_interval: 500
|
|
# # to prevent speaker updates from too jumpy, smooth out values over N samples
|
|
# smooth_intervals: 4
|
|
|
|
# turn server
|
|
#turn:
|
|
# # Uses TLS. Requires cert and key pem files by either:
|
|
# # - using turn.secretName if deploying with our helm chart, or
|
|
# # - setting LIVEKIT_TURN_CERT and LIVEKIT_TURN_KEY env vars with file locations, or
|
|
# # - using cert_file and key_file below
|
|
# # defaults to false
|
|
# enabled: false
|
|
# # needs to match tls cert domain
|
|
# domain: turn.myhost.com
|
|
# # defaults to 3478 - if not using a load balancer, this must be set to 443
|
|
# tls_port: 3478
|
|
# # optional
|
|
# # cert_file: /path/to/cert.pem
|
|
# # key_file: /path/to/key.pem
|