jellyfin-android
jellyfin-android copied to clipboard
ASS subtitles not rendered properly but fine on browsers
Describe the bug
- Have a video file that:
- has ASS subtitles with special styles and fonts
- Playback the videp file on jellyfin android and select that subtitle
- observe that the subtitles are not working correctly
- Incorrect font
- Correct color
- Black background behind text
- Simultaneous subtitles became jibbrish mess after displaying "correct-ish" subtitles for 1 frame
- Use a browser to view the same video
- observe that everything works correctly when the video was remuxed:
- Font is correct without dark background
- Simultaneous subtitles are displayed correctly
- When using web player, video gets transcoded, but without the correct font
- When client settings > ass support in direct play is disabled, video gets transcoded without the correct font
- when using VLC as external player, most things are normal but still without correct font
- When using firefox or chrome, zero issues occur. Font, background and simultaneous subtitles are all fine.
- System subtitles settings does not affect the outcome
- subtitle file can be provided upon request
Logs
Attached upon further request
Application version
2.6.1
Where did you install the app from?
Google Play
Device information
Poco X4 GT
Android version
Android 13, MIUI 13.2.5.0
Jellyfin server version
10.9.1
Which video player implementations does this bug apply to?
- [ ] Web player (default)
- [X] Integrated player (ExoPlayer)
- [ ] External player (VLC, mpv, MX Player)
It turns out that it doesnt matter what the video file is. The same ASS subtitle can be pasted to basically any video file and it would have an issue.
It also does not matter if the video is remuxed or directly played.
Pic1: Chrome (correct) (with subtitles from another file):
Pic2: Chrome (correct simultaneous with font and no background) (See those tiny text at top and bottom) :
Pic3: Jellyfin android, incorrect font and background, and subtitles from another file. Compare it with Pic1:
Jellyfin android, flash 1 frame with "half correct" subtitles then jibbrish which looks like ASS styling. The "half correct" subtitles were supposed to be simultaneous, but the bottom was missing, font is wrong and background was back. These two should match with Pic2.
Pic4:
Pic5:
Last time i recall JMP doesn't have any control on external players like Android's ExoPlayer when it comes to specific rendering issues like these, integrated means it's embedded in the app and doesnt call an external activity to trigger it, but still it's an external library or dependency which the project cant control
You may want to report the issue here https://github.com/google/ExoPlayer/issues
Actually the issue is already known in upstream
https://github.com/google/ExoPlayer/issues/8435
Also dupe of #252
Sorry for the dupe. My search didnt find that issue probably because of different symptoms. I was searching for jibbrish ASS subtitle phenomenon as shown in Pic5.
It could also be related to https://github.com/google/ExoPlayer/issues/10295
It should also be noted that ExoPlayer is deprecated and this bug is probably not going to be fixed (if we dont move to the suggested library):
This project is deprecated. All users should migrate to AndroidX Media3. Please refer to our migration guide and script to move your codebase to the Media3 package names.
If it was not using AndroidX's version, maybe we should switch
If it was using AndroidX's version, maybe I should open another issue referencing the aforementioned issues as well? It doesnt seem like anyone has raised this ASS styling issues at the new repo, so I assume that this was either fixed or nobody noticed it?
This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.
If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.
This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.