Video Stats and Bitrate
Show the incoming stream bitrate in the top-right of the Social Stream Ninja Dock.
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
/statsendpoint containing apublishersobject. - 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.
How to use it
- Enable the compatible server's HTTP stats endpoint and confirm the computer running SSN can open its URL.
- In SSN Global settings, enable Video stats polling.
- Select the source type and enter the stats URL.
- 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. - For NGINX RTMP or Node Media Server, enter the application and stream key/name, such as
liveandfeed1. - Add authorization if required. The SRT API key field is sent as the complete
Authorizationheader. Node Media Server uses the username/password as HTTP Basic authentication. - Choose a polling interval from 1 to 60 seconds; the default is five seconds.
- In Dock options, enable Show bitrate metadata if available; top-right, then open or refresh the Dock link.
- 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.1means 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"
}
}
| Field | Unit/type |
|---|---|
bitrateKbps | Kbps, whole number |
rttMs / bufferMs | Milliseconds |
recvRateMbps / bandwidthMbps | Mbps |
| Loss/drop fields | Packet counts or bytes |
uptimeSeconds / durationSeconds | Seconds |
online | Boolean; 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.