JANUS(1)
π JANUS(1) β bestie's guide to the WebRTC server/gateway π
General Commands Manual β¨ ok so real talk, this is janus(1), and she is that girl.
π¦ NAME π¦
janus β a WebRTC server/gateway, no cap π
β¨ SYNOPSIS β¨
janus [options]
πΈ DESCRIPTION πΈ
okay so bestie, janus is a WebRTC server/gateway, developed by Meetecho, and the whole vibe is that it's meant to be general purpose. Like, it doesn't do any one thing on its own β what it does is implement the means to set up a WebRTC media communication with a browser or application, exchange JSON messages with it over different transports, and relay RTP/RTCP and messages between clients and the server-side application logic they're attached to. Periodt. π«Ά
All the actual features? Those come from server side plugins β browsers contact them via the server to take advantage of whatever functionality they provide. Examples of such plugins are implementations of things like echo tests, conference bridges, media recorders, SIP gateways and the like. Iconic. π
And the reason for all of this is simple, fr fr: they wanted something with a small footprint (hence a C implementation) that could only be equipped with what was really needed (hence pluggable modules). It's giving "deploy a full-fledged WebRTC server on the cloud OR a tiny nettop/box to handle one specific use case" β and honestly? Versatile. We love her. π
π OPTIONS π
-h,--helpβ print help and exit. Your lil "what do I do" button π₯Ί-V,--versionβ print version and exit β¨-b,--daemonβ launch Janus in background as a daemon (default=off) π-p,--pid-file=pathβ open the specified PID file when starting Janus (default=none)-N,--disable-stdoutβ disable stdout based logging (default=off) π€«--log-stdoutβ log to stdout, even when the process is daemonized (default=off)-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 (default=off)-E,--ice-enforce-list=listβ comma-separated list of the only interfaces to use for ICE gathering; partial strings are supported (e.g.,eth0oreno1,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.1orvmnet,192.168., default=vmnet)-6,--ipv6-candidatesβ whether to enable IPv6 candidates or not (default=off)-O,--ipv6-link-localβ whether IPv6 link-local candidates should be gathered as well (default=off)-l,--libnice-debugβ whether to enable libnice debugging or not (default=off) π-f,--full-trickleβ do full-trickle instead of half-trickle (default=off)-I,--ice-liteβ whether to enable the ICE Lite mode or not (default=off)-T,--ice-tcpβ whether to enable ICE-TCP or not (warning: only works with ICE Lite) (default=off) β οΈ-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 aslowlinkJanus 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 (default=off) π°οΈ-o,--disable-colorsβ disable color in the logging (default=off) πβ‘οΈβ¬-M,--debug-locksβ enable debugging of locks/mutexes (very verbose! default=off) π£οΈ-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 (default=off) ποΈ-e,--event-handlersβ enable event handlers (default=off) π£-w,--no-webrtc-encryptionβ disable WebRTC encryption, so no DTLS or SRTP (only for debugging!) (default=off)
bestie listen. that last one? -w? that is for DEBUGGING ONLY. do not ship that. do not. I'm begging. π
π EXAMPLES π
janus
Launch Janus with all options from configurations files π«Ά
janus -b -L /tmp/januslog
Launch Janus as a daemon and log to the specified file π
janus -6
Launch Janus with IPv6 support enabled π
janus -f
Launch Janus with full-trickle enabled β¨
π BUGS π
If you think you found a bug or want to contribute a feature, you can issue or a pull request on https://github.com/meetecho/janus-gateway/issues.
Anyway, before doing that make sure you read the documentation at https://janus.conf.meetecho.com/docs/ and that it has not been discussed already at https://janus.discourse.group/. We only use Github for code issues, and NOT for configuration or usage issues: use the group for that. π (fr fr, read first, then post β the way that saves everyone's time is unmatched)
π SEE ALSO π
- https://github.com/meetecho/janus-gateway β Official repository
- https://janus.conf.meetecho.com β Demos and documentation
- https://janus.discourse.group/ β Community
- https://www.meetecho.com/blog/ β Tutorials and blog posts on Janus
π AUTHORS π
Lorenzo Miniero (lorenzo@meetecho.com) π«Ά
and that's the whole page, bestie!! this lil beauty lives in the General Commands Manual, filed under JANUS(1) β footer says JANUS(1) too, so you know it's official π
go build something iconic with her, mwah πβ¨π
π¦ where this page comes from
- alpine 3.24: janus-gateway-doc 1.4.1-r0 Β· GPL-3.0-only
- fedora 43: janus 1.4.2-1.fc43
- fedora 43: janus 1.4.2-1.fc43
- fedora 43: janus 1.4.3-1.fc43 Β· GPL-3.0-only AND MIT AND BSD-3-Clause
- fedora 43: janus 1.4.3-1.fc43 Β· GPL-3.0-only AND MIT AND BSD-3-Clause
- fedora 44: janus 1.4.2-1.fc44
- fedora 44: janus 1.4.2-1.fc44
- fedora 44: janus 1.4.3-1.fc44 Β· GPL-3.0-only AND MIT AND BSD-3-Clause
- fedora 44: janus 1.4.3-1.fc44 Β· GPL-3.0-only AND MIT AND BSD-3-Clause
- nixpkgs unstable: janus-gateway 1.4.3
- ubuntu stonking: janus 1.4.1+ds-4build1 Β· GPL-3.0-only WITH OpenSSL exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms