Command line
Every option of the C server's janus --help exists here with the same short and long names, 44 in all. This is the real output of the binary:
text
Usage:
janus [OPTION…]
Help Options:
-h, --help Show help options
Application Options:
-b, --daemon Launch Janus in background as a daemon
-p, --pid-file=path Open the specified PID file when starting Janus (default=none)
-N, --disable-stdout Disable stdout based logging
--log-stdout Log to stdout, even when the process is daemonized
-L, --log-file=path Log to the specified file (default=stdout only)
-R, --log-rotate-sig=signal Signal to trigger log reloading (e.g. SIGUSR1) (default=none)
-l, --check-openfiles-limits=value Check if the current limit on the maximum number of allowed open file descriptors matches this value (if not, Janus will close with a failure; default=none)
-H, --cwd-path=path Working directory for Janus daemon process (default=/)
-i, --interface=ipaddress Interface to use (will be the public IP)
-P, --plugins-folder=path Plugins folder (default=./plugins)
-C, --config=filename Configuration file to use
-F, --configs-folder=path Configuration files folder (default=./conf)
-c, --cert-pem=filename DTLS certificate
-k, --cert-key=filename DTLS certificate key
-K, --cert-pwd=text DTLS certificate key passphrase (if needed)
-S, --stun-server=address:port STUN server(:port) to use, if needed (e.g., Janus behind NAT, default=none)
-1, --nat-1-1=ips Comma-separated list of public IPs to put in all host candidates, assuming a 1:1 NAT is in place (e.g., Amazon EC2 instances, default=none)
-2, --keep-private-host When nat-1-1 is used (e.g., Amazon EC2 instances), don't remove the private host, but keep both to simulate STUN
-E, --ice-enforce-list=list Comma-separated list of the only interfaces to use for ICE gathering; partial strings are supported (e.g., eth0 or eno1,wlan0, default=none)
-X, --ice-ignore-list=list Comma-separated list of interfaces or IP addresses to ignore for ICE gathering; partial strings are supported (e.g., vmnet8,192.168.0.1,10.0.0.1 or vmnet,192.168., default=vmnet)
-6, --ipv6-candidates Whether to enable IPv6 candidates or not
-O, --ipv6-link-local Whether IPv6 link-local candidates should be gathered as well
-f, --full-trickle Do full-trickle instead of half-trickle
-I, --ice-lite Whether to enable the ICE Lite mode or not
-T, --ice-tcp Whether to enable ICE-TCP or not (warning: only works with ICE Lite)
-Q, --min-nack-queue=number Minimum size of the NACK queue (in ms) per user for retransmissions, no matter the RTT
-t, --no-media-timer=number Time (in s) that should pass with no media (audio or video) being received before Janus notifies you about this
-W, --slowlink-threshold=number Number of lost packets (per s) that should trigger a 'slowlink' Janus API event to users (default=0, feature disabled)
-r, --rtp-port-range=min-max Port range to use for RTP/RTCP
-B, --twcc-period=number How often (in ms) to send TWCC feedback back to senders, if negotiated (default=200ms)
-n, --server-name=name Public name of this Janus instance (default=MyJanusInstance)
-s, --session-timeout=number Session timeout value, in seconds (default=60)
-m, --reclaim-session-timeout=number Reclaim session timeout value, in seconds (default=0)
-d, --debug-level=1-7 Debug/logging level (0=disable debugging, 7=maximum debug level; default=4)
-D, --debug-timestamps Enable debug/logging timestamps
-o, --disable-colors Disable color in the logging
-M, --debug-locks Enable debugging of locks/mutexes (very verbose!)
-a, --apisecret=randomstring API secret all requests need to pass in order to be accepted by Janus (useful when wrapping Janus API requests in a server, none by default)
-A, --token-auth Enable token-based authentication for all requests
--token-auth-secret=randomstring Secret to verify HMAC-signed tokens with, to be used with -A
--restrict-info-api Restrict the "info" endpoint to authenticated requests only (requires api_secret or token)
-e, --event-handlers Enable event handlers
-w, --no-webrtc-encryption Disable WebRTC encryption, so no DTLS or SRTP (only for debugging!)
-V, --version Print version and exit
Janus version: 1404 (1.4.4)
Janus commit: not-a-git-repo
Compiled on: Wed Nov 4 14:40:20 UTC 2026Options override the matching key in janus.jcfg. A few examples:
sh
janus --configs-folder=/etc/janus -d 5 # config folder, debug level
janus -F ./conf --stun-server=stun.l.google.com:19302
janus -F ./conf --nat-1-1=203.0.113.10 --rtp-port-range=20000-40000
janus -F ./conf -A --token-auth-secret=s3cret # signed-token authentication
janus --version # prints the version banner and exitstext
Janus version: 1404 (1.4.4)
Janus commit: not-a-git-repo
Compiled on: Wed Nov 4 14:40:20 UTC 2026The commit and build time come from janus/build.rs at compile time. The version 1404 (1.4.4) is the C version the port tracks.