← CineCinch Home / Compress Plex / Jellyfin / Kodi Library
How to Compress Your Plex, Jellyfin, or Kodi Library on Windows
Large media server libraries on Windows eat through NAS and drive storage fast. Here's how to identify oversized files, compress them to H.265 without visible quality loss, and keep all your audio and subtitle tracks intact.
Why media server libraries get so large
Plex, Jellyfin, and Kodi libraries tend to accumulate storage over time from multiple sources, each with different encoding characteristics:
- Old H.264 rips and downloads — files encoded before H.265 was widely supported, at higher bitrates than necessary.
- MPEG-2 and Xvid files — legacy codecs from DVDs and early internet video that are dramatically larger than modern equivalents.
- Camera footage and recordings — GoPro, DSLR, and phone footage often uses high-bitrate capture settings designed for editing, not long-term storage.
- Screen recordings and game captures — typically the worst offenders, with MB/sec values 10–20× higher than well-encoded 1080p content.
- Remuxed Blu-ray content — full-quality source files that were never intended for storage, only for editing or archival.
The good news: H.265 (HEVC) can deliver virtually identical visual quality at roughly half the file size compared to H.264. For older codec content, the savings are even greater. A methodical library cleanup pass can often halve total storage without any perceptible quality difference.
Plex
Full H.265 direct play on all modern clients. Older clients may transcode.
Jellyfin
H.265 direct play and hardware transcode supported. Fully open source.
Kodi
H.265 hardware decode on all modern devices. Ideal for direct play.
H.265 compatibility with Plex, Jellyfin, and Kodi
The main concern when re-encoding a media server library is whether clients can play the new files without forcing server-side transcoding. Transcoding consumes significant CPU resources and can degrade playback quality — direct play is always preferable.
| Platform / Client | H.265 Direct Play | Notes |
|---|---|---|
| Plex Web (browser) | ⚠ Browser-dependent | Chrome/Edge support H.265 natively; Firefox requires transcoding |
| Plex iOS / Android | ✓ Yes | Modern devices (2016+) support H.265 hardware decode |
| Plex Apple TV | ✓ Yes | All Apple TV 4K models support H.265 |
| Plex Roku / Fire TV | ✓ Yes | Most 2018+ models support H.265 direct play |
| Plex Smart TV app | ✓ Yes (2016+) | Older sets may transcode |
| Jellyfin (all clients) | ✓ Yes | Same hardware decode support as Plex clients |
| Kodi on Windows PC | ✓ Yes | Hardware decode via DXVA2/D3D11VA |
| Kodi on Raspberry Pi 4 | ✓ Yes | Pi 4 supports H.265 hardware decode |
| Kodi on Fire Stick 4K | ✓ Yes | Full H.265 hardware decode |
💡 If you have a client that can't direct-play H.265, consider keeping the original file alongside the compressed version. Plex and Jellyfin can be configured to prefer certain versions for specific clients.
Which files to compress first
Not every file in your library is worth compressing. The priority should be files with a high MB/sec ratio — those are consuming far more storage than their content requires.
The most common high-value targets in a Plex/Jellyfin library:
- Screen recordings and game captures: Almost always 5–20× over-encoded. These compress dramatically with zero perceptible quality loss at H.265 CRF 25.
- Legacy codec files (MPEG-2, Xvid, DivX): Old DVD rips and early internet video. Re-encoding to H.265 typically cuts file size by 60–70%.
- High-bitrate H.264 exports: Content exported from video editors at "high quality" settings. Often 10–30 Mbps when 2–4 Mbps would be visually indistinguishable.
- Camera uploads (GoPro, DJI, DSLR): Cameras use high-bitrate encoding for edit flexibility, not storage. A 4K GoPro file might compress 60% without any visible loss.
Files to be conservative with:
- Already-efficient H.265 encodes: Will see minimal gain. CineCinch flags these as Efficient — skip them.
- 4K Blu-ray remuxes: Very high quality sources — compressing risks visible degradation on a 4K display. If you care about maximum quality, leave these alone.
- Films you watch regularly in critical quality mode: Use High Quality (CRF 21) rather than Standard if you must compress these.
Preserving audio tracks and subtitles
Multi-language libraries require extra attention. Media server collections often contain files with multiple audio dubs, director's commentary, and various subtitle formats.
Audio tracks
By default, CineCinch maps only the first audio track to the output. For media server libraries, enable "Keep all audio tracks" to preserve all audio streams — this is critical if your library has multi-language dubs or commentary tracks you care about.
All audio is copied directly (not re-encoded), so there's no quality loss to audio regardless of the original format (AC3, DTS, TrueHD, etc.).
Subtitles
Subtitle handling depends on the subtitle format in the source file. CineCinch probes each file before compression and handles each case:
- No subtitles: Nothing to do.
- Text-based subtitles (SRT, ASS, WebVTT, mov_text): Preserved and embedded in the MP4 output. Compatible with all media server clients.
- Image-based subtitles (PGS, VobSub, DVD format): Cannot be embedded in MP4. These are dropped from the output. If image subtitles are important, keep the original MKV file rather than compressing.
⚠️ Blu-ray and DVD rips with PGS/VobSub subtitles: If subtitle fidelity is critical (e.g. for foreign-language films), do not delete originals when compressing. The compressed MP4 will be playable but subtitles will need to come from an external SRT file or from the original MKV.
Step-by-step workflow
-
01
Point CineCinch at your media server library folder. CineCinch scans recursively, so you can select the root folder of your entire Plex/Jellyfin/Kodi library — all subfolders (Movies, TV Shows, etc.) will be included.
-
02
Choose the right threshold. For a typical 1080p movie/TV library, use Medium. For a predominantly 4K library, use Generous. For a library heavy on screen recordings and 720p content, use Strict.
-
03
Run the scan and review ratings. Bloated (red) files are your priority targets. Average (orange) files have some headroom but are lower priority. Efficient (green) files are best left alone.
-
04
Filter to Bloated only and review the list. Uncheck any files you want to exclude — full Blu-ray remuxes, recently purchased content, files with image subtitles you care about, etc.
-
05
Configure output settings for media server compatibility. Enable "Keep all audio tracks" to preserve multi-language dubs. Enable "Keep all subtitle tracks" for text-based subtitle preservation. For output location, a separate folder lets you verify before replacing originals.
-
06
Select your quality mode.** Standard (CRF 25) is the recommended starting point for most library content. High Quality (CRF 21) for near-archival quality. High Compression (CRF 29) for recordings and lower-priority content. Advanced users can use Custom mode to set any CRF value and encode speed directly.
-
07
Run a test batch first. Queue 5–10 diverse files (movies, recordings, older content) and compress them. Check playback quality on your media server clients before committing to a full library pass.
-
08
Run the full batch. Once you're happy with quality, compress the full list. The Saved (MB) column and status bar show running totals so you can track reclaimed space in real time.
Updating your library after compression
Once compression is complete, you'll need to tell your media server about the new files. The approach depends on your output settings:
If you output to the same folder (files named *_compressed.mp4)
Plex and Jellyfin will detect the new files as separate entries on the next library scan. You can manually remove the originals and trigger a library refresh, or let the server manage duplicates via its "Manage Duplicates" feature.
If you output to a separate folder
Verify quality on the compressed files before doing anything with originals. Once satisfied, replace originals with compressed versions (same filename, delete original, rename compressed) and refresh your library.
If you used "Delete originals"
The compressed file is already in place with the *_compressed.mp4 name. You may want to rename files to match the original names (removing _compressed) to preserve your existing media server metadata and watched status.
🎬 Plex tip: Plex preserves watch history and metadata by file path. If you change the filename, you'll lose "watched" status for that item. Renaming the compressed file to match the original exactly (after deleting the original) preserves the entire metadata record.
Realistic storage savings
For a mixed media server library compressed at Standard quality (CRF 25):
- Screen recordings and captures: 70–85% reduction. Typically the biggest wins.
- Legacy H.264 content (2010–2018): 35–55% reduction.
- MPEG-2 / Xvid / DivX files: 55–70% reduction.
- Modern H.264 streaming rips: 15–30% reduction.
- Already-efficient H.265: 0–10% reduction. Often not worth the encode time.
A realistic total library reduction depends heavily on your content mix. Libraries heavy in screen recordings and old codec files can see 60–70% total storage reduction. Libraries consisting primarily of modern, well-encoded content will see more modest gains — typically 25–40%.
Frequently asked questions
Yes. Plex Media Server supports H.265 direct play on all modern clients. Some older Plex clients (particularly web browsers using Firefox, and older smart TVs) may transcode H.265 rather than direct play — check your specific clients in Plex's playback quality settings before compressing your entire library.
If you use a different output filename (e.g. *_compressed.mp4), your media server will see it as a new file. For a seamless replacement, verify quality on the compressed file, then delete the original and rename the compressed file to match — then trigger a library refresh. Plex and Jellyfin will re-match metadata for files with matching names.
Enabling "Keep all audio tracks" preserves all audio streams in the compressed file — multi-language dubs, commentary, and all. Subtitle handling depends on format: text-based subtitles are preserved, image-based subtitles (PGS, VobSub) cannot be embedded in MP4 and are dropped. If this matters, keep your original MKV files.
For a mixed library with older H.264 files, screen recordings, and camera exports, typical total savings range from 40–70% of total library size. Already-efficient H.265 files see minimal gain. The biggest wins consistently come from screen recordings, high-bitrate captures, and MPEG-2/Xvid legacy files.
Yes, as long as you're not outputting to the same filename. CineCinch reads source files and writes to a new output file — it doesn't modify originals in place. Your media server continues to serve the originals normally while compression runs in the background. Just don't delete originals while Plex or Jellyfin is actively streaming them.