Protocol Overview
Monibuca V6 adopts a plugin-based architecture where each protocol is provided as an independent plugin. Pre-compiled binaries and Docker images include support for all protocols, which can be enabled on demand through configuration files.
Protocol Comparison
Section titled “Protocol Comparison”| Protocol | Publish | Subscribe | Latency | Typical Use Cases |
|---|---|---|---|---|
| RTMP | ✅ | ✅ | 1-3s | OBS/FFmpeg publishing, live streaming distribution |
| RTSP | ✅ | ✅ | 0.5-2s | Camera integration, security surveillance |
| HTTP-FLV | ❌ | ✅ | 1-3s | Web playback, low-latency live streaming |
| HLS | ❌ | ✅ | 5-30s | Large-scale distribution, mobile playback, CDN compatible |
| WebRTC | ✅ | ✅ | < 500ms | Ultra-low latency interaction, video conferencing |
| SRT | ✅ | ✅ | 120ms+ | Remote contribution, lossy network transport, broadcast-grade ingest |
| GB28181 | ✅ | ✅ | 1-3s | National standard video surveillance, platform cascading |
| WebTransport | ✅ | ✅ | < 500ms | Next-generation low-latency web transport |
Protocol Configuration
Section titled “Protocol Configuration”Each protocol plugin can be enabled or disabled on demand in the configuration file:
# config.yaml — Enable protocols as neededrtmp: enable: true tcp: listenaddr: ":1935"
rtsp: enable: true tcp: listenaddr: ":8554"
hls: enable: true
webrtc: enable: true portrange: "udp:9000-9100"
# Set unwanted protocols to false or omit themsrt: enable: falseCross-Protocol Transcoding
Section titled “Cross-Protocol Transcoding”Monibuca V6 supports automatic audio transcoding between different protocols to ensure cross-protocol playback compatibility.
Opus ↔ AAC Transcoding
Section titled “Opus ↔ AAC Transcoding”WebRTC and WebTransport use Opus audio encoding, while traditional protocols such as RTMP, HTTP-FLV, and HLS use AAC audio encoding. When streams are forwarded between these protocols, the engine automatically performs audio transcoding:
| Scenario | Transcoding Direction | Description |
|---|---|---|
| WebRTC publish → RTMP subscribe | Opus → AAC | Automatic transcoding |
| WebRTC publish → HLS subscribe | Opus → AAC | Automatic transcoding |
| RTMP publish → WebRTC subscribe | AAC → Opus | Automatic transcoding |
| RTMP publish → RTMP subscribe | No transcoding needed | Direct forwarding |
| WebRTC publish → WebRTC subscribe | No transcoding needed | Direct forwarding |
To enable audio transcoding, activate the transcode feature:
[features]transcode = ["codec/transcode"]Video Codec Compatibility
Section titled “Video Codec Compatibility”Video codecs (H.264/H.265) are universal across all protocols and do not require transcoding. Video codec support by protocol:
| Codec | RTMP | RTSP | HTTP-FLV | HLS | WebRTC | SRT | GB28181 | WebTransport |
|---|---|---|---|---|---|---|---|---|
| H.264 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| H.265 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Protocol Selection Guide
Section titled “Protocol Selection Guide”- Publishing: RTMP is recommended (best compatibility) or SRT (more stable on lossy networks)
- Web playback: HTTP-FLV (low latency) or HLS (high compatibility) is recommended
- Ultra-low latency: WebRTC or WebTransport is recommended
- Security surveillance: RTSP or GB28181 is recommended
- Large-scale distribution: HLS is recommended (CDN-friendly)