Back to rankings

langhuihui/monibuca

Gomonibuca.com

🧩 Monibuca is a Modularized, Extensible framework for building Streaming Server

livestreammediaserverhlswebrtcrtmprtsphdlwebsocketflvrtptsmp4
Star Growth
Stars
2.4k
Forks
347
Weekly Growth
Issues
16
1k2k
Feb 2020Mar 2022May 2024Jul 2026
ArtifactsGo Modulesgo get github.com/langhuihui/monibuca
README

Contributors Forks Stargazers Issues MIT License


Logo

Monibuca v5

A highly scalable high-performance streaming server development framework developed purely in Go
中文文档 · Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About
  2. Getting Started
  3. Usage
  4. Build Tags
  5. Monitoring
  6. Plugin Development
  7. Architecture
  8. Third-party Plugins
  9. Contributing
  10. License
  11. Contact

About

Monibuca is a powerful streaming server framework written entirely in Go. It's designed to be:

  • 🚀 High Performance - Lock-free design, partial manual memory management, multi-core computing

  • Low Latency - Zero-wait forwarding, sub-second latency across the entire chain

  • 📦 Modular - Load on demand, unlimited extensibility

  • 🔧 Flexible - Highly configurable to meet various streaming scenarios

  • 💪 Scalable - Supports distributed deployment, easily handles large-scale scenarios

  • 🔍 Debug Friendly - Built-in debug plugin, real-time performance monitoring and analysis

  • 🎥 Media Processing - Supports screenshot, transcoding, SEI data processing

  • 🔄 Cluster Capability - Built-in cascade and room management

  • 🎮 Preview Features - Supports video preview, multi-screen preview, custom screen layouts

  • 🔐 Security - Provides encrypted transmission and stream authentication

  • 📊 Performance Monitoring - Supports stress testing and performance metrics collection (integrated in test plugin)

  • 📝 Log Management - Log rotation, auto cleanup, custom extensions

  • 🎬 Recording & Playback - Supports MP4, HLS, FLV formats, speed control, seeking, pause

  • ⏱️ Dynamic Time-Shift - Dynamic cache design, supports live time-shift playback

  • 🌐 Remote Call - Supports gRPC interface for cross-language integration

  • 🏷️ Stream Alias - Supports dynamic stream alias, flexible multi-stream management

  • 🤖 AI Capabilities - Integrated inference engine, ONNX model support, custom pre/post processing

  • 🪝 WebHook - Subscribe to stream lifecycle events for business system integration

  • 🔒 Private Protocol - Supports custom private protocols for special business needs

  • 🔄 Supported Protocols: RTMP, RTSP, HTTP-FLV, WS-FLV, HLS, WebRTC, GB28181, ONVIF, SRT

(back to top)

Getting Started

Prerequisites

  • Go 1.23 or higher
  • Basic understanding of streaming protocols

Run with Default Configuration

cd example/default
go run -tags sqlite main.go

Web UI

Place the admin.zip file (do not unzip) in the same directory as your configuration file.

Then visit http://localhost:8080 to access the UI.

(back to top)

Examples

For more examples, please check out the example documentation.

(back to top)

Build Tags

The following build tags can be used to customize your build:

Build Tag Description
disable_rm Disables the memory pool
sqlite Enables the sqlite DB
sqliteCGO Enables the sqlite cgo version DB
mysql Enables the mysql DB
postgres Enables the postgres DB
duckdb Enables the duckdb DB
taskpanic Throws panic, for testing
fasthttp Enables the fasthttp server instead of net/http
enable_buddy Enables the buddy memory pre-allocation

(back to top)

Monitoring

Monibuca supports Prometheus monitoring out of the box. Add the following to your Prometheus configuration:

scrape_configs:
  - job_name: "monibuca"
    metrics_path: "/api/metrics"
    static_configs:
      - targets: ["localhost:8080"]

(back to top)

Plugin Development

Monibuca's functionality can be extended through plugins. For information on creating plugins, see the plugin guide.

(back to top)

Architecture

For detailed architecture design documentation, please refer to the Architecture Documentation.

(back to top)

Third-party Plugins

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the AGPL License. See LICENSE for more information.

(back to top)

Contact

monibuca - @m7server - service@monibuca.com

Project Link: https://github.com/langhuihui/monibuca

(back to top)

Related repositories
streamlink/streamlink

Streamlink is a CLI utility which pipes video streams from various services into a video player

PythonPyPIBSD 2-Clause "Simplified" Licensestreamlinkpython
streamlink.github.io
11.6k1.2k
owncast/owncast

Take control over your live stream video by running it yourself. Streaming + chat out of the box.

GoGo ModulesMIT Licensevideostreaming-video
owncast.online
11.4k1.2k
gwuhaolin/livego

live video streaming server in golang

GoGo ModulesMIT Licenselivestreamgolang
10.2k2k
illuspas/Node-Media-Server

A Node.js implementation of RTMP/HTTP-FLV Media Server

JavaScriptnpmApache License 2.0nodejsflv
npmjs.com/package/node-media-server
6.2k1.5k
PanosK92/SpartanEngine

A game engine with a fully bindless, GPU-driven renderer featuring real-time path-traced global illumination, hardware ray tracing, and a physics simulation running at 200Hz, built over 10+ years of R&D

C++MIT Licensegame-engineimgui
panoskarabelas.com
3.1k269
q191201771/lal

🔥 Golang audio/video live streaming lib/client/server. support RTMP, RTSP(RTP/RTCP), HLS, HTTP[S]/WebSocket-FLV/TS, GB28181, H264/H265/AAC/G711/OPUS, relay, cluster, record, HTTP Notify/API/UI. 直播

GoGo ModulesMIT Licensertmpaac
pengrl.com/lal
3k495
heshengtao/super-agent-party

⭐ All-in-one AI companion! Super Agent Party = Self hosted neuro sama + openclaw! ⭐ 全能AI伴侣!超级智能体派对 = 自托管neuro sama + openclaw!

JavaScriptnpmGNU Affero General Public License v3.0mcpcomfyui
agentparty.top
2.5k261
xqq/mpegts.js

HTML5 MPEG2-TS / FLV Stream Player

JavaScriptnpmApache License 2.0html5player
2.3k292
kaltura/nginx-vod-module

NGINX-based MP4 Repackager

CGNU Affero General Public License v3.0nginxvod
2.1k473
zerodytrash/TikTok-Live-Connector

Node.js library to receive live stream events (comments, gifts, etc.) in realtime from TikTok LIVE.

TypeScriptnpmGNU Affero General Public License v3.0tiktoktiktok-api
discord.gg/2c6kX6g3Pa
2.1k451
vzhd1701/gridplayer

Play videos side-by-side

PythonPyPIGNU General Public License v3.0video-playervlc
2k178
chen-zeong/DTV

抖音、b站、斗鱼、虎牙跨平台轻量化桌面客户端

TypeScriptnpmMIT Licensedouyindouyu
1.9k71