mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-12-24 13:48:04 +08:00
eddbb35136735e57e82aa1292e3d136f4acaa7e6
Introduction
🧩 Monibuca is a Modularized, Extensible framework for building Streaming Server.
- Customize the server by combining function plug-ins.
- It's easy to develop plug-ins to implement business logic.
- Reduce enterprise development cost and improve development efficiency
Quick start
Go has not been installed
bash <(curl -s -S -L https://monibuca.com/go.sh)
Go is already installed
- git clone https://github.com/langhuihui/monibuca
- go build && ./monibuca
- open your browser http://localhost:8080
- use ffmpeg or OBS to push video streaming to rtmp://localhost/live/user1
Ecosystem
go to https://plugins.monibuca.com. to submit your own plugin
| Project | Description |
|---|---|
| plugin-rtmp | rtmp protocol support.push rtmp stream to monibuca.play stream from monibuca. |
| plugin-rtsp | rtsp protocol support.pull/push rtsp stream to monibuca |
| plugin-hls | pull hls stream to monibuca |
| plugin-ts | used by plugin-hls. read ts file to publish |
| plugin-hdl | http-flv protocol support. pull http-flv stream from monibuca |
| plugin-gateway | a console and dashboard to display information and status of monibuca ,also can display UI of other plugins |
| plugin-record | record multimedia stream to flv files |
| plugin-cluster | cascade transmission of multimedia by cluster network |
| plugin-jesscia | play multimedia stream through websocket protocol |
| plugin-logrotate | split log files by date or size |
| plugin-rtp | used by plugin-webrtc and plugin-rtsp |
| plugin-webrtc | webrtc protocol support. push webrtc stream to monibuca or pull webrtc stream from monibuca |
| plugin-gb28181 | gb28181 protocol support. |
Protocol Functions
| Protocol | Pusher(push)-->Monibuca | Source-->Monibuca(pull) | Monibuca-->Player(pull) | Monibuca(push)-->Other Server |
|---|---|---|---|---|
| rtmp | ✔ | ✔ | ||
| rtsp | ✔ | ✔ | ✔ | |
| http-flv | ✔ | |||
| hls | ✔ | ✔ | ||
| ws-flv | ✔ | |||
| webrtc | ✔ | ✔ |
Documentation
中文文档: http://docs.monibuca.com.
Q&A
Q: There are so many streaming server projects in the world,why need to create Monibuca?
A: Monibuca is different from other streaming servers,that it was created for facilitate secondary development.
Q: Why use golang?
A: Golang is a greate programming language. It is very suited to build streaming server since streaming server is a kind of IO intensive system. Goroutine is good at doing these jobs. Another important reason of using Golang is that people read the source code or doing secondary development easier.
Q: What does "Monibuca" mean?
A: No special meaning. Just from monica —— a girl name.
Languages
Go
52.3%
JavaScript
27.3%
C++
15.6%
C
1.5%
HTML
1.3%
Other
1.9%
