[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6295":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":19,"lastSyncTime":28,"discoverSource":29},6295,"janus-gateway","meetecho\u002Fjanus-gateway","meetecho","Janus WebRTC Server","https:\u002F\u002Fjanus.conf.meetecho.com",null,"C",9111,2616,371,16,0,7,30,2,41,"GNU General Public License v3.0",false,"master",[],"2026-06-12 02:01:17","Janus WebRTC Server\n===================\n[![License: GPL v3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-GPLv3-brightgreen.svg)](COPYING)\n![janus-ci](https:\u002F\u002Fgithub.com\u002Fmeetecho\u002Fjanus-gateway\u002Fworkflows\u002Fjanus-ci\u002Fbadge.svg)\n[![Coverity Scan Build Status](https:\u002F\u002Fscan.coverity.com\u002Fprojects\u002F13265\u002Fbadge.svg)](https:\u002F\u002Fscan.coverity.com\u002Fprojects\u002Fmeetecho-janus-gateway)\n[![Fuzzing Status](https:\u002F\u002Foss-fuzz-build-logs.storage.googleapis.com\u002Fbadges\u002Fjanus-gateway.svg)](https:\u002F\u002Fbugs.chromium.org\u002Fp\u002Foss-fuzz\u002Fissues\u002Flist?sort=-opened&can=1&q=proj:janus-gateway)\n\nJanus is an open source, general purpose, WebRTC server designed and developed by [Meetecho](https:\u002F\u002Fwww.meetecho.com). This version of the server is tailored for Linux systems, although it can be compiled for, and installed on, MacOS machines as well. Windows is not supported, but if that's a requirement, Janus is known to work in the \"Windows Subsystem for Linux\" on Windows 10: do **NOT** trust repos that provide .exe builds of Janus, they are not official and will not be supported.\n\nFor some online demos and documentations, make sure you pay the [project website](https:\u002F\u002Fjanus.conf.meetecho.com\u002F) a visit!\n\n> **Note well:** this is the main branch for the `multistream` version of Janus, which is the new version. If you want to check the legacy version of Janus instead (i.e., `0.x`, a.k.a. \"legacy\") click [here](https:\u002F\u002Fgithub.com\u002Fmeetecho\u002Fjanus-gateway\u002Ftree\u002F0.x) instead.\n\nIf you have questions on Janus, or wish to discuss Janus with us and other users, please join our [Community](https:\u002F\u002Fjanus.discourse.group\u002F). If you encounter bugs, please submit an issue on [GitHub](https:\u002F\u002Fgithub.com\u002Fmeetecho\u002Fjanus-gateway\u002Fissues): make sure you read the [guidelines](.github\u002FCONTRIBUTING.md) before opening an issue or a pull request, though.\n\n\n## Dependencies\nTo install it, you'll need to satisfy the following dependencies:\n\n* [GLib](https:\u002F\u002Fdocs.gtk.org\u002Fglib\u002F)\n* [zlib](https:\u002F\u002Fzlib.net\u002F)\n* [pkg-config](https:\u002F\u002Fwww.freedesktop.org\u002Fwiki\u002FSoftware\u002Fpkg-config\u002F)\n* [Jansson](https:\u002F\u002Fgithub.com\u002Fakheron\u002Fjansson)\n* [libconfig](https:\u002F\u002Fhyperrealm.github.io\u002Flibconfig\u002F)\n* [libnice](https:\u002F\u002Flibnice.freedesktop.org\u002F) (at least v0.1.16 suggested, v0.1.18 recommended)\n* [OpenSSL](https:\u002F\u002Fwww.openssl.org\u002F) (at least v1.0.1e)\n* [libsrtp](https:\u002F\u002Fgithub.com\u002Fcisco\u002Flibsrtp) (at least v2.x suggested)\n\nThese are optional dependencies, depending on which features you're interested in:\n\n* [usrsctp](https:\u002F\u002Fgithub.com\u002Fsctplab\u002Fusrsctp) (only needed if you are interested in Data Channels)\n* [libmicrohttpd](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Flibmicrohttpd\u002F) (at least v0.9.59; only needed if you are interested in REST support for the Janus API)\n* [libwebsockets](https:\u002F\u002Flibwebsockets.org\u002F) (at least v4.x suggested; only needed if you are interested in WebSockets support for the Janus API)\n* [cmake](https:\u002F\u002Fwww.cmake.org\u002F) (only needed if you are interested in WebSockets and\u002For BoringSSL support, as they make use of it)\n* [rabbitmq-c](https:\u002F\u002Fgithub.com\u002Falanxz\u002Frabbitmq-c) (only needed if you are interested in RabbitMQ support for the Janus API or events)\n* [paho.mqtt.c](https:\u002F\u002Feclipse.org\u002Fpaho\u002Fclients\u002Fc) (only needed if you are interested in MQTT support for the Janus API or events)\n* [nanomsg](https:\u002F\u002Fnanomsg.org\u002F) (only needed if you are interested in Nanomsg support for the Janus API)\n* [libcurl](https:\u002F\u002Fcurl.haxx.se\u002Flibcurl\u002F) (only needed if you are interested in the TURN REST API support)\n\nA couple of plugins depend on a few more libraries (you only need to install the ones for the plugins you need):\n\n* [Sofia-SIP](https:\u002F\u002Fgithub.com\u002Ffreeswitch\u002Fsofia-sip) (only needed for the SIP plugin)\n* [libopus](https:\u002F\u002Fopus-codec.org\u002F) (only needed for the AudioBridge plugin)\n* [libogg](https:\u002F\u002Fxiph.org\u002Fogg\u002F) (needed for the recordings post-processor, and optionally AudioBridge and Streaming plugins)\n* [libcurl](https:\u002F\u002Fcurl.haxx.se\u002Flibcurl\u002F) (only needed if you are interested in RTSP support in the Streaming plugin or in the sample Event Handler plugin)\n* [Lua](https:\u002F\u002Fwww.lua.org\u002Fdownload.html) (only needed for the Lua plugin)\n* [Duktape](https:\u002F\u002Fduktape.org\u002F) (only needed for the Duktape plugin)\n\n\nAll of those libraries are usually available on most of the most common distributions. Installing these libraries on a recent Fedora, for instance, is very simple:\n\n    yum install libmicrohttpd-devel jansson-devel \\\n       openssl-devel libsrtp-devel sofia-sip-devel glib2-devel \\\n       opus-devel libogg-devel libcurl-devel pkgconfig \\\n       libconfig-devel libtool autoconf automake\n\nNotice that you may have to `yum install epel-release` as well if you're attempting an installation on a CentOS machine instead.\n\nOn Ubuntu or Debian, it would require something like this:\n\n\tapt install libmicrohttpd-dev libjansson-dev \\\n\t\tlibssl-dev libsofia-sip-ua-dev libglib2.0-dev \\\n\t\tlibopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \\\n\t\tlibconfig-dev pkg-config libtool automake\n\n* *Note:* please notice that libopus may not be available out of the box on your distro. In that case, you'll have to [install it manually](https:\u002F\u002Fwww.opus-codec.org).\n\nWhile `libnice` is typically available in most distros as a package, the version available out of the box in Ubuntu is known to cause problems. As such, we always recommend manually compiling and installing the master version of libnice.\nTo build libnice, you need Python 3, Meson and Ninja:\n\n\tgit clone https:\u002F\u002Fgitlab.freedesktop.org\u002Flibnice\u002Flibnice\n\tcd libnice\n\tmeson --prefix=\u002Fusr build && ninja -C build && sudo ninja -C build install\n\n* *Note:* Make sure you remove the distro version first, or you'll cause conflicts between the installations. In case you want to keep both for some reason, for custom installations of libnice you can also run `pkg-config --cflags --libs nice` to make sure Janus can find the right installation. If that fails, you may need to set the `PKG_CONFIG_PATH` environment variable prior to compiling Janus, e.g., `export PKG_CONFIG_PATH=\u002Fpath\u002Fto\u002Flibnice\u002Flib\u002Fpkgconfig`\n\nIn case you're interested in compiling the sample Event Handler plugin, you'll need to install the development version of libcurl as well (usually `libcurl-devel` on Fedora\u002FCentOS, `libcurl4-openssl-dev` on Ubuntu\u002FDebian).\n\nIf your distro ships a pre-1.5 version of libsrtp, you'll have to uninstall that version and [install 1.5.x, 1.6.x or 2.x manually](https:\u002F\u002Fgithub.com\u002Fcisco\u002Flibsrtp\u002Freleases). In fact, 1.4.x is known to cause several issues with WebRTC. While 1.5.x is supported, we recommend installing 2.x instead. Notice that the following steps are for version 2.2.0, but there may be more recent versions available:\n\n\twget https:\u002F\u002Fgithub.com\u002Fcisco\u002Flibsrtp\u002Farchive\u002Fv2.2.0.tar.gz\n\ttar xfv v2.2.0.tar.gz\n\tcd libsrtp-2.2.0\n\t.\u002Fconfigure --prefix=\u002Fusr --enable-openssl\n\tmake shared_library && sudo make install\n\nNotice that the `--enable-openssl` part is _important_, as it's needed for AES-GCM support. As an alternative, you can also pass `--enable-nss` to have libsrtp use NSS instead of OpenSSL. A failure to configure libsrtp with either might cause undefined references when starting Janus, as we'd be trying to use methods that aren't there.\n\nThe Janus configure script autodetects which one you have installed and links to the correct library automatically, choosing 2.x if both are installed. If you want 1.5 or 1.6 to be picked (which is NOT recommended), pass `--disable-libsrtp2` when configuring Janus to force it to use the older version instead.\n\n* *Note:* when installing libsrtp, no matter which version, you may need to pass `--libdir=\u002Fusr\u002Flib64` to the configure script if you're installing on a x86_64 distribution.\n\nIf you want to make use of BoringSSL instead of OpenSSL (e.g., because you want to take advantage of `--enable-dtls-settimeout`), you'll have to manually install it to a specific location. Use the following steps:\n\n\tgit clone https:\u002F\u002Fboringssl.googlesource.com\u002Fboringssl\n\tcd boringssl\n\t# Don't barf on errors\n\tsed -i s\u002F\" -Werror\"\u002F\u002Fg CMakeLists.txt\n\t# Build\n\tmkdir -p build\n\tcd build\n\tcmake -DCMAKE_INSTALL_PREFIX=\u002Fopt\u002Fboringssl -DCMAKE_CXX_FLAGS=\"-lrt\" ..\n\tmake\n\tsudo make install\n\nOnce the library is installed, you'll have to pass an additional `--enable-boringssl` flag to the configure script, as by default Janus will be built assuming OpenSSL will be used. By default, Janus expects BoringSSL to be installed in `\u002Fopt\u002Fboringssl` -- if it's installed in another location, pass the path to the configure script as such: `--enable-boringssl=\u002Fpath\u002Fto\u002Fboringssl` If you were using OpenSSL and want to switch to BoringSSL, make sure you also do a `make clean` in the Janus folder before compiling with the new BoringSSL support. If you enabled BoringSSL support and also want Janus to detect and react to DTLS timeouts with faster retransmissions, then pass `--enable-dtls-settimeout` to the configure script too.\n\n* *Note:* as explained in [this issue](https:\u002F\u002Fgithub.com\u002Fmeetecho\u002Fjanus-gateway\u002Fissues\u002F3456), building Janus with more recent versions of BoringSSL may require you to pass a `CCLD=c++` for any `make` command to build Janus itself.\n\nFor what concerns usrsctp, which is needed for Data Channels support, it is usually not available in repositories, so if you're interested in them (support is optional) you'll have to install it manually. It is a pretty easy and standard process:\n\n\tgit clone https:\u002F\u002Fgithub.com\u002Fsctplab\u002Fusrsctp\n\tcd usrsctp\n\t.\u002Fbootstrap\n\t.\u002Fconfigure --prefix=\u002Fusr --disable-programs --disable-inet --disable-inet6\n\tmake && sudo make install\n\n* *Note:* you may need to pass `--libdir=\u002Fusr\u002Flib64` to the configure script if you're installing on a x86_64 distribution.\n\nThe same applies for libwebsockets, which is needed for the optional WebSockets support. If you're interested in supporting WebSockets to control Janus, as an alternative (or replacement) to the default plain HTTP REST API, you'll have to install it manually:\n\n\tgit clone https:\u002F\u002Flibwebsockets.org\u002Frepo\u002Flibwebsockets\n\tcd libwebsockets\n\t# If you want the stable version of libwebsockets, uncomment the next line\n\t# git checkout v4.3-stable\n\tmkdir build\n\tcd build\n\t# See https:\u002F\u002Fgithub.com\u002Fmeetecho\u002Fjanus-gateway\u002Fissues\u002F732 re: LWS_MAX_SMP\n\t# See https:\u002F\u002Fgithub.com\u002Fmeetecho\u002Fjanus-gateway\u002Fissues\u002F2476 re: LWS_WITHOUT_EXTENSIONS\n\tcmake -DLWS_MAX_SMP=1 -DLWS_WITHOUT_EXTENSIONS=0 -DCMAKE_INSTALL_PREFIX:PATH=\u002Fusr -DCMAKE_C_FLAGS=\"-fpic\" ..\n\tmake && sudo make install\n\n* *Note:* if libwebsockets.org is unreachable for any reason, replace the first line with this:\n\n\tgit clone https:\u002F\u002Fgithub.com\u002Fwarmcat\u002Flibwebsockets.git\n\nThe same applies for Eclipse Paho MQTT C client library, which is needed for the optional MQTT support. If you're interested in integrating MQTT channels as an alternative (or replacement) to HTTP and\u002For WebSockets to control Janus, or as a carrier of Janus Events, you can install the latest version with the following steps:\n\n\tgit clone https:\u002F\u002Fgithub.com\u002Feclipse\u002Fpaho.mqtt.c.git\n\tcd paho.mqtt.c\n\tmake && sudo make install\n\n* *Note:* you may want to set up a different install path for the library, to achieve that, replace the last command by 'sudo prefix=\u002Fusr make install'.\n\nIn case you're interested in Nanomsg support, you'll need to install the related C library. It is usually available as an easily installable package in pretty much all repositories. The following is an example on how to install it on Ubuntu:\n\n\taptitude install libnanomsg-dev\n\nFinally, the same can be said for rabbitmq-c as well, which is needed for the optional RabbitMQ support. In fact, several different versions of the library can be found, and the versions usually available in most distribution repositories are not up-do-date with respect to the current state of the development. As such, if you're interested in integrating RabbitMQ queues as an alternative (or replacement) to HTTP and\u002For WebSockets to control Janus, you can install the latest version with the following steps:\n\n\tgit clone https:\u002F\u002Fgithub.com\u002Falanxz\u002Frabbitmq-c\n\tcd rabbitmq-c\n\tgit submodule init\n\tgit submodule update\n\tmkdir build && cd build\n\tcmake -DCMAKE_INSTALL_PREFIX=\u002Fusr ..\n\tmake && sudo make install\n\n* *Note:* you may need to pass `--libdir=\u002Fusr\u002Flib64` to the configure script if you're installing on a x86_64 distribution.\n\nTo conclude, should you be interested in building the Janus documentation as well, you'll need some additional tools too:\n\n* [Doxygen](https:\u002F\u002Fwww.doxygen.org)\n* [Graphviz](https:\u002F\u002Fwww.graphviz.org\u002F)\n\nOn Fedora:\n\n\tyum install doxygen graphviz\n\nOn Ubuntu\u002FDebian:\n\n\taptitude install doxygen graphviz\n\n\n## Compile\nOnce you have installed all the dependencies, get the code:\n\n\tgit clone https:\u002F\u002Fgithub.com\u002Fmeetecho\u002Fjanus-gateway.git\n\tcd janus-gateway\n\nThen just use:\n\n\tsh autogen.sh\n\nto generate the configure file. After that, configure and compile as usual to start the whole compilation process:\n\n\t.\u002Fconfigure --prefix=\u002Fopt\u002Fjanus\n\tmake\n\tmake install\n\nSince Janus requires configuration files for both the core and its modules in order to work, you'll probably also want to install the default configuration files to use, which you can do this way:\n\n\tmake configs\n\nRemember to only do this once, or otherwise a subsequent `make configs` will overwrite any configuration file you may have modified in the meanwhile.\n\nIf you've installed the above libraries but are not interested, for instance, in Data Channels, WebSockets, MQTT and\u002For RabbitMQ, you can disable them when configuring:\n\n\t.\u002Fconfigure --disable-websockets --disable-data-channels --disable-rabbitmq --disable-mqtt\n\nThere are configuration flags for pretty much all external modules and many of the features, so you may want to issue a `.\u002Fconfigure --help` to dig through the available options. A summary of what's going to be built will always appear after you do a configure, allowing you to double check if what you need and don't need is there.\n\nIf Doxygen and graphviz are available, the process can also build the documentation for you. By default the compilation process will not try to build the documentation, so if you instead prefer to build it, use the `--enable-docs` configuration option:\n\n\t.\u002Fconfigure --enable-docs\n\nYou can also selectively enable\u002Fdisable other features (e.g., specific plugins you don't care about, or whether or not you want to build the recordings post-processor). Use the --help option when configuring for more info.\n\n### Building on FreeBSD\n* *Note*: rtp_forward of streams only works streaming to IPv6,\nbecause of #2051 and thus the feature is not supported on FreeBSD at the moment.\n\nWhen building on FreeBSD you can install the depencencies from ports or packages, here only pkg method is used. You also need to use `gmake` instead of `make`,\nsince it is a GNU makefile. `.\u002Fconfigure` can be run without arguments since the default prefix is `\u002Fusr\u002Flocal` which is your default `LOCALBASE`.\nNote that the `configure.ac` is coded to use openssl in base. If you wish to use openssl from ports or any other ssl you must change `configure.ac` accordingly.\n\n\tpkg install libsrtp2 libusrsctp jansson libnice libmicrohttpd libwebsockets curl opus sofia-sip libogg jansson libnice libconfig \\\n        libtool gmake autoconf autoconf-wrapper glib\n\n\n### Building on MacOS\nWhile most of the above instructions will work when compiling Janus on MacOS as well, there are a few aspects to highlight when doing that.\n\nFirst of all, you can use `brew` to install most of the dependencies:\n\n\tbrew install jansson libnice openssl srtp libusrsctp libmicrohttpd \\\n\t\tlibwebsockets cmake rabbitmq-c sofia-sip opus libogg curl glib \\\n\t\tlibconfig pkg-config autoconf automake libtool\n\nFor what concerns libwebsockets, though, make sure that the installed version is higher than `2.4.1`, or you might encounter the problems described in [this post](https:\u002F\u002Fgroups.google.com\u002Fforum\u002F#!topic\u002Fmeetecho-janus\u002FHsFaEXBz4Cg). If `brew` doesn't provide a more recent version, you'll have to install the library manually.\n\nNotice that you may need to provide a custom `prefix` and `PKG_CONFIG_PATH` when configuring Janus as well, e.g.:\n\n\t.\u002Fconfigure --prefix=\u002Fusr\u002Flocal\u002Fjanus PKG_CONFIG_PATH=\u002Fusr\u002Flocal\u002Fopt\u002Fopenssl\u002Flib\u002Fpkgconfig\n\nEverything else works exactly the same way as on Linux.\n\n## Configure and start\nTo start the server, you can use the `janus` executable. There are several things you can configure, either in a configuration file:\n\n\t\u003Cinstalldir>\u002Fetc\u002Fjanus\u002Fjanus.jcfg\n\nor on the command line:\n\n\t\u003Cinstalldir>\u002Fbin\u002Fjanus --help\n\n\tUsage: janus [OPTIONS]...\n\n\t-h, --help                    Print help and exit\n\t-V, --version                 Print version and exit\n\t-b, --daemon                  Launch Janus in background as a daemon\n                                  (default=off)\n\t-p, --pid-file=path           Open the specified PID file when starting Janus\n                                  (default=none)\n\t-N, --disable-stdout          Disable stdout based logging  (default=off)\n\t-L, --log-file=path           Log to the specified file (default=stdout only)\n\t-H  --cwd-path                Working directory for Janus daemon process\n\t                              (default=\u002F)\n\t-i, --interface=ipaddress     Interface to use (will be the public IP)\n\t-P, --plugins-folder=path     Plugins folder (default=.\u002Fplugins)\n\t-C, --config=filename         Configuration file to use\n\t-F, --configs-folder=path     Configuration files folder (default=.\u002Fconf)\n\t-c, --cert-pem=filename       DTLS certificate\n\t-k, --cert-key=filename       DTLS certificate key\n\t-K, --cert-pwd=text           DTLS certificate key passphrase (if needed)\n\t-S, --stun-server=address:port\n                                  STUN server(:port) to use, if needed (e.g.,\n                                  Janus behind NAT, default=none)\n\t-1, --nat-1-1=ip              Public IP to put in all host candidates,\n                                  assuming a 1:1 NAT is in place (e.g., Amazon\n                                  EC2 instances, default=none)\n\t-2, --keep-private-host       When nat-1-1 is used (e.g., Amazon EC2\n                                  instances), don't remove the private host,\n                                  but keep both to simulate STUN  (default=off)\n\t-E, --ice-enforce-list=list   Comma-separated list of the only interfaces to\n                                  use for ICE gathering; partial strings are\n                                  supported (e.g., eth0 or eno1,wlan0,\n                                  default=none)\n\t-X, --ice-ignore-list=list    Comma-separated list of interfaces or IP\n                                  addresses to ignore for ICE gathering;\n                                  partial strings are supported (e.g.,\n                                  vmnet8,192.168.0.1,10.0.0.1 or\n                                  vmnet,192.168., default=vmnet)\n\t-6, --ipv6-candidates         Whether to enable IPv6 candidates or not\n                                  (experimental)  (default=off)\n\t-O, --ipv6-link-local         Whether IPv6 link-local candidates should be\n                                  gathered as well  (default=off)\n\t-f, --full-trickle            Do full-trickle instead of half-trickle\n                                  (default=off)\n\t-I, --ice-lite                Whether to enable the ICE Lite mode or not\n                                  (default=off)\n\t-T, --ice-tcp                 Whether to enable ICE-TCP or not (warning: only\n                                  works with ICE Lite)\n                                  (default=off)\n\t-Q, --min-nack-queue=number   Minimum size of the NACK queue (in ms) per user\n                                  for retransmissions, no matter the RTT\n\t-t, --no-media-timer=number   Time (in s) that should pass with no media\n                                  (audio or video) being received before Janus\n                                  notifies you about this\n\t-W, --slowlink-threshold=number\n                                  Number of lost packets (per s) that should\n                                  trigger a 'slowlink' Janus API event to users\n                                  (default=0, feature disabled)\n\t-r, --rtp-port-range=min-max  Port range to use for RTP\u002FRTCP (only available\n\t\t\t\t\t\t\t\t  if the installed libnice supports it)\n\t-B, --twcc-period=number      How often (in ms) to send TWCC feedback back to\n                                  senders, if negotiated (default=200ms)\n\t-n, --server-name=name        Public name of this Janus instance\n                                  (default=MyJanusInstance)\n\t-s, --session-timeout=number  Session timeout value, in seconds (default=60)\n\t-m, --reclaim-session-timeout=number\n                                  Reclaim session timeout value, in seconds\n                                  (default=0)\n\t-d, --debug-level=1-7         Debug\u002Flogging level (0=disable debugging,\n                                  7=maximum debug level; default=4)\n\t-D, --debug-timestamps        Enable debug\u002Flogging timestamps  (default=off)\n\t-o, --disable-colors          Disable color in the logging  (default=off)\n\t-M, --debug-locks             Enable debugging of locks\u002Fmutexes (very\n                                  verbose!)  (default=off)\n\t-a, --apisecret=randomstring  API secret all requests need to pass in order\n                                  to be accepted by Janus (useful when wrapping\n                                  Janus API requests in a server, none by\n                                  default)\n\t-A, --token-auth              Enable token-based authentication for all\n                                  requests  (default=off)\n\t-e, --event-handlers          Enable event handlers  (default=off)\n\t-w, --no-webrtc-encryption    Disable WebRTC encryption, so no DTLS or SRTP\n                                  (only for debugging!)  (default=off)\n\n\nOptions passed through the command line have the precedence on those specified in the configuration file. To start the server, simply run:\n\n\t\u003Cinstalldir>\u002Fbin\u002Fjanus\n\nThis will start the server, and have it look at the configuration file.\n\nMake sure you have a look at all of the configuration files, to tailor Janus to your specific needs: each configuration file is documented, so it shouldn't be hard to make changes according to your requirements. The repo comes with some defaults (assuming you issues `make configs` after installing the server) that tend to make sense for generic deployments, and also includes some sample configurations for all the plugins (e.g., web servers to listen on, conference rooms to create, streaming mountpoints to make available at startup, etc.).\n\nTo test whether it's working correctly, you can use the demos provided with this package in the `html` folder: these are exactly the same demos available online on the [project website](https:\u002F\u002Fjanus.conf.meetecho.com\u002F). Just copy the file it contains in a webserver, or use a userspace webserver to serve the files in the `html` folder (e.g., with php or python), and open the `index.html` page in either Chrome or Firefox. A list of demo pages exploiting the different plugins will be available. Remember to edit the transport\u002Fport details in the demo JavaScript files if you changed any transport-related configuration from its defaults. Besides, the demos refer to the pre-configured plugin resources, so if you add some new resources (e.g., a new videoconference) you may have to tweak the demo pages to actually use them.\n\n## Documentation\nJanus is thoroughly documented. You can find the current documentation, automatically generated with Doxygen, on the [project website](https:\u002F\u002Fjanus.conf.meetecho.com\u002Fdocs\u002F).\n\n## Help us!\nAny thought, feedback or (hopefully not!) insult is welcome!\n\nDeveloped by [@meetecho](https:\u002F\u002Fgithub.com\u002Fmeetecho)\n","Janus WebRTC Server 是一个开源的通用WebRTC服务器，专为Linux系统设计，同时也支持在MacOS上编译和安装。其核心功能包括通过WebRTC技术实现音视频流传输、数据通道等功能，并且具有良好的扩展性和安全性。基于C语言开发，依赖于GLib、libnice、OpenSSL等库，支持REST API及WebSocket等多种通信协议。该项目适用于需要构建实时音视频通信服务的应用场景，如在线会议、直播互动、远程教育等领域。","2026-06-11 03:06:19","top_language"]