Files
monibuca/README_CN.md
2024-12-06 14:27:39 +08:00

2.5 KiB
Raw Blame History

Monibuca v5

Go Reference

Monibuca简称 m7s是一款纯 Go 开发的开源流媒体服务器开发框架,支持多种流媒体协议。

特性

  • 🚀 高性能:采用纯 Go 开发,充分利用 Go 的并发特性
  • 🔌 插件化架构:核心功能都以插件形式提供,可按需加载
  • 🛠 可扩展性强:支持自定义插件开发
  • 📽 多协议支持:
    • RTMP
    • HTTP-FLV
    • HLS
    • WebRTC
    • GB28181
    • SRT
  • 🎯 低延迟:针对实时性场景优化
  • 📊 实时监控:支持 Prometheus 监控集成
  • 🔄 集群支持:支持分布式部署

快速开始

安装

  1. 确保已安装 Go 1.23 或更高版本
  2. 创建新项目并初始化:
mkdir my-m7s-server && cd my-m7s-server
go mod init my-m7s-server
  1. 创建主程序:
package main

import (
	"context"

	"m7s.live/v5"
	_ "m7s.live/v5/plugin/debug"  // 调试插件
	_ "m7s.live/v5/plugin/flv"    // FLV插件
	_ "m7s.live/v5/plugin/rtmp"   // RTMP插件
)

func main() {
	m7s.Run(context.Background(), "config.yaml")
}

配置说明

创建 config.yaml 配置文件:

# 全局配置
global:
  http: :8080

# 插件配置
rtmp:
  tcp: :1935

构建选项

构建标签 描述
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 了解如何开发自定义插件。

Prometheus 监控

配置 Prometheus

scrape_configs:
  - job_name: "monibuca"
    metrics_path: "/api/metrics"
    static_configs:
      - targets: ["localhost:8080"]

示例

更多使用示例请查看 example 目录。

贡献指南

欢迎提交 Pull Request 或 Issue。

许可证

本项目采用 AGPL 许可证,详见 LICENSE 文件。

相关资源