Skip to content

Streaming Guide

johnjiamzhong-project edited this page Jun 6, 2026 · 1 revision

推流使用指南

RambosPlayer 支持四种推流协议,根据使用场景选择:

协议 端口 适用场景 需要外部服务器
HTTP-MPEG-TS 8090(内置) 低延迟,局域网浏览器
HTTP-FLV 8080(内置) 局域网浏览器,无需安装客户端
SRT 9000 局域网 VLC / ffplay 拉流
RTMP 自定义 推送到 SRS / B站 / Twitch

HTTP-MPEG-TS(推荐 · 低延迟)

延迟 ≤ 600ms,基于 GPU 重编码(libx264/h264_nvenc)+ mpegts.js 追帧模式。

前提

mpegts.min.js 放到 RambosPlayer.exe 同目录。

使用步骤

  1. 打开视频文件并播放
  2. 菜单 → 推流 → 勾选 HTTP-MPEG-TS(低延迟),点确定
  3. 日志出现 MpegTsServer: listening on port 8090
  4. 同局域网设备用 Chrome/Edge 打开 http://192.168.x.x:8090/player.html

延迟分解

环节 延迟
关键帧等待(GOP=0.5s) ≤ 500ms
GPU 编码 5–15ms/帧
网络传输(局域网) ~10ms
mpegts.js 追帧缓冲 ≤ 500ms
合计 ≤ 600ms

Seek 行为

Seek 后不断开客户端,MpegTsServer 通过 PTS remap 保持流连续性,浏览器无需刷新。


HTTP-FLV(局域网浏览器)

使用步骤

  1. 打开视频文件并播放
  2. 菜单 → 推流 → 勾选 HTTP-FLV(内置),端口默认 8080,点确定
  3. 日志出现 HttpFlvServer: listening port=8080
  4. 同局域网设备用 Chrome/Edge 打开 http://192.168.x.x:8080/player.html

首次运行可能弹防火墙提示,点"允许";或以管理员身份运行程序。

注意事项

  • 打开页面无声音是正常的(autoplay 策略),点右上角 🔊 点击开声音 即可
  • 仅支持 H.264 编码的视频(MKV/MPEG-4 等格式需先转码)
  • Seek 后浏览器可能冻结约 6 秒,等待新关键帧到达后自动恢复;或刷新页面

SRT(局域网 VLC / ffplay)

点对点协议,无需中继服务器,PC 直接监听端口。

推流配置

推流 URL 填写: srt://:9000

拉流

# PC 本机回环验证
ffplay -fflags nobuffer -flags low_delay srt://127.0.0.1:9000

# 另一台设备(换成 PC 局域网 IP)
ffplay srt://192.168.x.x:9000

VLC:媒体 → 打开网络串流 → 填写 srt://192.168.x.x:9000

操作顺序:先在 RambosPlayer 点确定开始推流(PC 进入监听),再在客户端连接。

延迟参考

┌─────────────────────────┬──────────┐
│         客户端          │ 典型延迟 │
├─────────────────────────┼──────────┤
│ ffplay -fflags nobuffer │ ~50ms    │
├─────────────────────────┼──────────┤
│ VLC 默认                │ 1–2s     │
└─────────────────────────┴──────────┘

---
RTMP(推送到 SRS / 直播平台)

需要外部 RTMP 服务器(SRS、nginx-rtmp 或直播平台推流地址)。

本地 SRS 测试

1. 下载并启动 SRS 5.0:
cd D:\srs
.\srs-live.bat

2. RambosPlayer 推流 URL 填写:
rtmp://127.0.0.1/live/livestream

3. 验证拉流:
ffplay -fflags nobuffer -flags low_delay rtmp://127.0.0.1/live/livestream

浏览器播放页:http://127.0.0.1:8080/players/srs_player.html

Seek 后浏览器冻结说明

Seek 时 RTMP 连接保持不中断,冻结是 flv.js 对时间戳不连续的保护性暂停,重新点 Play 即可恢复。用 ffplay 拉流可避免此问题。

---
常见问题

┌───────────────────────────┬───────────────────────────────┬────────────────────────────────────────────────┐
│           现象            │             原因              │                      处理                      │
├───────────────────────────┼───────────────────────────────┼────────────────────────────────────────────────┤
│ 局域网设备无法访问        │ 防火墙阻止入站                │ 以管理员身份运行,或手动放行对应端口           │
├───────────────────────────┼───────────────────────────────┼────────────────────────────────────────────────┤
│ SRT 报 Protocol not found │ vcpkg FFmpeg 未编译 SRT       │ vcpkg install ffmpeg[srt] --recurse 后重新构建 │
├───────────────────────────┼───────────────────────────────┼────────────────────────────────────────────────┤
│ HTTP-FLV 无声音           │ autoplay 策略                 │ 点击页面右上角"🔊 点击开声音"                  │
├───────────────────────────┼───────────────────────────────┼────────────────────────────────────────────────┤
│ mpegts.js 播放页打不开    │ mpegts.min.js 不在 exe 同目录 │ 将该文件复制到 exe 旁边                        │
└───────────────────────────┴───────────────────────────────┴────────────────────────────────────────────────┘

---

Clone this wiki locally