Tdarr is the tool Plex power users reach for when they want to stop transcoding on the fly and instead pre-convert their entire library to formats that direct play everywhere. It’s powerful, GPU-accelerated, and — if misconfigured — capable of destroying your media files. Here’s how to set it up right.
What Tdarr Actually Does
Tdarr watches your media library, identifies files that don’t match your target codec/container, and automatically transcodes them in the background. The goal: every file in your library plays without Plex needing to transcode at playback time.
Common conversions people run:
- H.264 → H.265 (HEVC): 40–60% file size reduction at equivalent quality. Saves terabytes on large libraries
- AVI/WMV/MPEG → MKV: Modern container format that supports all subtitle types and multiple audio tracks
- FLAC audio → AAC: For clients that can’t handle lossless audio without triggering a transcode
- PGS/ASS subtitles → SRT: Prevents subtitle-triggered video transcodes
Architecture: Server, Node, and Worker
- Tdarr Server: Web UI + job queue. Runs on any machine. Low resource usage
- Tdarr Node: Worker process that does the actual transcoding. Can run on the same machine or separate hardware
- GPU worker: Each node can use CPU, GPU, or both. NVIDIA NVENC and Intel Quick Sync are the most common
Docker Setup (Recommended)
- Map your media library as a shared volume between Plex and Tdarr containers
- Pass through GPU devices (
/dev/drifor Intel QSV, or--gpus allfor NVIDIA) - Set a transcode cache directory on fast storage (SSD preferred)
- Limit worker count to avoid saturating your CPU/GPU while Plex is streaming
Plugin Configuration
Tdarr uses a plugin system for transcoding rules. The community plugins cover most use cases:
- Tiered NVENC H.265: Converts to HEVC using NVIDIA GPU, preserves HDR metadata, skips files already in HEVC
- Remove image streams: Strips embedded cover art that bloats file size
- Re-order audio streams: Puts English audio first, moves commentary tracks to the end
- Subtitle extraction: Pulls embedded PGS subs into external SRT files
Critical settings to get right
- Output container: MKV for movies/TV, MP4 only if you need Apple device direct play
- Quality target: Use CRF/CQ mode (constant quality), not CBR. CRF 20–22 for HEVC is visually transparent
- Skip conditions: Always skip files already in your target codec. Skip files smaller than a threshold
- Preserve HDR: Your HEVC plugin MUST copy HDR10/HDR10+ metadata. The community “Tiered” plugins handle this
Scheduling Around Plex
- Set Tdarr to run during off-hours (midnight to 6 AM) using the built-in schedule
- Limit to 1 GPU worker and 1–2 CPU workers
- Use Tautulli webhooks to pause Tdarr when someone starts streaming
- Set Plex library scan intervals to avoid re-scanning mid-transcode
The Risks
- Quality loss: Re-encoding is lossy. Each generation loses quality. Never transcode from one lossy codec to another
- File corruption: Power loss during transcode can corrupt the output file
- Metadata loss: Some plugins strip chapter markers or subtitle tracks. Always test first
Need Setup Help?
Getting Tdarr, Plex, and GPU passthrough all working together in Docker can be frustrating. Our Pro Build tier includes Tdarr setup alongside your Plex server.