diff --git a/README.md b/README.md index 14c44a2..d2ebbcf 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@
A highly scalable high-performance streaming server development framework developed purely in Go
+ 中文文档
+ ·
Explore the docs »
@@ -43,10 +45,27 @@
Monibuca is a powerful streaming server framework written entirely in Go. It's designed to be:
-- 🚀 **High Performance** - Built for maximum efficiency and speed
-- 📦 **Modular** - Plugin-based architecture for easy extensibility
-- 🔧 **Flexible** - Highly configurable to meet various streaming needs
-- 💪 **Scalable** - Designed to handle large-scale deployments
+- 🚀 **High Performance** - Lock-free design, partial manual memory management, multi-core computing
+- ⚡ **Low Latency** - Zero-wait forwarding, sub-second latency across the entire chain
+- 📦 **Modular** - Load on demand, unlimited extensibility
+- 🔧 **Flexible** - Highly configurable to meet various streaming scenarios
+- 💪 **Scalable** - Supports distributed deployment, easily handles large-scale scenarios
+- 🔍 **Debug Friendly** - Built-in debug plugin, real-time performance monitoring and analysis
+- 🎥 **Media Processing** - Supports screenshot, transcoding, SEI data processing
+- 🔄 **Cluster Capability** - Built-in cascade and room management
+- 🎮 **Preview Features** - Supports video preview, multi-screen preview, custom screen layouts
+- 🔐 **Security** - Provides encrypted transmission and stream authentication
+- 📊 **Performance Monitoring** - Supports stress testing and performance metrics collection
+- 📝 **Log Management** - Log rotation, auto cleanup, custom extensions
+- 🎬 **Recording & Playback** - Supports MP4, HLS, FLV formats, speed control, seeking, pause
+- ⏱️ **Dynamic Time-Shift** - Dynamic cache design, supports live time-shift playback
+- 🌐 **Remote Call** - Supports gRPC interface for cross-language integration
+- 🏷️ **Stream Alias** - Supports dynamic stream alias, flexible multi-stream management
+- 🤖 **AI Capabilities** - Integrated inference engine, ONNX model support, custom pre/post processing
+- 🪝 **WebHook** - Subscribe to stream lifecycle events for business system integration
+- 🔒 **Private Protocol** - Supports custom private protocols for special business needs
+
+- 🔄 **Supported Protocols**: RTMP, RTSP, HTTP-FLV, WS-FLV, HLS, WebRTC, GB28181, ONVIF, SRT
(返回顶部)
## 快速开始 -### 安装 +### 环境要求 -1. 确保已安装 Go 1.23 或更高版本 -2. 创建新项目并初始化: +- Go 1.23 或更高版本 +- 了解基本的流媒体协议 + +### 运行默认配置 ```bash -mkdir my-m7s-server && cd my-m7s-server -go mod init my-m7s-server +cd example/default +go run -tags sqlite main.go ``` +### UI 界面 -3. 创建主程序: +将 admin.zip (不要解压)放在和配置文件相同目录下。 -```go -package main +然后访问 http://localhost:8080 即可。 -import ( - "context" - "m7s.live/v5" - _ "m7s.live/v5/plugin/cascade" - _ "m7s.live/v5/plugin/debug" - _ "m7s.live/v5/plugin/flv" - _ "m7s.live/v5/plugin/gb28181" - _ "m7s.live/v5/plugin/hls" - _ "m7s.live/v5/plugin/logrotate" - _ "m7s.live/v5/plugin/monitor" - _ "m7s.live/v5/plugin/mp4" - _ "m7s.live/v5/plugin/preview" - _ "m7s.live/v5/plugin/rtmp" - _ "m7s.live/v5/plugin/rtsp" - _ "m7s.live/v5/plugin/sei" - _ "m7s.live/v5/plugin/snap" - _ "m7s.live/v5/plugin/srt" - _ "m7s.live/v5/plugin/stress" - _ "m7s.live/v5/plugin/transcode" - _ "m7s.live/v5/plugin/webrtc" -) +(返回顶部)
-func main() { - m7s.Run(context.Background(), "config.yaml") -} -``` +## 使用示例 -### 配置说明 +更多示例请查看 [example](./example/READEME_CN.md) 文档。 -创建 `config.yaml` 配置文件: - -```yaml -# 全局配置 -global: - http: :8080 - -# 插件配置 -rtmp: - tcp: :1935 -``` +(返回顶部)
## 构建选项 -| 构建标签 | 描述 | -| ---------- | ---------------------- | -| disable_rm | 禁用内存池 | -| sqlite | 启用 SQLite 存储 | -| sqliteCGO | 启用 SQLite CGO 版本 | -| mysql | 启用 MySQL 存储 | -| postgres | 启用 PostgreSQL 存储 | -| duckdb | 启用 DuckDB 存储 | -| taskpanic | 抛出 panic(用于测试) | +可以使用以下构建标签来自定义构建: -## 项目结构 +| 构建标签 | 描述 | +|----------|------| +| disable_rm | 禁用内存池 | +| sqlite | 启用 SQLite 存储 | +| sqliteCGO | 启用 SQLite CGO 版本 | +| mysql | 启用 MySQL 存储 | +| postgres | 启用 PostgreSQL 存储 | +| duckdb | 启用 DuckDB 存储 | +| taskpanic | 抛出 panic(用于测试) | -``` -monibuca/ -├── plugin/ # 官方插件目录 -├── pkg/ # 核心包 -├── example/ # 示例代码 -├── doc/ # 文档 -└── scripts/ # 实用脚本 -``` +(返回顶部)
-## 插件开发 +## 监控系统 -查看 [plugin/README_CN.md](./plugin/README_CN.md) 了解如何开发自定义插件。 - -## Prometheus 监控 - -配置 Prometheus: +Monibuca 内置支持 Prometheus 监控。在 Prometheus 配置中添加: ```yaml scrape_configs: @@ -118,20 +127,48 @@ scrape_configs: - targets: ["localhost:8080"] ``` -## 示例 +(返回顶部)
-更多使用示例请查看 [example](./example) 目录。 +## 插件开发 + +Monibuca 支持通过插件扩展功能。查看[插件开发指南](./plugin/README_CN.md)了解详情。 + +(返回顶部)
## 贡献指南 -欢迎提交 Pull Request 或 Issue。 +我们非常欢迎社区贡献,您的参与将使开源社区变得更加精彩! + +1. Fork 本项目 +2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`) +3. 提交您的修改 (`git commit -m '添加一些特性'`) +4. 推送到分支 (`git push origin feature/AmazingFeature`) +5. 发起 Pull Request + +(返回顶部)
## 许可证 本项目采用 AGPL 许可证,详见 [LICENSE](./LICENSE) 文件。 -## 相关资源 +(返回顶部)
-- [官方文档](https://docs.m7s.live/) -- [API 参考](https://pkg.go.dev/m7s.live/v5) -- [示例代码](./example) +## 联系方式 + +- 微信公众号:不卡科技 +- QQ群:751639168 +- QQ频道:p0qq0crz08 + +(返回顶部)
+ + +[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