一个开源的Go语言实现的流媒体服务器开发框架:Monibuca,帮你解决流媒体问题
介绍
Monibuca 是一个开源的Go语言实现的流媒体服务器开发框架。适用于快速定制化开发流媒体服务器,可以对接CDN厂商,作为回源服务器,也可以自己搭建集群部署环境。 丰富的内置插件提供了流媒体服务器的常见功能,例如rtmp server、http-flv、视频录制、QoS等。除此以外还内置了后台web界面,方便观察服务器运行的状态。 也可以自己开发后台管理界面,通过api方式获取服务器的运行信息。 Monibuca 提供了可供定制化开发的插件机制,可以任意扩展其功能。
Github
https:// github.com/Monibuca/doc s
功能特性
Monibuca 引擎 + 插件 = 定制化流媒体服务器
- 高性能 低功耗
针对流媒体服务器独特的性质进行的优化,充分利用Golang的goroutine的性质对大量的连接的读写进行合理的分配计算资源,以及尽可能的减少内存Copy操作。使用对象池减少Golang的GC时间。
- 模块化 可扩展
专为二次开发而设计,基于Golang语言,开发效率更高;独创的插件机制,可以方便用户定制个性化的功能组合,更高效率的利用服务器资源。
- 可视化 易管理
功能强大的仪表盘可以直观的看到服务器运行的状态、消耗的资源、以及其他统计信息。用户可以利用控制台对服务器进行配置和控制。点击右上角菜单栏里面的演示,可以看到演示控制台界面。
- 零依赖 易部署
纯Go编写,不依赖cgo,不依赖FFMpeg或者其他运行时,部署极其方便,对服务器的要求极为宽松。
插件市场
WebRTC提供WebRTC推送到Monibuca的功能
Cluster集群插件,可以用于级联扩展
RTSP提供RTSP协议拉流转发功能,也可接受RTSP推流,可通过编程或者界面操作方式。
Record实现了录制Flv文件的功能,并且支持再次使用录制好的Flv文件作为发布者进行发布。在Monibuca的web界面的控制台中提供了对房间进行录制的操作按钮,以及列出所有已经录制的文件的界面。
HLS拉取网络上的m3u8文件并解析后转换成其他协议,或写出HLS到磁盘
TS编程方式将TS数据作为媒体源或者读取服务器中的TS文件作为媒体源进行发布
HDLHTTP-FLV协议实现,可用于CDN回源的拉流协议
实例启动
一键安装Golang环境并启动Demo实例
用root身份运行,确保没有权限问题
bash <(curl -s -S -L https://monibuca.com/demo.sh)
如果Golang已经装好,确保go version >= 1.13
go get github.com/langhuihui/monibuca
$GOPATH/bin/monibuca
然后用浏览器访问 8081端口查看管理界面。
demo实例里面默认配置了一些插件,可供快速体验
如果需要自行选择插件以及二次开发请直接查看官方文档的详细介绍 http:// docs.monibuca.com/