A real-time audio and video streaming media server
Live777 is a very simple, high performance, lightweight WebRTC SFU (Selective Forwarding Unit) server, with WHIP/WHEP as its first-class protocols.
Live777 works with GStreamer, FFmpeg, OBS Studio, VLC, WebRTC and other clients to receive and distribute streams — a typical publish (push) / subscribe (play) server model. It also converts between the audio and video protocols widely used on the Internet, such as RTP/RTSP to WHIP and WHEP.
-
📚 Support
WHIP/WHEPImplements the WHIP/WHEP protocols for out-of-the-box interoperability with other WebRTC application modules — no custom adaptation required.
-
🗃️ P2P/SFU Mix architecture
Only forwards media streams — no mixing, transcoding or other resource-hungry media processing on the server. Encoding and decoding stay on the sender and the receiver respectively.
-
🌐 Multiple platform support
Native support for Linux, macOS, Windows and Android, on both ARM and x86.
-
🕸️ Cluster & cascade
The companion
livemanmanager turns multiple Live777 nodes into a cluster — proxying client requests, managing cascade state between nodes, and coordinating recording across the cluster. -
🎥 Stream recording
Record published streams as fragmented MP4 segments to the local filesystem or S3-compatible object storage, controlled through the REST API.
-
📊 WebUI & observability
An embedded WebUI, admin and session REST APIs, and Prometheus metrics are built in for easy operation and observability in production.
The all-in-one live777-all image bundles the server, FFmpeg, the WHIP/WHEP tools
(whipinto, whepfrom, whipsynth, whepprobe) and a smoke-test command that
verifies the full publish → subscribe → decode loop (host networking is required):
docker run -d --name live777 --rm --network host ghcr.io/binbat/live777-all:latest
docker exec live777 smoke-testsmoke-test publishes a test stream over WHIP, plays it back over WHEP and decodes the
video with FFmpeg. On success it prints a whepprobe JSON report and exits 0; on
failure it exits non-zero and prints diagnostics. Then open your browser at
http://localhost:7777/, and clean up with docker stop live777.
No server running yet? A single command starts a temporary server, checks it and cleans up:
docker run --rm --network host ghcr.io/binbat/live777-all:latest smoke-test --standaloneFor prebuilt binaries, Linux packages, winget and cargo installs, see the installation guide.
This repository also ships these companion tools:
| Tool | Description |
|---|---|
liveman |
Cluster manager for multiple Live777 nodes |
whipinto |
RTP/RTSP → WHIP bridge: push RTP/RTSP streams into a WHIP endpoint |
whepfrom |
WHEP → RTP/RTSP bridge: pull a WHEP stream and output RTP/RTSP |
whipsynth |
Synthetic WHIP publisher: generated test patterns, no media source needed |
whepprobe |
ffprobe-style WHEP probe: verifies reachability and FFmpeg decoding |
whepwright |
Browser-based WHEP playback tester (Playwright) |
net4mqtt |
TCP/UDP-over-MQTT proxy and tunnel |
This work is supported by Xidian University.