langhuihui / monibuca

🧩 Monibuca is a Modularized, Extensible framework for building Streaming Server
https://monibuca.com
MIT License
1.45k stars 239 forks source link
flv hdl hls livestream mediaserver rtmp rtp rtsp ts webrtc websocket

中文文档

Core code base and plug-in code base

https://github.com/Monibuca

Introduction

What is Monibuca (m7s)?

Monibuca (pronounced: analog not card, m7s is its abbreviation, similar to k8s) is an open source streaming server development framework developed in Go. It is based on go1.19+, in addition to no other dependencies built, and provides a set of plug-in secondary development model to help you efficiently develop streaming media servers, you can directly use the official plug-in, or develop your own plug-in to extend any function, so Monibuca is a framework that can support any streaming protocol!

Monibuca consists of three parts: engine, plugins, and instance project.

The engine provides a common streaming data cache and forwarding mechanism, and does not care how the protocol is implemented The plugins offer all the other features and can be extended indefinitely An instance project is a project project that introduces the engine and plugins and starts the engine, and can be written entirely by yourself

Plug-in framework

Monibuca aims to build a general streaming media development ecosystem, so since the v1 version, it has considered the decoupling of services and stream forwarding, so as to design a set of plug-in mechanisms that can be arbitrarily extended. Depending on your needs, you can flexibly introduce different types of plugins:

Key features

Engine aspect

Plug-in aspect

Third-party plugins and paid plugins provide additional functionality and are not listed here.

Inspired by:

Remote console

Origin of the name

The word Monibuca is derived from (Monica), and in order to solve the naming problem, three names are used to represent server, player, and streamer. Since Monica, Jessica, and Rebecca all have words, which is not good for the live broadcast (ca - means block in Chinese), it was changed to Monibuca, Jessibuca(https://jessibuca.com), and Rebebuca(https://rebebuca.com). (bu- means not)

Install

The official download link of the latest version is provided:

Don't forget to fix the rights chmod +x m7s_xxx_xxx on Linux and Mac.

Run

Executable files run directly

Docker

docker run -id -p 1935:1935 -p 8080:8080 -p 8443:8443 -p 554:554 -p 58200:58200 -p 5060:5060/udp -p 8000:8000/udp -p 9000:9000 langhuihui/monibuca:latest

Self-compiled startup project

  1. git clone https://github.com/langhuihui/monibuca
  2. cd monibuca
  3. go run .

Self-created startup project

You can watch the video tutorial:

公众号