Open Impyreah opened 2 years ago
Yes, roku does not support SSA. Community reports suggest that the Roku will attempt to mung the SSA to SRT https://emby.media/community/index.php?/topic/77136-playing-ass-subtitles-in-roku/ if this is true then its possible that it's choking on some other element of the SSA. In my experience, graphical or enhanced subtitles are a no-go on the roku, and produce results ranging from simply not rendering the subtitle to fully crashing the device. There is nothing that can be done to fix this. The best possible solution, imho, is to "Drop" them in code to prevent them from being clicked on.
Yes, roku does not support SSA.
this is kinda wrong lol i just had to fix the SSA subtitle profiles. #679 will fix this in most cases. theoretically the roku can still choke on non-text data in ass/ssa subtitles, but that PR will drastically improve things.
I also experienced this issue on a TV show that only contained a single ASS subtitle track. Except mine didn't crash, it buffered to 99% and then timed out after the 30-second bufferCheckTimer
expired. No errors indicated in the Jellyfin server logs.
I also confirmed that the issue is fixed after adding an SRT subtitle profile, or changing my subtitle mode to none
on the Jellyfin server.
What's strange is that I had global captions off on the Roku, and the subtitle track "None" selected. But it may have been trying to pre-load the subtitles in the background. Here are some debugger screenshots after hitting the buffer timeout:
Note that:
SelectedSubtitle
is -1 (None)subtitleTrack
is empty, but currentSubtitleTrack
is set to the offending track.availableSubtitleTracks
, even though it is an unsupported format.~I think we can update SubtitleProfiles "Drop" or "Encode" ASS/SSA formats and that would fix the issue.~ This makes no difference for embedded subtitles.
After further testing, I've learned the following:
mkv/3
(ass) track, even if we don't tell Roku about it:availableSubtitleTracks
.availableSubtitleTracks
, even if global caption mode is off. I assume they do this so that the subtitles are ready to go whenever the user enables the global flag.Those items are out of our control, but we do have other options:
I was able to get option 2 working by adding this to Subtitles.brs:
Still need to do more testing before I know whether it's stable.
Final update on this unless I come across new information. I'm just brain dumping here for future reference.
The only way I can reliably get rid of of the offending embedded profile in availableSubtitleTracks
is by adding an external srt/vtt file. Once that's in place, the mkv/3
track magically disappears from availableSubtitleTracks
and everything works as expected.
Now here's where it gets weird!
Now that the video has at least one SUPPORTED subtitle track, it's possible to switch to our UNSUPPORTED ass/ssa track in the middle of playback (with encoding). The same track that prevented us from playing the video in the previous scenario!
Since the "unsupported track" is transcoded into the stream, we're turning off Roku's global captioning, But, Roku is still loading the old "supported" track in the background (as reported by currentSubtitleTrack
). And since it's a valid track, buffering continues along happily.
TLDR; A complete fix requires one of the following: a) convince Jellfyin server to not send embedded UNSUPPORTED subtitle tracks OR b) convince Roku to ignore those tracks.
Otherwise, everything works fine if the video has at least one supported subtitle track (srt, vtt, ttml, sub).
Describe the bug 10.8.0 -1.4.13: Roku app will crash on the request to play the H265 Dual Audio/Dual subtitle(SSA) file. The screen will begin flashing between black and the previously screen rapidly for 5-15 seconds before stopping. Sometimes at the end of this an episode from the next season will play, but not always.
This appears to specifically be an issue with subtitles that do not use the Roku's built in CC feature. As subtitle files that do appear to load fine.
To Reproduce Video played: Format: HEVC/H265/MPEG-H Dual Audio -AAC (en) -AAC (jp) Subtitles -SSA (en) -SSA (jp)
Expected behavior Episode to load and play
Logs