跳转到内容

快速上手

Terminal window
# 下载并运行预编译二进制(amd64 示例)
wget https://download.m7s.live/bin/monibuca_v6_linux_amd64.tar.gz
tar -xzf monibuca_v6_linux_amd64.tar.gz
chmod +x monibuca_linux_amd64
./monibuca_linux_amd64
Terminal window
# 使用自定义配置文件
./monibuca -c config.yaml
Terminal window
docker run -d \
--name monibuca \
-p 8180:8180 \
-p 8443:8443 \
-p 1935:1935 \
-p 8554:8554 \
-p 50051:50051 \
-p 6000:6000/udp \
-p 9000-9100:9000-9100/udp \
langhuihui/monibuca:v6

创建 config.yaml 文件:

global:
loglevel: info
http:
listenaddr: ":8180"
cors: true
tcp:
listenaddr: ":50051"
publish:
ringsize: 256
subscribe:
subtimeout: 10
waittimeout: 10
db:
dsn: "sqlite:m7s.db?mode=rwc"
admin:
enablelogin: false
# RTMP - 推拉流
rtmp:
enable: true
tcp:
listenaddr: ":1935"
# RTSP - 监控设备接入
rtsp:
enable: true
tcp:
listenaddr: ":8554"
# HLS - 广泛兼容的播放方式
hls:
enable: true
segmentduration: 6
maxsegments: 5
# WebRTC - 超低延迟
webrtc:
enable: true
portrange: "udp:9000-9100"
# SRT - 安全可靠传输
srt:
enable: true
listenaddr: ":6000"

使用 FFmpeg 将视频文件推送到 Monibuca:

Terminal window
# 推流到 live/test 路径
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://localhost/live/test
# 推送摄像头(macOS)
ffmpeg -f avfoundation -i "0" -c:v libx264 -f flv rtmp://localhost/live/camera
# 推送桌面(Linux)
ffmpeg -f x11grab -i :0.0 -c:v libx264 -f flv rtmp://localhost/live/screen

使用 OBS 推流:

  1. 打开 OBS → 设置 → 推流
  2. 服务:自定义
  3. 服务器:rtmp://localhost
  4. 推流密钥:live/test
Terminal window
ffmpeg -re -i input.mp4 -c copy -f mpegts \
"srt://localhost:6000?streamid=publish:/live/test"
Terminal window
# 使用 WHIP 协议推流
# POST http://localhost:8180/webrtc/whip?app=live&stream=test
# Body: SDP Offer (application/sdp)

推流成功后,可以通过多种协议播放同一路流:

Terminal window
# 浏览器或播放器打开
http://localhost:8180/flv/live/test.flv
# 使用 ffplay 播放
ffplay http://localhost:8180/flv/live/test.flv
Terminal window
# 浏览器或播放器打开
http://localhost:8180/hls/live/test/index.m3u8
# 使用 ffplay 播放
ffplay http://localhost:8180/hls/live/test/index.m3u8
Terminal window
# 使用 WHEP 协议拉流
# POST http://localhost:8180/webrtc/whep?app=live&stream=test
# Body: SDP Offer (application/sdp)
Terminal window
ffplay "srt://localhost:6000?streamid=subscribe:/live/test"
Terminal window
ffplay rtsp://localhost:8554/live/test

Monibuca 内置了 Web 管理面板,提供流管理、系统监控等功能。

http://localhost:8180/admin
http://localhost:8180/demo/live-room
http://localhost:8180/demo/meeting-room
http://localhost:8180/demo/customer-service
  • 流列表:查看当前所有活跃的流,包括发布者和订阅者信息
  • 系统信息:CPU、内存、网络等系统资源监控
  • 插件状态:查看已加载的插件及其配置
  • 配置管理:在线修改配置(通过 API)

默认情况下管理面板无需登录。如需启用认证:

global:
admin:
enablelogin: true
username: admin
password: your_secure_password

Monibuca 支持通过环境变量覆盖配置文件中的值,格式为:

M7S_{PLUGIN}_{FIELD}

所有字母大写,嵌套字段用下划线分隔。

Terminal window
# 修改 RTMP 监听端口
export M7S_RTMP_TCP_LISTENADDR=":1936"
# 修改全局日志级别
export M7S_GLOBAL_LOGLEVEL="debug"
# 修改发布超时
export M7S_GLOBAL_PUBLISH_PUBTIMEOUT="30"
# 修改 WebRTC ICE 服务器
export M7S_WEBRTC_ICESERVERS="stun:stun.l.google.com:19302"
Terminal window
docker run -d \
--name monibuca \
-e M7S_GLOBAL_LOGLEVEL=info \
-e M7S_RTMP_TCP_LISTENADDR=":1935" \
-e M7S_GLOBAL_HTTP_LISTENADDR=":8180" \
-p 8180:8180 \
-p 1935:1935 \
langhuihui/monibuca:v6

启动后可以通过 HTTP API 查询服务状态:

Terminal window
# 获取系统摘要
curl http://localhost:8180/api/summary
# 获取流列表
curl http://localhost:8180/api/stream/list
# 获取插件列表
curl http://localhost:8180/api/plugins

联系我们

微信公众号:不卡科技 微信公众号二维码
腾讯频道:流媒体技术 腾讯频道二维码
QQ 频道:p0qq0crz08 QQ 频道二维码
QQ 群:751639168 QQ 群二维码