Back

Blog details

Monitor Livestream Health With Bitrate, FPS and Viewer Count

AIOZ Network
6 min readOctober 30, 2026
aioz-streamguide

AIOZ Stream's Statistics panel shows five readings for a live session: bitrate in, bitrate out, FPS in, FPS out and the current viewer count. Compare the "in" and "out" values first, because a gap between them tells you whether a problem starts at your encoder or reaches your viewers.

TL;DR:

  • The panel lists Current Viewers, Bitrate (In/Out) and FPS (In/Out), and the docs say only those metrics are exposed today.
  • "In" is what your encoder sends and "Out" is what AIOZ Stream delivers, so comparing the two separates an upload problem from a playback problem.
  • The docs give three rules: unstable Bitrate (In) means an unstable upload, FPS (In) below target means an overloaded encoder, and Bitrate (Out) well below Bitrate (In) means a constrained stream.
  • The statistics API returns the same bitrate and FPS values plus data_transferred and refreshes every 5 to 30 seconds; viewer counts sit on the streaming session object as current_view and total_view.

What does the AIOZ Stream Statistics panel show?

Open an active session and click the Statistics icon to open the telemetry panel. The Viewing and Sharing docs page says the panel helps you troubleshoot connection issues, and it adds that only the metrics in the table below are currently exposed.

MetricWhat it measuresWhat the docs tell you to do
Current ViewersThe number of people watching nowIf it drops while bitrate and FPS stay stable, the cause may be the content, not the technology
Bitrate (In)The upload bitrate from your studio, in KbpsIf it swings or drops, the upload is unstable, so lower the bitrate or use a steadier network
Bitrate (Out)The bitrate AIOZ Stream delivers to your viewersIf it stays well below Bitrate (In), viewers may get a constrained stream, so check playback quality and network conditions or lower your output settings
FPS (In)The frame rate of your uploadIf it stays below your target, such as 30, your encoder or device is overloaded, so lower the resolution or FPS or adjust encoder settings
FPS (Out)The frame rate AIOZ Stream delivers to your viewersIf it stays below FPS (In), viewers may get reduced playback performance, so check playback quality or lower your output settings
Diagram: the encoder sends video to AIOZ Stream, which delivers it to viewers, with bitrate and FPS measured on both sides and the current viewer count on the viewer side
Where each reading sits between your encoder and your viewers. Drawn from the Viewing and Sharing docs page and the Livestream Statistic API page.

The Livestream Statistic API page defines the "in" and "out" labels. The field fps_in is the frame rate of your studio's upload, and fps_out is the frame rate AIOZ Stream delivers to your clients.

How do you read bitrate in and out?

Start with Bitrate (In), because everything your viewers receive depends on the quality of that upload. FastPix's monitoring guide describes sudden bitrate spikes as a sign of congestion or overload, and it suggests switching to constant bitrate (CBR) or reducing the target bitrate. The OBS setup guide shows where to set CBR, and the encoder settings article covers the documented 4500 to 6000 Kbps range for 1080p30.

A steady line is only half the check, because your connection has to carry the bitrate with room to spare. Moving Image's encoding guide recommends reserving at least 40 percent of your total bandwidth for overhead. Its example keeps the encode at or below 6 Mbps on a 10 Mbps link. Applied to the top of AIOZ's documented range, 6000 Kbps needs about 10 Mbps of upload, since 6 divided by 0.6 is 10. That sum is my own arithmetic on Moving Image's rule and should not be read as AIOZ guidance.

Bitrate (Out) is harder to judge, because the docs give no number for it. They say only that a value well below Bitrate (In) can mean a constrained stream. In the docs' own sample response, bitrate_out (8406.24) sits slightly above bitrate_in (8029.42), so a small gap in either direction isn't what the rule targets.

Reading FPS in and out

FPS (In) shows whether your encoder keeps up with the frame rate you chose. The docs say a value that stays below your target means the encoder or device is overloaded. The fix is a lower resolution, a lower frame rate or different encoder settings. FastPix lists variable or spiky FPS as its own common issue and advises you to lock the encoder and camera at 30 fps. Moving Image caps both its 720p and 1080p profiles at 30 fps.

FPS (Out) matters only in comparison with FPS (In), and the docs say viewers may get reduced playback performance if it stays below that value. A healthy session keeps the two values close, so a steady 30 on both sides is the picture you want.

Using the viewer count

Current Viewers is a live count of the people watching at this moment, with no separate row of advice in the docs. The one reading rule they give is that a viewer drop alongside stable bitrate and FPS may be content-side rather than technical. The opposite case follows from the same logic: when viewers fall at the moment bitrate or FPS dips, look at your stream first.

The number is a snapshot: the docs show no viewer history, peak or average, only the current and total counts.

Can you pull these numbers from the API?

