初见 Monibuca

Monibuca 是一个由国人主导开发的高性能、模块化、插件化的音视频服务器框架 ,使用 Go 语言编写,广泛用于流媒体直播、录播、转码、HLS/FLV 推流分发、WebRTC 网关等应用场景。


🧭 一、前因:为什么要做 Monibuca?

背景:

传统的流媒体服务器(如 SRS、nginx-rtmp、Wowza)存在一些问题:

问题 描述
📦 固定功能 要支持新的协议或处理逻辑很难改动
🧩 插件扩展性差 不支持按需加载模块,定制开发复杂
🐢 性能瓶颈 多数用 C/C++ 写,编译难调,性能未必优
🌐 云原生不友好 不适配容器化和微服务部署场景

动机:

作者 langhuihui(浪辉辉)从早期使用 SRS、nginx-rtmp、自己写过 RTMP server 等经验中意识到:

需要一个 以插件为核心架构的流媒体内核,支持热插拔、热配置、高并发,并为未来云原生环境打好基础。

于是:Monibuca 出生了。


🏗 二、项目核心理念

✨ 核心特性

特性 描述
📦 插件架构 所有功能都通过插件注册,比如 HLS、RTMP、录制、WebRTC
🧩 动态加载 插件可按需启用,模块化清晰
🚀 高并发 基于 Go 高性能协程模型,事件驱动架构
🔁 支持协议多 支持 RTMP、HTTP-FLV、HLS、WebRTC、MP4、TS、SRT 等
🎞 录制回放 插件实现 MP4/HLS/FLV 录制、拖动回放、暂停、倍速
💻 控制台 UI 内置网页端面板,便于查看节点、流、连接状态
🌈 配置热更新 支持 JSON 配置 + REST 接口更新,方便动态控制
☁ 云原生友好 支持 Docker 部署、多节点集群转发

🧱 三、项目结构与插件生态

Monibuca 核心是一个 "引擎",插件通过注册方式加入系统:

复制代码
monibuca/
├── engine.go          ← 核心流程调度
├── config.json        ← 插件与路由配置
├── plugins/
│   ├── hls/
│   ├── rtmp/
│   ├── webrtc/
│   ├── recorder/
│   └── dashboard/

常用插件说明:

插件 作用
rtmp 接收 RTMP 推流
httpflv 分发 HTTP-FLV
hls 自动转切 HLS 并输出 .m3u8
recorder 支持录制成 MP4、FLV、TS,支持点播
webrtc WebRTC 推/拉流
dashboard 控制台 UI

📈 四、发展轨迹与现状

  • 2019年:开始初版架构设计
  • 2020年:完成基础插件系统,支持 RTMP/HLS
  • 2021年:新增 WebRTC、Dashboard、倍速播放、录制快进
  • 2022年+:加入云原生特性、REST 控制接口、商业方案落地
  • 2023年~2024年:成为不少中小企业、教育平台、监控平台的视频中台核心

GitHub 项目地址:

🔗 https://github.com/langhuihui/monibuca


💼 五、适用场景

场景 描述
🎥 视频直播平台 高并发直播/转发/分发
🎓 在线教育 教学直播 + 回放录制
🚗 安防监控 摄像头 RTSP 推流 + 录制回看
📹 转码中转站 RTMP/WebRTC 接入,输出 HLS
☁ 云原生部署 Docker/K8s 场景快速部署多个节点

🔧 六、和其他项目的对比

项目 语言 插件化 控制台 WebRTC 点播功能 云原生
Monibuca Go ✅ 强 ✅ 内置 ✅ 支持 ✅ 支持 ✅ 友好
SRS C++ ❌ 固定 ✅ 有 ✅ 支持 ❌ 限制 ⚠️ 编译复杂
Nginx-rtmp C ❌ 固定 ❌ 无 ❌ 不支持 ❌ 不支持 ⚠️ 传统

📚 七、学习建议

  1. 克隆项目:git clone https://github.com/langhuihui/monibuca
  2. 运行示例配置:查看 config.jsonplugins 目录
  3. 阅读插件源码:推荐从 plugins/hlsplugins/recorder 开始
  4. 实战练习:RTMP 推流 + HLS 播放 + 点播回放
  5. 改写或开发插件:你可以写一个 watermark 插件,实现在视频流中打水印
相关推荐
九流下半8 小时前
window wsl 环境下编译openharmony,HarmonyOS 三方库 FFmpeg
windows·ffmpeg·harmonyos·编译·openharmony·三方库
aqi0012 小时前
FFmpeg开发笔记(七十四)Windows给FFmpeg集成二维码图像的编解码器
ffmpeg·音视频·直播·流媒体
肥or胖13 小时前
Visual Studio 2022 上使用ffmpeg
ide·ffmpeg·visual studio
王者鳜錸1 天前
基于Selenium和FFmpeg的全平台短视频自动化发布系统
selenium·ffmpeg·音视频
aqi001 天前
FFmpeg开发笔记(七十三)Windows给FFmpeg集成MPEG-5视频编解码器
ffmpeg·音视频·直播·流媒体
DogDaoDao2 天前
HEVC/H.265 码流分析工具 HEVCESBrowser 使用教程
ffmpeg·音视频·h.265·hevc·码流分析工具·elecard·hevcsbrowser
hjjdebug4 天前
ffplay6 播放器关键技术点分析 1/2
c++·ffmpeg·音视频
泰勒朗斯4 天前
ffmpeg 中config 文件一些理解
windows·microsoft·ffmpeg
泰勒朗斯4 天前
ffmpeg下编译tsan
ffmpeg