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.

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
| Field | Meaning |
|---|---|
720p | The encoded short side, read out of the Encoder row. Falls back to the source dimensions if the host sent no encoder description. |
25fps | Frames per second received and decoded on the phone over the last window. |
1.5Mb | Megabits per second arriving, measured from received bytes. |
Long | The GOP mode you chose. All-Intra displays as Snappy and Short as Smooth. |
H.265 | The 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:
| Loss | Color |
|---|---|
| 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:
| Arrow | Slope | Color | Meaning |
|---|---|---|---|
↑ | above +12 000 µs | Orange | The path is queuing up — buffers filling |
↓ | below −12 000 µs | Green | Draining |
· | between the two | White | Flat |
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.

The number is the free-running elapsed time since the last reset.
| Button | Action |
|---|---|
| Counter-clockwise arrow | Reset averages — restarts the window at zero. The glyph flashes cyan and the label reads Reset for a second. |
| Two documents | Copy statistics — puts the one-line summary on the clipboard. The glyph flashes green and the label reads Copied for 1.5 seconds. |
| Chevron | Expands 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:
| Field | Meaning |
|---|---|
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 |
25fps | Mean received frames per second |
OWD 2.1ms(max 4.0, ...) | Mean one-way delay offset, and the worst sample |
trend · avg +8us | The mean slope, and its arrow |
Two fields appear only when they are non-zero, appended in this order:
· fec Δ+2 · late Δ+0fec Δ— 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:
- 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.
- Loss green but
fpswell below the Stream row's fps? Frames are arriving late rather than being lost — check the OWD trend. - OWD trending
↑and climbing? Something else is saturating the network. - Encode row's resolution not what you selected? The plugin clamped it — either the tier cap, or the encoder refused the requested size.
- 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
Encoding settings
The settings panel — encoder engine, codec, GOP mode — plus the Resolution Limit chip on the HUD, and exactly what Reset to Defaults restores.
Save a frame
Saving the current frame to Photos, what the active layout bakes into the image, the add-only permission model, and the toast states.