Media Preview Generator vs Plex, Jellyfin and Emby built-in thumbnail generation

Built-in generators need no setup. Media Preview Generator adds GPU decoding, per-file triggers and one decode for several servers, but needs Docker.

Facts checked 24 September 2026.

This is my project, so weigh this page accordingly. I've tried to say plainly where the built-in generators are the better choice, and to link a source for how each one behaves. Spot something wrong or out of date? Open an issue and I'll fix it.

If your server's built-in preview generator keeps up with your library, keep using it. It needs no setup and costs nothing extra. Media Preview Generator is for when it doesn't keep up. It runs FFmpeg with GPU decoding in its own Docker container, and starts on each new file when Sonarr, Radarr or the media server reports it. If you run more than one of Plex, Emby and Jellyfin, it decodes each file once and writes each server's own format. The cost is setup: a container, GPU passthrough, and write access to where each server keeps its previews.

Facts tagged with a reference such as P1 link to their source, and the Sources list below says what each one is. Forum posts are marked as user reports, not vendor statements.

First, decide which problem you have

Side by side

  Media Preview Generator Plex built-in Jellyfin trickplay (10.9+) Emby built-in
GPU decoding Yes: NVIDIA, Intel, AMD on Linux; NVIDIA on Windows via WSL2. Any GPU passed to the container is used, and the CPU takes over if GPU decode fails. No GPU option documented. Plex calls it CPU-intensive. P1 Optional hardware decode and MJPEG encode. Both off by default. J1 No GPU option. E1
Where it runs Its own container, on the media server's host or another machine. GPUs in other machines can join as worker nodes. Inside Plex Media Server Inside Jellyfin. By default FFmpeg runs at below-normal priority with 1 thread. J1 Inside Emby Server
When it runs Per file on a webhook (Sonarr, Radarr, Plex, Emby, Jellyfin, Tdarr, custom). Also Recently Added polling, cron/interval schedules, or manual. During scheduled maintenance, and optionally when media is added P2 A scheduled task, and optionally during library scans J1 J2 A scheduled task and library scans E2
Servers covered Plex, Emby and Jellyfin, any mix and number. One decode per file. Plex Jellyfin Emby
HDR / Dolby Vision Tone-maps HDR10, HLG, HDR10+. Dolby Vision 7/8 uses the HDR10 layer. Dolby Vision 5 needs a GPU with a hardware Vulkan driver; on NVIDIA that means the graphics capability. Plex staff: not tone-mapped on all systems. Users report washed-out HDR and green Dolby Vision. P3 Tone-mapped only if transcoding tone mapping is on. J3 Green Dolby Vision is still user-reported in 2026. J4 Tone mapping is done in Emby's core (user reports). E3
Output location Each server's own location: Plex data folder; Emby BIF next to the video; Jellyfin tiles next to the video, or in Jellyfin's data folder with the plugin BIF files in Plex's data folder P4 P2 Jellyfin's data folder, or next to the video when "save with media" is on J1 Next to the video or in Emby's metadata folder E4
Skip Intro / Skip Credits Plex, Emby and Jellyfin, detected once per file. Plex needs Plex Pass on the server and for viewers, and the app runs on the Plex machine or uses a Plex database node beside Plex. Skip Intro on Emby still needs Premiere. Emby and Jellyfin need this app's plugin. Details TV intros, and credits on episodes and movies. Needs Plex Pass for the server's admin and for each viewer (or their Plex Home). P7 P8 No detection of its own. Jellyfin 10.10 and later store skip segments that a plugin makes, and its web player offers to skip them. Jellyfin's own plugin makes them from chapter names. J6 Detects TV intros, one season at a time. Skip Intro is an Emby Premiere feature. E7 E5
Setup Docker container, GPU passthrough, mounts, path mappings if paths differ, server sign-in One setting Per-library setting plus trickplay options Per-library setting
Price Free, MIT licence Free. No Plex Pass needed. P5 Free, open source Free. No Emby Premiere needed. E5

The mounts depend on the server: Plex's data folder read-write for Plex, and the media folder read-write for Emby and for Jellyfin's default layout. Jellyfin output needs Jellyfin 10.10 or newer. See Volume Mounts and Setup Health.

Note

"One decode per file" does not mean one shared file. Each server still gets its own output, in its own format and place. The saving is the expensive step: the video is decoded and scaled once, not once per server. See Per-vendor output formats.

What the built-ins do better

Which should you use?

Note

Speed depends on the GPU, codec, storage and frame interval. This project defaults to one frame every 10 seconds, and Plex documents a default of one every 2 seconds P6, so compare at the same interval.

Other tools you may see suggested

Sources

All checked on the date at the top of this page unless a line says otherwise. "User report" means a forum post or issue from a user, not a vendor statement.

This project's own behaviour is documented in Getting Started, the Multi-server guide and HDR & Dolby Vision.

Edit this page on GitHub
Type to search the documentation.