Janus

communicationdeveloper tools

General-purpose WebRTC server and gateway by Meetecho. A plugin-based C library that powers custom real-time applications — video rooms, SIP gateways, streaming, and data channels — rather than a ready-to-use conferencing product

#webrtc#video#sip#streaming#self-hosted#developer

Quick Start

docker run -d --net=host -e DOCKER_IP=<your-public-ip> canyan/janus-gateway:latest

Overview

Janus is a WebRTC server and gateway developed by Meetecho, the company that created the WebRTC standard’s reference implementations. It is not a conferencing product you deploy and immediately use. It is a media server platform with a plugin architecture — a foundation you build real-time applications on top of.

The plugin system is what makes Janus flexible. Each plugin implements a different kind of real-time communication: VideoRoom handles multi-party video conferences, VideoCall handles one-to-one calls, Streaming broadcasts a live feed to many viewers, AudioBridge mixes audio channels, SipGateway bridges SIP telephone calls into WebRTC sessions, and TextRoom handles data channel messaging. You can run all of them simultaneously from one server, and build applications that combine them.

Signalling is deliberately left to you. Janus handles the media — the actual audio and video streams — but the signalling protocol that coordinates session setup, participant joining, and state changes is not prescribed. You can use REST, WebSockets, RabbitMQ, or MQTT depending on what your application architecture requires. This flexibility is what makes Janus a general-purpose building block rather than an opinionated product.

The trade-off is development complexity. Building a working video application on Janus requires understanding WebRTC fundamentals — SDP, ICE, SRTP, STUN/TURN — as well as Janus’s own session and handle model. The JavaScript client library and official demos reduce the ramp-up time, but this is firmly developer-facing infrastructure.

For teams that need a ready-made conferencing platform, Jitsi Meet or Galène are more appropriate. For teams building a custom real-time application — a telehealth platform, a live streaming product, a browser-based SIP client — Janus provides a mature, well-documented server foundation.

Janus: Pros & Cons

Pros (The Wins)Cons (The Friction)
Plugin architecture:
Video rooms, SIP, streaming,
audio bridge in one server.
GPL-3.0 licence:
Commercial products may need
a Meetecho commercial licence.
9.1k stars:
Established, actively maintained
by the Meetecho team.
Not turnkey:
You build the application;
Janus provides primitives.
Flexible signalling:
REST, WebSockets, or message
queues — your choice.
C codebase:
Compilation and system
deps; involved customisation.
Official JS/iOS/Android SDKs:
Client libraries and demos
accelerate development.
WebRTC learning curve:
SDP, ICE, SRTP knowledge
required to build on it.

Use Cases

Specific ways to use Janus for your workflow.

01
Build a custom video conferencing application that needs a self-hosted WebRTC backend with full control over signalling and media handling
02
Create a SIP-to-WebRTC gateway that bridges telephone calls into a browser-based interface
03
Stream live video to many viewers over WebRTC without a commercial streaming CDN
04
Develop a real-time data channel application — shared whiteboards, collaborative tools — using WebRTC data channels

Deployment Strategy

Recommended ways to host Janus in your own environment.

docker
self-hosted