Subtitles are the Achilles heel of Jellyfin (at least the Android client sending the stream to Chromecast stick connected to the TV). I can see the subtitle present but it doesn't show on the movie. Ok, I will just add manually - can't, progress indicator loops forever. Ok, I will remove the existing subtitles and add - removal succeeds - addition fails. This is the same fiddling everytime. If it works, it is a miracle. I used to forget about the subtitles and start the movie - you could just fix it on the fly right?! Nope, now I do full prep before calling everyone that the movie is good to go.
This is not coming from a bad place - I am very appreciative of having a open source alternative to Plex. Just putting this out there in case it catches someone's interest to improve it.
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.
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"
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.
No, 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.
FWIW, Moonfin and Infuse both work flawlessly on an AppleTV.
I also remember Google TV working fine, but it seemed like ads got added to another part of the UI every month so I got sick of it.
Roku only supports text subtitles, so if you have picture subtitles (like a DVD or bluray), then you'll need to burn them in if you want to play on Roku.
The default jellyfin client works great also on my NVIDIA shield.
Young children and non technical adults can use it as easily as any streaming app. I guess you can tweak and theme it endlessly to look like your favourite streaming app but I haven’t felt the need to so far.
Self-hosting always involves a bit of jankiness, if you can’t handle that then back to overpriced subscriptions and spyware you go.
Skip forward / back is so janky and annoying. Eg, left or right on the remote wheel moves the timeline, but doesn't change the play position until you press the center button. I wish there was an option to skip immediately.
This is not coming from a bad place - I am very appreciative of having a open source alternative to Plex. Just putting this out there in case it catches someone's interest to improve it.