You can pull bitrate and FPS from the statistics endpoint, and viewer counts from the streaming session object. The statistics endpoint takes the ID of the live stream media and returns fps_in, fps_out, bitrate_in, bitrate_out and data_transferred. Authenticate with either a Bearer token or the stream-public-key and stream-secret-key pair, and expect fresh values every 5 to 30 seconds, as the Livestream Statistic API page states.

curl "https://api.aiozstream.network/api/live_streams/statistic/STREAM_MEDIA_ID" \
  -H "stream-public-key: YOUR_PUBLIC_KEY" \
  -H "stream-secret-key: YOUR_SECRET_KEY"

The docs print a request like this one and the sample response below, and the numbers in it are the docs' samples, not output from a real stream.

{
  "status": "success",
  "data": {
    "id": "0a8c1362-9d3b-41af-8440-14b9ac23da1f",
    "live_stream_media_id": "f77276d7-e17a-49bb-8aa0-bc560e0b3055",
    "fps_in": 60,
    "fps_out": 60,
    "bitrate_in": 8029.417662556544,
    "bitrate_out": 8406.24,
    "data_transferred": 58.441708
  }
}

Bitrates are in Kbps and data_transferred is in MB, and because values refresh no faster than every 5 seconds, polling more often returns nothing new. One request every 5 seconds is only 12 a minute, and the rate limits article explains the limits your polling counts against.

What the docs don't tell you

  • How "in" and "out" are measured, for example whether Bitrate (Out) is one rendition or the total across renditions.
  • Any viewer history, peak or average beyond the current_view and total_view fields on the session object.
  • Dropped frames or packet loss. FastPix lists packet loss in its input health view, and Livepush charts dropped frames and calls anything above roughly 1 percent a problem, but those are vendor claims and AIOZ exposes neither reading.
  • Numeric thresholds or alerts, since the docs give only the qualitative rules above.
  • The period that data_transferred covers.

A simple routine for a live session

  1. Start your encoder, open the Statistics panel and wait until Bitrate (In) and FPS (In) hold steady.
  2. If they swing, fix the upload first by lowering the bitrate, switching to CBR or moving to a steadier network.
  3. Compare Bitrate (Out) and FPS (Out) with the "in" values and look for a sustained gap.
  4. Watch Current Viewers alongside them, and treat a drop with stable metrics as a content question.

For on-demand playback measures such as rebuffering ratio and startup time, read the stream health metrics article, and to start a session follow the go-live guide.

Frequently Asked Questions

What does the AIOZ Stream Statistics panel show for a live session?
It shows Current Viewers, Bitrate (In/Out) and FPS (In/Out) for a live session, and the docs say only these metrics are currently exposed.

What is the difference between Bitrate In and Bitrate Out in the panel?
Bitrate (In) is what your encoder uploads to AIOZ Stream, and Bitrate (Out) is what AIOZ Stream delivers to your viewers. If Out stays well below In, the docs say viewers may get a constrained stream.

Can I get the viewer count from the statistics API?
The documented statistics endpoint returns fps_in, fps_out, bitrate_in, bitrate_out and data_transferred with no viewer field. Viewer counts come from the streaming session object instead: the Streamings API reference shows current_view and total_view on each session.

How often do the livestream statistics refresh in the API?
The Livestream Statistic API page says the statistics are updated every 5 to 30 seconds.

References

We only send updates when meaningful changes ship, and you can unsubscribe anytime

Related Content

blog thumbnail

Video Streaming Protocols: HLS, DASH, WebRTC, RTMP and SRT

Video streaming protocols move video from encoder to viewer. See how RTMP, SRT, HLS, DASH and WebRTC differ in latency, transport and where each one fits.

aioz-streamguide
7 min readNovember 04, 2026
blog thumbnail

What Is Decentralized Live Streaming and How Does It Work?

Decentralized live streaming sends a real-time broadcast through independently run nodes instead of one company's servers. Here's how each stage of it works.

aioz-streamguide
6 min readNovember 03, 2026
blog thumbnail

Video Streaming Glossary: Codecs, Protocols and Delivery A-Z

A video streaming glossary of 114 terms, from AAC and ABR to WebRTC and Widevine, each defined in plain English with sources and links to the deep posts.

aioz-stream
23 min readOctober 31, 2026
blog thumbnail

Monitor Livestream Health With Bitrate, FPS and Viewer Count

Read the AIOZ Stream Statistics panel: bitrate in and out, FPS in and out and current viewers, plus the documented rules for each and what the docs leave out.

aioz-streamguide
6 min readOctober 30, 2026
blog thumbnail

How to Embed a Livestream on Your Website (Link or iFrame)

Embed an AIOZ Stream livestream with the Share button's iframe or send the Public Playback URL as a link. Covers API fields, public access limits and doc gaps.

aioz-streamguide
6 min readOctober 27, 2026
blog thumbnail

Stream Key vs Streaming Session: Preconfiguring a Livestream

Learn how a stream key differs from a streaming session on AIOZ Stream, what each one stores, and what to preconfigure before you go live. Docs-based guide.

aioz-streamguide
7 min readOctober 23, 2026