## Stargazers over time
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 |
✔ |
|
✔ |
|
Build & Test with docker
development and testing only: IP and udp ports need to be exposed carefully in production.
docker build . -f dockerfile -t m7s:3.0
docker run --name m7s -p 1935:1935 -p 8081:8081 -p 8082:8082 -p 554:554 m7s:3.0
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.