Skip to content

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.

V6 provides 26 plugins + 1 built-in service (Room), organized into five categories.

PluginConfig sectionDescription
RTMPrtmpRTMP publish/subscribe, with auth and GOP cache
RTSPrtspRTSP publish/subscribe, TCP/UDP transport
HTTP-FLVflvHTTP-FLV streaming, WebSocket-FLV support
HLShlsHLS segmentation and playback, LL-HLS support
WebRTCwebrtcWebRTC publish/subscribe, WHIP/WHEP standard
SRTsrtSRT protocol, low-latency reliable transport
WebTransportwebtransportQUIC-based WebTransport protocol support
GB28181gb28181GB/T 28181 device access and cascading
PluginConfig sectionDescription
MP4 Recordingmp4MP4 recording and VOD playback
Snapshot ServicesnapVideo stream snapshots and MJPEG output
Audio Transcodingffmpeg_transcodeFFmpeg-based audio/video transcoding
Log RotationlogrotateAutomatic log file rotation and cleanup
Debug ToolsdebugDevelopment and debugging utilities
SEI InjectionseiH.264/H.265 SEI data injection
Scheduled TaskscrontabScheduled pull streaming, recording, and other periodic tasks
Stream MixingmixMerge multiple streams into a single output
EncryptioncryptoMedia content encryption
ReportingreportRuntime status and metrics reporting
TestingtestAutomated integration testing plugin

See Utility Plugins for details.

PluginConfig sectionDescriptionDocumentation
Room ServiceroomRoom core service (engine built-in), manages room lifecycle, users, WebSocket, callbacksDetails
Live RoomliveLive room management: gift system, co-hosting, PK battles, bot viewers, data persistenceDetails
Meeting RoommeetingVideo conferencing: agenda, timer, real-time transcription, AI summary, task extractionDetails
Customer Servicecustomer-service1v1 customer service calls: agent management, audio mixing, satisfaction ratingDetails
PluginConfig sectionDescription
ONVIFonvifONVIF protocol device discovery and management
V4L2v4l2Linux Video4Linux2 camera capture
ALSAalsaLinux ALSA audio capture
PluginConfig sectionDescription
HomeKithomekitApple HomeKit camera integration

See Device and Ecosystem Plugins for details.


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.


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 set
rtmp:
enable: true
flv:
enable: true
hls:
enable: true
# Live streaming (Room-related plugins)
live:
enable: true
webrtc:
enable: true
# Meeting
meeting:
enable: true
# Surveillance
rtsp:
enable: true
gb28181:
enable: true

Set enable: false to turn off plugins you do not need. See each plugin page for full configuration options.

Monibuca V6 supports three plugin loading modes:

Official binaries ship with all built-in plugins statically linked. Enable them via configuration. Recommended for production — best performance and simplest deployment.

Custom or third-party plugins can be built as .so / .dylib / .dll and loaded at runtime from plugins_dir:

plugins_dir: "./plugins"

WASM plugins run in a WebAssembly sandbox for stronger isolation. This mode is still under development.

All plugins follow a unified lifecycle management:

Created → Initialized → Running → Stopped
Disabled
  1. Created — Plugin instance is created
  2. Initializedinit() is called, loading configuration and injecting dependencies
  3. Runningstart() is called, the plugin begins serving
  4. Stoppedstop() is called, graceful shutdown
  5. Disabledenable: false in configuration, startup is skipped

The engine manages the initialization order, dependency injection, and graceful shutdown of all plugins through the PluginManager.

If you need to find HTTP APIs by component, use these entry pages: