Plugin Overview
Monibuca V6 adopts a fully plugin-based architecture. All protocol access, utility functions, and device integration are provided as independent plugin crates. The engine core only handles stream management, configuration, and HTTP services, while specific functionality is assembled from plugins as needed.
Plugin List
Section titled “Plugin List”V6 provides 26 plugins + 1 built-in service (Room), organized into five categories.
Protocol Plugins (8)
Section titled “Protocol Plugins (8)”| Plugin | Config section | Description |
|---|---|---|
| RTMP | rtmp | RTMP publish/subscribe, with auth and GOP cache |
| RTSP | rtsp | RTSP publish/subscribe, TCP/UDP transport |
| HTTP-FLV | flv | HTTP-FLV streaming, WebSocket-FLV support |
| HLS | hls | HLS segmentation and playback, LL-HLS support |
| WebRTC | webrtc | WebRTC publish/subscribe, WHIP/WHEP standard |
| SRT | srt | SRT protocol, low-latency reliable transport |
| WebTransport | webtransport | QUIC-based WebTransport protocol support |
| GB28181 | gb28181 | GB/T 28181 device access and cascading |
Utility Plugins (11)
Section titled “Utility Plugins (11)”| Plugin | Config section | Description |
|---|---|---|
| MP4 Recording | mp4 | MP4 recording and VOD playback |
| Snapshot Service | snap | Video stream snapshots and MJPEG output |
| Audio Transcoding | ffmpeg_transcode | FFmpeg-based audio/video transcoding |
| Log Rotation | logrotate | Automatic log file rotation and cleanup |
| Debug Tools | debug | Development and debugging utilities |
| SEI Injection | sei | H.264/H.265 SEI data injection |
| Scheduled Tasks | crontab | Scheduled pull streaming, recording, and other periodic tasks |
| Stream Mixing | mix | Merge multiple streams into a single output |
| Encryption | crypto | Media content encryption |
| Reporting | report | Runtime status and metrics reporting |
| Testing | test | Automated integration testing plugin |
See Utility Plugins for details.
Room Extension Plugins (4)
Section titled “Room Extension Plugins (4)”| Plugin | Config section | Description | Documentation |
|---|---|---|---|
| Room Service | room | Room core service (engine built-in), manages room lifecycle, users, WebSocket, callbacks | Details |
| Live Room | live | Live room management: gift system, co-hosting, PK battles, bot viewers, data persistence | Details |
| Meeting Room | meeting | Video conferencing: agenda, timer, real-time transcription, AI summary, task extraction | Details |
| Customer Service | customer-service | 1v1 customer service calls: agent management, audio mixing, satisfaction rating | Details |
Device Plugins (3)
Section titled “Device Plugins (3)”| Plugin | Config section | Description |
|---|---|---|
| ONVIF | onvif | ONVIF protocol device discovery and management |
| V4L2 | v4l2 | Linux Video4Linux2 camera capture |
| ALSA | alsa | Linux ALSA audio capture |
Other (1)
Section titled “Other (1)”| Plugin | Config section | Description |
|---|---|---|
| HomeKit | homekit | Apple HomeKit camera integration |
See Device and Ecosystem Plugins for details.
Room System Quick Overview
Section titled “Room System Quick Overview”Monibuca V6’s room system is based on the built-in Room Service and three extension plugins:
┌─────────────────────────────────────────────┐│ Room Service (Engine Built-in) ││ • Room lifecycle management ││ • WebSocket connection management ││ • User join/leave/heartbeat ││ • RoomApi trait and callback system │└─────────────────────────────────────────────┘ ↓ RoomApi trait ↓┌──────────────────────────────────┬──────────────────────────────────┬──────────────────────────────────┐│ Live Plugin (Live Room) │ Meeting Plugin (Meeting Room) │ CustomerService Plugin ││ • Gift system & Combo │ • Agenda management │ • 1v1 sessions (max_users: 2) ││ • Co-hosting (Link-Mic) │ • Timer │ • Session assignment/transfer ││ • PK battles │ • Real-time transcription (ASR) │ • Audio mixing ││ • Bot viewers │ • AI summary & task extraction │ • Satisfaction rating ││ • Data persistence │ • Lobby (waiting room) │ • HTTP API ││ • 100+ viewers │ • 50+ participants │ • 1000+ concurrent sessions │└──────────────────────────────────┴──────────────────────────────────┴──────────────────────────────────┘Scenario Mapping:
- Live streaming scenario → Live plugin + WebRTC publish
- Meeting scenario → Meeting plugin + lobby + recording
- Customer service scenario → CustomerService plugin + HTTP API
See Room System Documentation for details.
Enabling Plugins
Section titled “Enabling Plugins”Official pre-built binaries and Docker images already include every built-in plugin. Toggle them in config.yaml with enable: true/false — you do not need to compile the engine from source.
# Minimal protocol setrtmp: enable: trueflv: enable: truehls: enable: true
# Live streaming (Room-related plugins)live: enable: truewebrtc: enable: true
# Meetingmeeting: enable: true
# Surveillancertsp: enable: truegb28181: enable: trueSet enable: false to turn off plugins you do not need. See each plugin page for full configuration options.
Plugin Loading Modes
Section titled “Plugin Loading Modes”Monibuca V6 supports three plugin loading modes:
Built-in plugins (default)
Section titled “Built-in plugins (default)”Official binaries ship with all built-in plugins statically linked. Enable them via configuration. Recommended for production — best performance and simplest deployment.
Dynamic loading
Section titled “Dynamic loading”Custom or third-party plugins can be built as .so / .dylib / .dll and loaded at runtime from plugins_dir:
plugins_dir: "./plugins"WASM plugins (experimental)
Section titled “WASM plugins (experimental)”WASM plugins run in a WebAssembly sandbox for stronger isolation. This mode is still under development.
Plugin Lifecycle
Section titled “Plugin Lifecycle”All plugins follow a unified lifecycle management:
Created → Initialized → Running → Stopped ↓ Disabled- Created — Plugin instance is created
- Initialized —
init()is called, loading configuration and injecting dependencies - Running —
start()is called, the plugin begins serving - Stopped —
stop()is called, graceful shutdown - Disabled —
enable: falsein configuration, startup is skipped
The engine manages the initialization order, dependency injection, and graceful shutdown of all plugins through the PluginManager.
Component API Entry Points
Section titled “Component API Entry Points”If you need to find HTTP APIs by component, use these entry pages:
- Component API Overview: route prefixes and endpoint entries by component
- HTTP API Overview: global conventions, authentication, and response format
- Stream Management API:
/v6/api/stream endpoints - Customer Service Plugin: business endpoints and examples under
/customer-service/