mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-12-24 13:48:04 +08:00
190 lines
6.8 KiB
Markdown
190 lines
6.8 KiB
Markdown
# Monibuca v5
|
||
|
||
<a id="readme-top"></a>
|
||
|
||
[![Contributors][contributors-shield]][contributors-url]
|
||
[![Forks][forks-shield]][forks-url]
|
||
[![Stargazers][stars-shield]][stars-url]
|
||
[![Issues][issues-shield]][issues-url]
|
||
[![AGPL License][license-shield]][license-url]
|
||
[](https://pkg.go.dev/m7s.live/v5)
|
||
<a href="https://hellogithub.com/repository/6d7916d851c2481f87568ffd9f1c21d9" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=6d7916d851c2481f87568ffd9f1c21d9&claim_uid=riBYPOGenUf7kbc&theme=small" alt="Featured|HelloGitHub" /></a>
|
||
<br />
|
||
<div align="center">
|
||
<a href="https://monibuca.com">
|
||
<img src="https://monibuca.com/logo+.svg" alt="Logo" width="200">
|
||
</a>
|
||
|
||
<h1 align="center">Monibuca v5</h1>
|
||
<p align="center">
|
||
强大的纯 Go 开发的流媒体服务器开发框架
|
||
<br />
|
||
<a href="https://monibuca.com"><strong>官方网站 »</strong></a>
|
||
<br />
|
||
<br />
|
||
<a href="https://github.com/langhuihui/monibuca/issues">报告问题</a>
|
||
·
|
||
<a href="https://github.com/langhuihui/monibuca/issues">功能建议</a>
|
||
</p>
|
||
</div>
|
||
|
||
<!-- 目录 -->
|
||
<details>
|
||
<summary>目录</summary>
|
||
<ol>
|
||
<li><a href="#项目介绍">项目介绍</a></li>
|
||
<li><a href="#快速开始">快速开始</a></li>
|
||
<li><a href="#使用示例">使用示例</a></li>
|
||
<li><a href="#构建选项">构建选项</a></li>
|
||
<li><a href="#监控系统">监控系统</a></li>
|
||
<li><a href="#插件开发">插件开发</a></li>
|
||
<li><a href="#架构文档">架构文档</a></li>
|
||
<li><a href="#贡献指南">贡献指南</a></li>
|
||
<li><a href="#许可证">许可证</a></li>
|
||
<li><a href="#联系方式">联系方式</a></li>
|
||
</ol>
|
||
</details>
|
||
|
||
## 项目介绍
|
||
|
||
Monibuca(简称 m7s)是一款纯 Go 开发的开源流媒体服务器开发框架。它具有以下特点:
|
||
|
||
- 🚀 **高性能** - 无锁设计、部分手动管理内存、多核计算
|
||
- ⚡ **低延迟** - 0 等待转发、全链路亚秒级延迟
|
||
- 📦 **插件化** - 按需加载,无限扩展能力
|
||
- 🔧 **灵活性** - 高度可配置,满足各种流媒体场景需求
|
||
- 💪 **可扩展** - 支持分布式部署,轻松应对大规模场景
|
||
- 🔍 **调试友好** - 内置调试插件,支持实时性能监控和分析
|
||
- 🎥 **媒体处理** - 支持截图、转码、SEI 数据处理
|
||
- 🔄 **集群能力** - 内置级联和房间管理功能
|
||
- 🎮 **预览功能** - 支持视频预览、分屏预览、自定义分屏
|
||
- 🔐 **安全加密** - 提供加密传输和流鉴权能力
|
||
- 📊 **性能监控** - 支持压力测试和性能指标采集
|
||
- 📝 **日志管理** - 日志轮转、自动清理、自定义扩展
|
||
- 🎬 **录制回放** - 支持 MP4、HLS、FLV 格式录制、倍速播放、拖拽快进、暂停能力
|
||
- ⏱️ **动态时移** - 动态缓存设计,支持直播时移回看
|
||
- 🌐 **远程调用** - 支持 gRPC 接口,方便跨语言集成
|
||
- 🏷️ **流别名** - 支持动态设置流别名,灵活管理多路流,实现导播功能
|
||
- 🤖 **AI 能力** - 集成推理引擎,支持 ONNX 模型,支持自定义的前置处理,后置处理,以及画框
|
||
- 🪝 **WebHook** - 支持订阅流的生命周期事件,实现业务系统联动
|
||
- 🔒 **私有协议** - 支持自定义私有协议,满足特殊业务需求
|
||
|
||
- 🔄 **多协议支持**:RTMP、RTSP、HTTP-FLV、WS-FLV、HLS、WebRTC、GB28181、ONVIF、SRT
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- Go 1.23 或更高版本
|
||
- 了解基本的流媒体协议
|
||
|
||
### 运行默认配置
|
||
|
||
```bash
|
||
cd example/default
|
||
go run -tags sqlite main.go
|
||
```
|
||
### UI 界面
|
||
|
||
将 admin.zip (不要解压)放在和配置文件相同目录下。
|
||
|
||
然后访问 http://localhost:8080 即可。
|
||
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
## 使用示例
|
||
|
||
更多示例请查看 [example](./example/READEME_CN.md) 文档。
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
## 构建选项
|
||
|
||
可以使用以下构建标签来自定义构建:
|
||
|
||
| 构建标签 | 描述 |
|
||
|----------|------|
|
||
| disable_rm | 禁用内存池 |
|
||
| sqlite | 启用 SQLite 存储 |
|
||
| sqliteCGO | 启用 SQLite CGO 版本 |
|
||
| mysql | 启用 MySQL 存储 |
|
||
| postgres | 启用 PostgreSQL 存储 |
|
||
| duckdb | 启用 DuckDB 存储 |
|
||
| taskpanic | 抛出 panic(用于测试) |
|
||
| fasthttp | 使用 fasthttp 服务器代替标准库 |
|
||
| enable_buddy | 开启 buddy 内存预申请|
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
## 监控系统
|
||
|
||
Monibuca 内置支持 Prometheus 监控。在 Prometheus 配置中添加:
|
||
|
||
```yaml
|
||
scrape_configs:
|
||
- job_name: "monibuca"
|
||
metrics_path: "/api/metrics"
|
||
static_configs:
|
||
- targets: ["localhost:8080"]
|
||
```
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
## 插件开发
|
||
|
||
Monibuca 支持通过插件扩展功能。查看[插件开发指南](./plugin/README_CN.md)了解详情。
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
## 架构文档
|
||
|
||
详细的架构设计文档请查看 [架构文档](./doc_CN/arch/index.md)。
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
## 第三方插件
|
||
|
||
- - https://github.com/cuteLittleDevil/m7s-jt1078
|
||
|
||
## 贡献指南
|
||
|
||
我们非常欢迎社区贡献,您的参与将使开源社区变得更加精彩!
|
||
|
||
1. Fork 本项目
|
||
2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`)
|
||
3. 提交您的修改 (`git commit -m '添加一些特性'`)
|
||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||
5. 发起 Pull Request
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
## 许可证
|
||
|
||
本项目采用 AGPL 许可证,详见 [LICENSE](./LICENSE) 文件。
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
## 联系方式
|
||
|
||
- 微信公众号:不卡科技
|
||
- QQ群:751639168
|
||
- QQ频道:p0qq0crz08
|
||
|
||
<p align="right">(<a href="#readme-top">返回顶部</a>)</p>
|
||
|
||
<!-- MARKDOWN LINKS & IMAGES -->
|
||
[contributors-shield]: https://img.shields.io/github/contributors/langhuihui/monibuca.svg?style=for-the-badge
|
||
[contributors-url]: https://github.com/langhuihui/monibuca/graphs/contributors
|
||
[forks-shield]: https://img.shields.io/github/forks/langhuihui/monibuca.svg?style=for-the-badge
|
||
[forks-url]: https://github.com/langhuihui/monibuca/network/members
|
||
[stars-shield]: https://img.shields.io/github/stars/langhuihui/monibuca.svg?style=for-the-badge
|
||
[stars-url]: https://github.com/langhuihui/monibuca/stargazers
|
||
[issues-shield]: https://img.shields.io/github/issues/langhuihui/monibuca.svg?style=for-the-badge
|
||
[issues-url]: https://github.com/langhuihui/monibuca/issues
|
||
[license-shield]: https://img.shields.io/github/license/langhuihui/monibuca.svg?style=for-the-badge
|
||
[license-url]: https://github.com/langhuihui/monibuca/blob/v5/LICENSE
|