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.