初见 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 插件,实现在视频流中打水印
相关推荐
骄傲的心别枯萎13 小时前
项目1:FFMPEG推流器讲解(二):FFMPEG输出模块初始化
linux·ffmpeg·音视频·视频编解码·rv1126
筏.k15 小时前
FFmpeg 核心 API 系列:av_read_frame / avcodec_send_packet / avcodec_receive_frame
ffmpeg
humors2212 天前
批量M3U8转MP4工具
ffmpeg·视频·mp4·多媒体·转换·m3u8
神洛华2 天前
FFmpeg 全面教程:从安装到高级应用
ffmpeg
筏.k2 天前
FFmpeg 核心 API 系列:avcodec_find_decoder / avcodec_alloc_context3 / avcodec_open2
ffmpeg
Everbrilliant892 天前
Xcode上编译调试ffmpeg
macos·ffmpeg·xcode·ffmpeg源码编译工具·xcode调试ffmpeg源码·ffmpeg工具环境变量配置
molihuan3 天前
开源 全平台 哔哩哔哩缓存视频合并 Github地址:https://github.com/molihuan/hlbmerge_flutter
android·flutter·缓存·ffmpeg·开源·github·音视频
爱吃牛肉的大老虎3 天前
FFmpeg和ZLMediaKit 实现本地视频推流
ffmpeg·音视频
liliangcsdn3 天前
基于ollama运行27b gemma3解决ffmpeg命令生成问题
人工智能·ffmpeg
Everbrilliant895 天前
音视频编解码全流程之用Extractor后Decodec
ffmpeg·视频编解码·mediacodec·音视频解码·ffmpeg编解码·decodec·ndkmediacodec