Video Stats and Bitrate

Show the incoming stream bitrate in the top-right of the Social Stream Ninja Dock.

Important: SSN does not read bitrate from OBS or a streaming platform automatically. It polls the stats API of the video server receiving your stream.

What it is for

This gives a host or producer a small, live bitrate readout in the Dock. It is useful when OBS, a mobile encoder, or another sender publishes to your own relay or ingest server.

SSN also normalizes available latency, buffer, packet-loss, uptime, codec, and viewer data into a video_stats metadata event. The standard Dock readout shows only bitrate.

Compatibility

  • SRT Live Server / SLS: JSON /stats endpoint containing a publishers object.
  • Belabox Cloud: its SRT-style JSON receiver/relay stats response.
  • NGINX RTMP: XML from the NGINX RTMP status module.
  • Node Media Server: its JSON stream API, with optional HTTP Basic authentication.
OBS is not a stats source: OBS can send video to a compatible server, but OBS WebSocket and SSN browser sources do not provide this data.

How to use it

  1. Enable the compatible server's HTTP stats endpoint and confirm the computer running SSN can open its URL.
  2. In SSN Global settings, enable Video stats polling.
  3. Select the source type and enter the stats URL.
  4. For SRT or Belabox, enter the exact publisher ID, such as publish/live/feed1. SSN automatically uses it when the response contains only one publisher.
  5. For NGINX RTMP or Node Media Server, enter the application and stream key/name, such as live and feed1.
  6. Add authorization if required. The SRT API key field is sent as the complete Authorization header. Node Media Server uses the username/password as HTTP Basic authentication.
  7. Choose a polling interval from 1 to 60 seconds; the default is five seconds.
  8. In Dock options, enable Show bitrate metadata if available; top-right, then open or refresh the Dock link.
  9. Start publishing video. The bitrate appears after a valid online response.

If nothing appears

  • Confirm both video stats options are enabled in SSN.
  • Confirm the endpoint responds within five seconds and the source type and stream identifiers match.
  • 127.0.0.1 means the computer running SSN. Use the server's LAN address when it is another device.
  • The readout disappears when the stream is offline, bitrate is missing or zero, or no fresh stats arrive for about 130 seconds.

Advanced: protocol, formats, and units

SSN performs an HTTP or HTTPS GET at the configured interval with caching disabled and a five-second timeout.

SRT Live Server / SLS and 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 is Kbps; RTT and receive buffer are milliseconds; receive rate and bandwidth are Mbps; uptime is seconds; loss/drop values are packet counts or bytes.

NGINX RTMP

The URL must return NGINX RTMP status XML. SSN matches the configured application and stream. It reads bw_video as bytes per second and divides by 1024 for bitrateKbps. It also reads stream time and optional video/audio codec metadata.

Node Media Server

SSN requests STATS_URL/APPLICATION/STREAM_NAME. Fields may be top-level or inside data.

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

Bitrate is Kbps, viewers is a count, and duration is seconds.

Normalized SSN event

{
  "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"
  }
}
FieldUnit/type
bitrateKbpsKbps, whole number
rttMs / bufferMsMilliseconds
recvRateMbps / bandwidthMbpsMbps
Loss/drop fieldsPacket counts or bytes
uptimeSeconds / durationSecondsSeconds
onlineBoolean; false hides the Dock value

The Dock accepts meta.bitrateKbps, with meta.bitrate and meta.kbps as fallbacks. Values below 1000 display as rounded Kbps; larger values display as Mbps rounded to one decimal. The stats URL, stream key, and credentials are never sent to overlays.