Skip to content
On this page

介绍

您正在阅读的是m7s v4的文档

什么是Monibuca(m7s)?

Monibuca(发音:模拟不卡,m7s是其缩写,类似k8s) 是一个开源的Go语言开发的流媒体服务器开发框架。 它基于go1.18+,此外并无任何其他依赖构建,并提供了一套插件式的二次开发模型,帮助你高效地开发流媒体服务器,你既可以直接使用官方提供的插件,也可以自己开发插件扩展任意的功能,所以Monibuca是可以支持任意流媒体协议的框架!

流媒体服务器是一种用于分发流媒体的服务器端软件,可用于直播、监控、会议等需要实时观看音视频的场景。流媒体服务器区别于传统Web服务器对于实时性要求极高,需要使用各种传输协议,而Web服务器则主要以http/https协议为主。

Monibuca由三部分组成:引擎、插件、实例工程。

  • 引擎提供一套通用的流媒体数据缓存以及转发的机制,本身不关心协议如何实现
  • 插件提供其他所有的功能,并可以无限扩展
  • 实例工程是引入引擎和插件并启动引擎的项目工程,可以完全自己编写

插件式框架

Monibuca旨在构建一个通用的流媒体开发生态,所以从v1版本开始就考虑到业务和流转发的解耦,从而设计了一套可供任意扩展的插件机制。根据你的需求场景,可以灵活引入不同类型的插件:

  • 提供流媒体协议打包/解包,例如rtmp插件、rtsp插件等
  • 提供日志持久化的处理——logrotate插件
  • 提供录像功能——record插件
  • 提供丰富的调试功能——debug插件
  • 提供http回调能力——http插件

如果你是有经验的开发者,那么最佳的方式是在现有的插件基础上进行二次开发,并可向更多的人提供可重用的插件丰富生态。 如果你是流媒体的初学者,那么最佳的方式是利用现有的插件拼凑出你需要的功能,并向有经验的开发者寻求帮助。

名称的由来

Monibuca这个单词来源于 Monica (莫妮卡),为了解决起名的难题,使用了三个名称分别是 MonicaJessicaRebecca 用来代表服务器、播放器、推流器。由于莫妮卡、杰西卡、瑞贝卡,都带卡字,对直播来说寓意不好,所以改为莫妮不卡(Monibuca)、杰西不卡Jessibuca、瑞贝不卡Rebebuca

介绍 has loaded