-
The home TV
On the Wi-Fi segment, with a firewall exception for Plex only.
-
Router
Lets the TV reach Plex and nothing else on the server.
-
The phone, away from home
On a worse connection, it usually needs converting.
-
Traefik
The way in from outside.
-
GTX 1050 Ti
A modest GPU that encodes H.264 and HEVC in hardware, including 10-bit HEVC with HDR. It can't decode AV1.
-
Storage
The library lives on a multi-disk ZFS pool.
-
Plex Media Server
The server, updated from the beta channel because the public repo lags behind.
- Linux (Debian, Alpine, Arch)
-
Direct play
If the device understands the format, the file goes out as it is: no GPU, no CPU.
-
Sessions
Every playback in progress, with its conversion command. That's where you see whether it's on GPU or software.
-
Update
Beta-channel package, installed inside the container and checked: version, GPU detected and database migration done.
- Linux (Debian, Alpine, Arch)
-
Decoding (NVDEC)
The GPU decompresses the original video.
-
Encoding (NVENC)
And compresses it again to the format and quality the device asks for.
-
CPU, when there's no choice
Whatever the GPU can't do (decode AV1) falls to the CPU.
-
Hardware detection
Plex checks its hardware once and remembers. If the GPU comes back later, it won't notice until restarted.
-
IOMMU and boot
Kernel parameters so the GPU gets its own group and can be assigned.
- Proxmox VE
- Linux (Debian, Alpine, Arch)
-
Driver on the hypervisor
The version is pinned on purpose: every new kernel is a chance for it to stop compiling.
- Linux (Debian, Alpine, Arch)
-
GPU devices
The hypervisor's device files are passed into the container, with their exact numbers.
-
Unprivileged container
Only the video group is mapped one to one; the rest is shifted. Root in the container isn't root on the server.
-
Library
Films and series on the pool, with access time disabled to save writes.
-
Codec scan
A walk through the library with ffprobe to find each file's codec.
- Linux (Debian, Alpine, Arch)
-
Library conversion
What no device at home can play is converted once and for all.
- Linux (Debian, Alpine, Arch)
-
Live channels
Public free-to-air channels with their guide, served by the live TV unit.