2025-03-13, 07:10 AM
(This post was last modified: 2025-03-13, 07:11 AM by amorapotter. Edited 1 time in total.)
(2025-01-30, 08:38 PM)BotchedMiracle Wrote: I'm looking to optimize my entire library's approach to handling subtitles. I have a few main questions:
1. I have 4K HDR files that will transcode instead of direct play when certain PGS subs are being displayed. Would extracting them and making them external prevent the entire video from transcoding?
2. Does Jellyfin prioritize external subtitle files (.srt) before any embedded ones in the media file? If so, is there any indication when viewing media which subtitle Jellyfin is reading?
3. Is there any preferred tool to run against my library to extract, place alongside, slopeand subsequently remove the internal subtitles to be left with ONLY externals? I have a wide mix of formats, 1 tool would be awesome instead of a different one for every format. I know the official Subtitle Extract Plugin could work for this if there was an option to change the destination, and also remove embedded subs, but I think you can't do either of those.
Thanks for reading. Info is sparse regarding these hurdles.
I'll answer each of your questions as best I can:
1. Yes, in many cases, extracting PGS (Presentation Graphic Stream) subtitles and converting them to an external text-based format like .srt can help avoid transcoding, especially with 4K HDR content.
2. Jellyfin doesn’t strictly prioritize external .srt files over embedded subtitles by default—it lists all available subtitles (internal and external) and lets you choose.
3. You’re right—info is sparse, and the Jellyfin Subtitle Extract Plugin has limitations (no destination override or embedded sub removal). No single tool perfectly automates everything across all formats, but here’s a practical approach using widely available software: FFmpeg + Scripting: It’s versatile, handles most video formats (MKV, MP4, TS, etc.), and can extract subtitles to external files. It’s not a one-click GUI, but it’s scriptable for batch processing your library. It won’t remove embedded subs directly—you’ll need a second step for that—but it’s a solid starting point.