Skip to content

Stream Manager

The Stream Manager provides real-time monitoring of active media streams and tools to manage server availability.

The sessions view shows all currently active streams across your connected servers. It polls every 5 seconds as a baseline, and — when Real-Time Sync is enabled — pushes updates within ~2 seconds of a play, pause, or stop via the server’s WebSocket. Real-time events also let the maintenance, blackout, and transcode enforcers see a new stream within about half a second instead of up to 30 seconds.

For each active stream:

Field Description
Server Which media server is streaming
User Username and avatar
Title Media title (movie, episode, or track)
Type Movie, Episode, or Track
Quality Resolution, codec, container, bitrate
Player App name, device, platform, playback state
Connection Local or remote
Bandwidth Network bandwidth consumed
Progress Current position / total duration
Transcoding Whether the stream is being converted, the encoder in use (VAAPI, NVENC, QSV, … or SW), and transcode speed
  • Click a session card to open its detail panel with full overview, stream, media, and transcode information.
  • Tick the checkbox in a card’s corner to select sessions, then use Terminate Selected — or Select All / Terminate All for everything at once.
  • The strip along each card’s bottom edge shows playback progress, colored by state (accent while playing, amber while paused).
  • Every termination is written to System Logs under the Streams source — manual ones and automatic ones (maintenance mode, transcode manager, blackout) alike, so one filter shows them all. Each line names the viewer, the media they were watching, what triggered the stop, and the message they were shown as the reason.

Temporarily pause all streaming activity for server maintenance.

Setting Description
Custom Message Message displayed to users explaining the maintenance
Delay Seconds to wait before terminating active streams (default: 30)
Excluded Users Users who can continue streaming during maintenance

When maintenance mode is enabled:

  1. A grace period countdown begins (configurable delay)
  2. Active streams receive a notification
  3. After the delay, sessions are terminated
  4. New connection attempts are rejected with the custom message
  5. Discord notification sent (if configured)

When maintenance mode is disabled:

  1. Normal streaming resumes immediately
  2. Discord notification sent (if configured)

Automatically terminate streams that match transcoding criteria.

Criterion Description
Any Transcoding Terminate sessions where video or audio is being transcoded
Video Transcoding Terminate sessions where video is being transcoded
Audio Transcoding Terminate sessions where audio is being transcoded
4K Transcoding Terminate sessions where the video of 4K content is being transcoded, including downscales to a lower resolution
Remote Transcoding Terminate remote (non-local) sessions that are transcoding
Setting Description
Delay Seconds to wait before terminating matching streams (default: 30)
Custom Message Message displayed to users when their session is terminated
Excluded Users Users who bypass transcode restrictions
Skip Hardware Transcodes Never terminate a stream Plex is encoding on a GPU, regardless of criteria (Plex-only; default: off)

A hardware (GPU) encode costs the CPU very little, so this option exempts those streams from every transcode criterion. It applies to the transcode manager only — maintenance mode and blackout schedules still terminate the stream.

Only the encode counts. A hardware decode feeding a software encode is still doing the expensive work on the CPU, so it is not exempt.

The enforcer checks active streams every 30 seconds. Sessions matching any enabled criterion are terminated after the configured delay.

Schedule recurring or one-time maintenance windows when streaming is automatically paused.

Set repeating windows on specific days and times.

  • Days of week: Select one or more days
  • Start/End time: 24-hour format
  • Example: Monday, Wednesday, Friday — 2:00 AM to 4:00 AM

Set a single maintenance window with specific start and end dates/times.

  • Example: December 25, 2024 12:00 AM to December 26, 2024 11:59 PM

During a blackout window:

  • Active sessions are terminated after a configurable delay
  • Custom message displayed to users
  • User exclusions supported
  • Discord notification sent (if configured)
Action Description
Terminate Immediately Stop sessions as soon as the blackout starts
Warn Then Terminate Send a warning, then terminate after a configurable delay
Block New Only Allow existing sessions to continue but block new playbacks
  • Stream data accuracy depends on the media server’s API reporting
  • Maintenance mode and blackout enforcement have up to a 30-second delay between checks
  • Some player apps may not immediately respond to a stop request
  • Stream conversion detection relies on what your media server reports, which varies by player app
  • Blackout and recurring schedule times are evaluated in the server’s local timezone (set TZ on the container to control it)
  • On Jellyfin and Emby, LAN vs WAN is inferred from the client’s IP address (private, loopback, link-local and CGNAT/tailnet ranges count as local) because those servers report no explicit “local” flag. Plex reports it directly.
  • The 4K Transcoding criterion matches the source resolution of the version being played. For a Plex item with several versions at different resolutions, the exact version’s resolution is resolved from the server; other criteria and servers use the synced library value.
  • The 4K criterion, and hardware detection, are richest on Plex. On Jellyfin/Emby the 4K source resolution comes from the item itself and hardware acceleration is not detected (see above).