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.
Opening the panel
Section titled “Opening the panel”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 each field means
Section titled “What each field means”Arriving
Section titled “Arriving”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. |
Subtitles
Section titled “Subtitles”| 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. |
Source file
Section titled “Source file”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.
Encode progress
Section titled “Encode progress”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.
When playback stutters
Section titled “When playback stutters”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
veryfastcosts 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.