PreviewMonitor docs
The iPhone App

The stats HUD

Every row of the live metrics strip, the loss color thresholds, the one-way-delay trend arrows, and the copy format to send to support.

The stats strip is the diagnostic surface. It shows what the phone is actually receiving, which is the only side of the link the app can measure directly — and the Copy statistics button produces the one-line summary worth attaching to a support message.

It is off by default. A reference monitor's first frame should be picture, not numbers.

Turning it on

Gear → Developer Tools → Show stats. The settings panel closes as soon as you enable it, so you can see the strip appear.

The setting persists across sessions.

The rows

The strip sits directly under the HUD button row, left-aligned, capped at 560 points wide.

Stats strip showing Host, Stream, Encoder, encode and network rows above the averaging row

Five fixed rows and an averaging row beneath them.

Host

Host: Windows · Host: macOS (Apple silicon) · Host: macOS (Intel)

What the plugin says it is running on. This is the row that confirms the plugin detected your architecture correctly — which matters, because an Intel Mac gets a different default codec. The row is absent entirely if the host never reported a platform.

Stream

Stream: 1920×1080 @ 25 fps

The source sequence or composition, as the plugin announced it. Before the first announcement it reads Stream: —.

Encoder

Encoder: NVIDIA HEVC Encoder MFT [HW-async, 1920x1080 HEVC @ 25 fps, 200 Mbps]

A free-form description of the encoder the plugin is currently bound to, sent after every encoder rebuild. On macOS it is shorter, for example VideoToolbox [HEVC]. The row wraps rather than shrinking, and is absent if the host never sent one.

The bracketed dimensions here are the encoded size, which is what the Resolution Limit controls — not the source size on the Stream row above.

Encode

720p 25fps 1.5Mb Long H.265

FieldMeaning
720pThe encoded short side, read out of the Encoder row. Falls back to the source dimensions if the host sent no encoder description.
25fpsFrames per second received and decoded on the phone over the last window.
1.5MbMegabits per second arriving, measured from received bytes.
LongThe GOP mode you chose. All-Intra displays as Snappy and Short as Smooth.
H.265The codec you chose.

This row never wraps — it scales down to fit instead, so the strip cannot jitter vertically between frames.

fps and Mb are receive-side measurements. If the encode row reads 18 fps on a 25 fps sequence, frames are being lost or arriving late on the network — the encoder is not producing 18.

Network

loss 0.3% OWD 12.4ms·

loss is the packet loss over the last measurement window (the strip updates twice a second), computed as lost ÷ (received + lost). Its color is the fastest read on the whole strip:

LossColor
0 – 0.5%Green
above 0.5%, up to 3%Yellow
above 3%Red

The stream carries fixed 10% Reed-Solomon forward error correction, so a green or low-yellow reading is normally invisible in the picture. Red means the FEC is being overrun. See Choppy stream.

OWD is one-way delay — but as an offset above the session minimum, not an absolute figure. There is no synchronized clock between the two machines, so the absolute number would be meaningless; the variation is what tells you the network is queuing. It is smoothed, and always at or above zero.

The character after the milliseconds is a trend arrow computed from the slope across recent samples:

ArrowSlopeColorMeaning
↑above +12 000 µsOrangeThe path is queuing up — buffers filling
↓below −12 000 µsGreenDraining
·between the twoWhiteFlat

A rising arrow that stays up while loss is still green is the early warning: the network is congesting before it starts dropping.

The averaging row

Below the strip, on its own glass surface: a chart glyph, the elapsed seconds, the word Avg, and three buttons.

Averaging row expanded to show the full one-line summary underneath

The number is the free-running elapsed time since the last reset.

ButtonAction
Counter-clockwise arrowReset averages — restarts the window at zero. The glyph flashes cyan and the label reads Reset for a second.
Two documentsCopy statistics — puts the one-line summary on the clipboard. The glyph flashes green and the label reads Copied for 1.5 seconds.
ChevronExpands or collapses the summary line underneath.

Averages are computed over a rolling 10-second window — 24 samples at one every half second. The elapsed counter is not capped by that window; it keeps growing so you can see how long you have been watching.

Resetting is the right move before a test: reset, reproduce the problem, then copy.

The copy format

This is the string Copy statistics puts on the clipboard, and it is what to paste into a support message:

76s: loss 0.20%(max 1.10) · 48.3Mb(41.0-55.2) · 25fps · OWD 2.1ms(max 4.0, trend · avg +8us)

Field by field:

FieldMeaning
76s:Span covered by the samples in the window
loss 0.20%(max 1.10)Mean packet loss, and the worst single sample
48.3Mb(41.0-55.2)Mean megabits per second, with the minimum and maximum
25fpsMean received frames per second
OWD 2.1ms(max 4.0, ...)Mean one-way delay offset, and the worst sample
trend · avg +8usThe mean slope, and its arrow

Two fields appear only when they are non-zero, appended in this order:

 · fec Δ+2 · late Δ+0
  • fec Δ — frames recovered by forward error correction during the window. A non-zero value means packets were lost and rebuilt; the picture was fine, but the link is working for it.
  • late Δ — frames dropped for arriving too late to display.

With no samples yet, the line reads 10s: (no data yet).

The trend arrow inside the copied summary uses a ±4 000 µs threshold, tighter than the ±12 000 µs the live network row uses. The copied line averages the slope over the whole window, so it needs a finer threshold to register the same behavior. Expect the two to disagree occasionally; the copied line is the more sensitive of the two.

Reading it

A quick triage order:

  1. Loss red? The network is the problem, not the encoder. Move closer to the access point, get off 2.4 GHz, or drop the Resolution Limit a rung.
  2. Loss green but fps well below the Stream row's fps? Frames are arriving late rather than being lost — check the OWD trend.
  3. OWD trending ↑ and climbing? Something else is saturating the network.
  4. Encode row's resolution not what you selected? The plugin clamped it — either the tier cap, or the encoder refused the requested size.
  5. Everything green and the picture is still wrong? It is not the link. See Colors look wrong.

For the plugin's side of the same story, see Logs and diagnostics.

Last updated on