I had this problem, but I fixed it by setting it up so it extracts all embedded subtitles into SRT files, and enabled a setting prevents Jellyfin from serving embedded subtitles.
From what I remember, some clients don't support streaming subtitles, so they must download them completely in advance, when the movie starts, before they start appearing. If you pick embedded subtitles with these clients, Jellyfin must extract the subtitles files immediately, and this takes a while depending on container format, file sizes and server load. External subtitles are faster.
I think you don't want to do the "extract embedded subtitles" method, it's slow as hell and downloading external subtitles is much faster than the built-in extract, at least for HDR+4K mkv video which is what we end up with the most. Can take up to a minute for a 40 minute episode to extract the subtitles, which means you'll need to pause for a minute before you can watch with subtitles, with a 5950X CPU.
> which means you'll need to pause for a minute before you can watch with subtitles
The entire point is that it will extract the embedded subtitles ahead of time (when the media is added to the library) so Jellyfin doesn’t have to do it when you want to watch it.
Oh, I thought we were talking about Jellyfin's "extract subtitles on the fly when playing", which I think is how it works by default, which is what I described before.
If it's a async process that runs on import/update of the library, that sounds great. I'm guessing we're/you're talking about Bazarr then? Although I don't see it explicitly mentioned in this thread earlier. Or some other application?
Uuuh, where has that been all this time?! And also, why isn't this the default behavior in core or at least optionally so, rather than a somewhat hidden plugin?! Fake outrage aside, thank you for the pointer. I did read it above, thought it was talking about something else, re-read it now and actually understood it, thanks for sticking with it! :)
There's an official plug-in in Jellyfin called "Subtitle Extract" that does it automatically for you.
I personally use Bazarr instead, because I also want to download subtitles for different languages. In Bazarr, Embedded Subtitles is just another subtitle provider that can fetch subtitles depending on your rules.
> If you pick embedded subtitles with these clients, Jellyfin must extract the subtitles files immediately, and this takes a while depending on container format, file sizes and server load.
Really? How?
My expectation would be that extracting a subtitle file takes a few seconds at most. If you had to do it on the fly every time you watched anything in your library, it wouldn't matter.
I don't undestand how movie containers work, but I ran this on a 70 GB movie file to test:
ffmpeg -i input.mkv -map 0:s:0 /tmp/subtitles.srt
The movie is 2 hours long, and the expected time to complete is 21 minutes. It seems like it's reading the entire file. This is on an average SATA SSD that is also being read/written to by the torrent client in the background.
Any chance you're doing a reencode to SRT? I don't see `-c copy`.
If I extract SRT subtitles from a 47 minute video, it takes about one second, so your two-hour duration isn't what's causing you to wait. You might be decoding two hours of extremely high-resolution pixels, but there's no actual need to do that either.
IIRC, in many containers embedded subtitles will be interleaved with the video and audio atoms/boxes/packets/etc., and so pulling out the subtitles requires scanning the full file. Not quite as expensive as decoding or re-encoding, but still as slow as "stream the full file into memory and demux the streams"
Someone decided to tell Google about this in exchange for an unknown amount of money, chosen unilaterally by Google at a later date, at which point the market value of the vulnerability is $0.
Streaming sticks suffer from the exact same problem.
The Apple TV is the only device I know of in this space whose business model is not selling your data to the highest bidder.
reply