视频统计与码率

在 Social Stream Ninja 停靠面板右上角显示传入流的码率。

重要: SSN 不会自动从 OBS 或直播平台读取码率。它轮询接收直播的视频服务器的统计 API。

用途

这为主持人或制作人在停靠面板中提供小型实时码率读数。当 OBS、移动编码器或其他发送方将视频发布到自己的中继或接入服务器时很有用。

SSN 还会将可用的延迟、缓冲、丢包、运行时间、编解码器及观众数据标准化为 video_stats 元数据事件。标准停靠面板读数仅显示码率。

兼容性

  • SRT Live Server / SLS: JSON /stats 端点,其中包含 publishers 对象内。
  • Belabox Cloud: 其 SRT 风格的 JSON 接收方/中继统计响应。
  • NGINX RTMP: 来自 NGINX RTMP 状态模块的 XML。
  • Node Media Server: 其 JSON 流 API,可选 HTTP Basic 身份验证。
OBS 不是统计来源: OBS 可向兼容服务器发送视频,但 OBS WebSocket 和 SSN 浏览器源不提供这些数据。

使用方法

  1. 启用兼容服务器的 HTTP 统计端点,并确认运行 SSN 的电脑能够打开其 URL。
  2. 在 SSN 中 全局设置,启用 视频统计轮询.
  3. 选择来源类型并输入统计 URL。
  4. 对于 SRT 或 Belabox,输入准确的发布者 ID,例如 publish/live/feed1。响应仅包含一个发布者时,SSN 会自动使用它。
  5. 对于 NGINX RTMP 或 Node Media Server,输入应用和流密钥/名称,例如 live 和 feed1.
  6. 如有需要,添加授权。SRT API 密钥字段会作为完整的 Authorization 请求头发送。Node Media Server 将用户名/密码用作 HTTP Basic 身份验证。
  7. 选择 1 至 60 秒的轮询间隔;默认为 5 秒。
  8. 在停靠面板选项中启用 如可用,在右上角显示码率元数据,然后打开或刷新停靠面板链接。
  9. 开始发布视频。收到有效的在线响应后将显示码率。

如果没有显示任何内容

  • 确认 SSN 中两项视频统计选项都已启用。
  • 确认端点在 5 秒内响应,且来源类型及流标识符匹配。
  • 127.0.0.1 指运行 SSN 的电脑。如果服务器位于其他设备,请使用其局域网地址。
  • 当直播离线、码率缺失或为零,或约 130 秒未收到新统计数据时,读数会消失。

高级:协议、格式及单位

SSN 执行 HTTP 或 HTTPS GET ,按配置的间隔执行,禁用缓存,超时为 5 秒。

SRT Live Server / SLS 与 Belabox Cloud

{
  "publishers": {
    "publish/live/feed1": {
      "bitrate": 4500, "rtt": 32.5, "msRcvBuf": 120,
      "mbpsRecvRate": 4.5, "mbpsBandwidth": 12.8,
      "pktRcvDrop": 2, "pktRcvLoss": 1,
      "bytesRcvDrop": 2632, "bytesRcvLoss": 1316, "uptime": 3600
    }
  }
}

bitrate 的单位为 Kbps;RTT 和接收缓冲为毫秒;接收速率和带宽为 Mbps;运行时间为秒;丢失/丢弃值为数据包数量或字节数。

NGINX RTMP

该 URL 必须返回 NGINX RTMP 状态 XML。SSN 匹配配置的应用和流,并读取 bw_video 作为每秒字节数,并除以 1024 得到 bitrateKbps。它还读取直播时间以及可选的视频/音频编解码器元数据。

Node Media Server

SSN 请求 STATS_URL/APPLICATION/STREAM_NAME。字段可位于顶层或 data.

{ "data": { "isLive": true, "bitrate": 4500, "viewers": 3, "duration": 3600 } }

码率单位为 Kbps,观众为人数,时长单位为秒。

标准化 SSN 事件

{
  "type": "generic",
  "event": "video_stats",
  "meta": {
    "provider": "srt-live-server", "source": "srt-live-server",
    "label": "SRT", "online": true,
    "updatedAt": "2026-07-13T14:45:00.000Z",
    "bitrateKbps": 4500, "rttMs": 32.5, "bufferMs": 120,
    "summary": "4500 Kbps, 33 ms, 120 ms"
  }
}
字段单位/类型
bitrateKbpsKbps,整数
rttMs / bufferMs毫秒
recvRateMbps / bandwidthMbpsMbps
丢失/丢弃字段数据包数量或字节数
uptimeSeconds / durationSeconds秒
online布尔值; false 会隐藏停靠面板中的数值

停靠面板接受 meta.bitrateKbps,带有 meta.bitrate 和 meta.kbps 作为备用值。低于 1000 的值按四舍五入后的 Kbps 显示;更大的值以 Mbps 显示,保留一位小数。统计 URL、流密钥及凭据绝不会发送到叠加层。