3 ms·
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 e
by drdexebtjl 27d ago
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.
- thaumasiotes 27d ago> 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.
- drdexebtjl 27d agoI 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.
- thaumasiotes 26d agoAny 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.
- drdexebtjl 25d agoNo, the subtitles are already in SRT. No video decoding is happening. ffmpeg was using 2% CPU and 0% GPU. The bottleneck is IO. ffmpeg must read the entire file, parse the container format and collect the subtitles. If the SSD was completely idle and could reach it's max rated read speed of 550 MB/s, assuming absolutely no overhead, ffmpeg would finish in just over 2 minutes (70000 MB / 550 MB/s / 60 s/min = 2.12 min). So, in the best case scenario, I'll be stuck waiting for 2 minutes for the subtitles to appear, if the client doesn't time out. Real-world speeds are 10x slower, as we've seen, but they're more than 10x faster than 4K Blu-ray bitrates, so they're sufficient. How large is your 47 minute video? If it's ~8 GB, which is typically on the high end for episodes from streaming services, and if you have an PCIe 3.0 NVMe SSD, which reads at ~6 GB/s, you'll extract subtitles in about 1 second.
- thunderfork 27d agoIIRC, 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"
- axionbraid 27d ago[flagged]
- tyffanypastecf 26d ago[dead]
- Retr0id 27d agoCould you elaborate on how you set it up to extract the embedded subtitles?
- drdexebtjl 27d agoThere'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.
- embedding-shape 26d agoI 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.
- drdexebtjl 26d ago> 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.
- embedding-shape 26d agoOh, 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?
- 26d ago