跳转到内容

RTMP 协议

RTMP(Real-Time Messaging Protocol)是最广泛使用的直播推流协议。Monibuca V6 提供完整的 RTMP 推流和拉流支持,兼容所有主流推流工具。

属性
默认端口1935
传输层TCP
推流✅ 支持
拉流✅ 支持
延迟1-3 秒
Feature Flagrtmp
Cargo.toml
[features]
rtmp = ["dep:plugin-rtmp"]
rtmp:
enable: true
tcp:
listen_addr: ":1935"
chunk_size: 4096
配置项类型默认值说明
enablebooltrue是否启用 RTMP 插件
tcp.listen_addrstring":1935"监听地址
chunk_sizeu324096RTMP Chunk 大小(1-65536)
Terminal window
# 推送本地文件
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://localhost:1935/live/test
# 推送摄像头画面
ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -f flv rtmp://localhost:1935/live/camera
# 指定编码参数推流
ffmpeg -re -i input.mp4 \
-c:v libx264 -preset veryfast -b:v 2000k \
-c:a aac -b:a 128k \
-f flv rtmp://localhost:1935/live/test
  1. 打开 OBS,进入 设置直播
  2. 服务选择 自定义
  3. 填写:
    • 服务器rtmp://your-server-ip:1935/live
    • 推流密钥test(即流名称)
  4. 点击 开始推流

RTMP URL 格式:rtmp://host:port/{app}/{stream}

  • app:应用名(如 live
  • stream:流名称(如 test
  • 完整流路径为:{app}/{stream},即 live/test
Terminal window
ffplay rtmp://localhost:1935/live/test
  1. 打开 VLC,选择 媒体打开网络串流
  2. 输入 URL:rtmp://localhost:1935/live/test
  3. 点击 播放
Terminal window
# 拉流并保存为 MP4
ffmpeg -i rtmp://localhost:1935/live/test -c copy output.mp4
# 拉流并转推到其他服务器
ffmpeg -i rtmp://localhost:1935/live/test -c copy -f flv rtmp://other-server/live/test

通过 RTMP 推流后,可以使用其他协议拉取同一路流:

Terminal window
# RTMP 推流
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://localhost:1935/live/test
# HTTP-FLV 拉流
ffplay http://localhost:8080/flv/live/test.flv
# HLS 拉流
ffplay http://localhost:8080/hls/live/test/index.m3u8

如果 1935 端口被占用,可以修改监听地址:

rtmp:
tcp:
listen_addr: ":1936"

RTMP 插件支持推流端断开后重新连接。新的推流连接会自动替换旧的发布者,订阅者会无缝切换到新的流数据。

联系我们

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