Skip to content

Playback stats

The player has a built-in readout of what it’s doing: how fast video is arriving, whether the server is transcoding and on which encoder, and what the file underneath looks like. It’s the first place to look when a video buffers, stutters or looks worse than you expected.

While a video is playing, move the pointer (or tap the screen) to bring up the controls, and select the Playback stats button at the right of the top bar. The panel opens in the top-right corner and stays open while the controls fade away, so you can watch the numbers as the film plays. Close it with the × in its header.

Anyone watching can open it for their own stream. It stays open if you change quality, so you can compare numbers before and after. It isn’t remembered: the next video starts with it closed.

The Arriving numbers are measured by your device, since the server can’t know what actually reached you. The rest comes from the server and updates every couple of seconds. Nothing is measured while the panel is closed.

What your device is receiving, measured over the last eight pieces of video it downloaded.

Field What it tells you
Throughput How fast video is downloading, counting only the time spent actually transferring. This is your connection’s speed to the server, not how fast the server is producing video.
Server wait The typical time between asking for a piece of video and the first byte arriving. When transcoding, this is mostly how long the player waited for the encoder to make that piece.
Buffered ahead How many seconds of video are loaded ahead of where you’re watching. If it stays near zero, playback is living hand to mouth and will stall at the first hiccup.
Downloaded The total received so far, and in how many pieces.
Dropped frames Frames your device skipped because it couldn’t decode or display them in time, out of the total so far.
Field What it tells you
Method Direct play (the file is sent as it is) or Transcoding. See How playback works.
Reason Why this video is being transcoded, for example “This player cannot decode HEVC video in a MKV file, so the stream is transcoded” or “You chose 720p, which this server encodes.” Not shown for direct play.
Encoder Which encoder the server is using, and whether it’s hardware or software. See Hardware acceleration.
Quality The quality chosen in the player’s menu.
Encoding at The height of the picture being produced, such as 720p.
Ceiling The highest bitrate this stream may use.

Encoder, Quality, Encoding at and Ceiling only appear when the video is being transcoded.

Field What it tells you
Method Direct play or Transcoding, as for video.
Track Which audio track is playing.
From / Codec The source track’s format and channels, such as EAC3 5.1.
To When transcoding, what it’s being converted to, always stereo AAC at a set bitrate.
Field What it tells you
Delivery Off, Text — drawn by the browser, or Burned into the picture. See Subtitles.
Track Which subtitle track is on.

The file on disk: its Container, Video codec, Resolution, Frame rate, Bitrate and Size. Compare these with the Video section to see how much the server is changing.

Shown only while transcoding.

Field What it tells you
Running Yes while ffmpeg is working. No — this run finished means it has reached the end of the video, which is normal.
Segments made How many pieces of the video have been encoded, out of the total.
Run started at The piece the current encode began from. It jumps when you seek far ahead and the server restarts the encode there.

If the panel says “This session is no longer running”, the server has stopped the stream, usually because it sat idle past the idle timeout. Leave the player and press play again.

Open the panel, let it run for half a minute, and match what you see.

Server wait is high (seconds rather than milliseconds) and Buffered ahead stays near zero, while transcoding. The server can’t encode fast enough. Check:

  • The Encoder row. If it says software on a machine with a supported graphics card, the card isn’t being used. Settings → Server → Transcoding lists each hardware encoder and why it’s unavailable. See Hardware acceleration.
  • How many other people are watching. Every transcode shares the same CPU or card. An NVIDIA card also has a session limit, beyond which streams are encoded on the CPU.
  • The Encoder preset at Settings → Server → Transcoding. A slower preset than the default veryfast costs a lot more CPU.
  • Whether the file needs transcoding at all. The Reason row tells you why it’s happening. A picture subtitle or a non-default audio track can be the only thing stopping direct play.
  • Picking a lower quality in the player. Encoding a smaller picture is faster.

Throughput is lower than the Ceiling (or than the Source file’s Bitrate in direct play). The network between you and the server can’t carry this stream. Pick a lower quality in the player’s Quality menu. For a large file in direct play, Original keeps the full resolution but encodes it down to the server’s bitrate ceiling, which direct play ignores.

Dropped frames keep climbing while Buffered ahead is healthy. Video is arriving fine, but your device can’t decode it smoothly, which often happens when directly playing a 4K or high-bitrate file on a modest device. Pick Original or a lower quality so the server sends something easier to play.

It stalls for a while after every seek, then plays smoothly. Each jump past what’s already been encoded restarts the encoder there, and the first piece has to be made before anything plays. On a slow server, raise Segment timeout at Settings → Server → Transcoding so the player waits longer rather than giving up, or shorten Segment length so less video has to be encoded before playback resumes.

Turning on subtitles leaves a “Preparing…” notice for a while. The subtitle is embedded in the file, and the server is reading the whole file to extract it. It only happens the first time you choose that track in a session. See Subtitles.

Nothing plays, with a message about the maximum number of streams. The server is already transcoding as many videos as Concurrent streams allows. Wait for someone to finish, or raise the limit at Settings → Server → Transcoding if your hardware can take it.

If none of this explains it, the server’s logs record every stream that starts and why it was transcoded. See Logs and Common problems.