Nvidia SHIELD/Android app SSA/ASS format anime subtitles + transcoding problems

sorry but on my side, I’ve tried most of the builds and so far it still doesn’t work. I’m using a Nvidia Shield TV Pro. The videos don’t even start, I guess it tries to transcode and fails because it still can’t direct play the ass subtitles. Same videos are working with the Plex Kodi add-on on the Shield, and with standard Plex app on Apple TV.

Here is a video sample and the subtitles attached
Running Man - S2022E593 - Casual Ji.en.ass.zip (73.4 KB)
.
Running Man - S2022E593-001.mkv.zip (25.3 MB)

To expand on this, from my testing, any hi10p files less than 1080p play with a green overlay on the fire stick 4k. The same files play back fine on the 4K max.

Interesting that it works on one. Neither claims to support Hi10P.

I wonder if this is something a Profile could help with - there’s a constraint for maximum bit depth you could try adding.

@GyloSythe @Volts What does hi10p mean? Is it H265 10bit video?

I could have sworn there is something official stating support for 10-bit on the 4K Fire Stick. Arguably the plain 1080p Fire Stick should too beginning with the 2020 revision, since they started using the same SoC on both then. At least it’s smart enough not to try playing 4:4:4 color sampling.

If you go back to my original topic on it, I think it comes down to color space and ranges tagged in the stream in a way Plex can see. After I posted last night I came across a couple other shows on in my library that are direct-playing correctly with subs.

Codec H264
Bitrate 5699 kbps
Language English
Language Tag en
Bit Depth 10
Chroma Location left
Chroma Subsampling 4:2:0
Coded Height 1088
Coded Width 1920
Color Range tv
Color Space bt709
Frame Rate 23.976 fps
Header Compression true
Height 1080
Level 4.0
Profile high 10
Ref Frames 4
Scan Type progressive 
Codec H264
Bitrate 7514 kbps
Language Japanese
Language Tag ja
Bit Depth 10
Chroma Location left
Chroma Subsampling 4:2:0
Coded Height 1088
Coded Width 1920
Color Primaries bt709
Color Range tv
Color Space bt709
Color Trc bt709
Frame Rate 23.976 fps
Height 1080
Level 5.0
Profile high 10
Ref Frames 4
Scan Type progressive 

So the question is how other players deduce this info when it’s not present (or maybe they just assume a bt709 color space for content of 720p or higher and bt601 for standard def – that sounds sloppy).

@sloke123 We’re talking about 10-bit H264.

1 Like

Here’s device specs:

Amazon Fire TV Device Specifications

Fire Tablet Device Specifications

The FireStick 4K (2018) and FireStick 4K Max (2021) both have:

  • H.264. Hardware accelerated up to 3840x2160p (4K) @ 60fps, 20 Mbps, High 10 Profile Level 5.2
2 Likes

I swear I looked earlier. I dunno which devices I was looking at! Sheesh. Sorry, annoyed that I looked and then still got it wrong.

Amazon is the best - by far - at publishing specs. The comparison page is nifty:

Comparison Table for Fire TV Devices | Amazon Fire TV

The Fire TV Stick 4K and the Fire TV Stick 4K Max have very similar chipsets indeed. Different versions of Android? Intriguing.

There’s an interesting page about Hi10P over in Kodi-land.

@nx6 have you ever tried editing (or possibly stripping) just the color metadata? That might confirm or debunk your theory. I think it should be possible to do so with the ffmpeg h264_metadatata bitstream filter.

Gotcha. :+1:

1 Like

I don’t know why you can’t get the video to start. It’s plain 8-bit h264 and AAC audio. It plays for me but the subtitles don’t work. You’re having the same issue as this person – external ASS subs don’t work.

I muxxed the file, fixed track labels, and added the missing fonts (which are common on Windows PCs so you wouldn’t see any issue playing on a computer).

Try this: Running Man (muxxed).zip (26.1 MB)

I’ve never messed with ffmpeg on a command-line level. I’ve just been comparing XML data of files that play with those that don’t so far. Ideally I’d like to get Plex/ExoPlayer able to identify all the 10-bit files the same as any other player can, but I can settle for a checkbox to disable Hi10P. The Plex for Kodi add-on has one for HEVC (in case you’re running Kodi on a SBC that doesn’t have acceleration for it).

Thanks. Maybe I wasn’t clear but I can play the video just fine without the ass subtitles. I have an alternative .srt and it works well on the Shield. But obviously the srt doesn’t include all on-screen translations. I could hard encode the ass subtitles as you’ve done… however it’s a show with 600+ episodes, so it’s still easier to switch to Kodi or Apple TV.

In the Shield standard app (not the build from @sixones ) when I select the ass subtitles it will try to transcode and buffers every 1 second (as my Synology server is nowhere powerful enough to handle this). With the latest build, the video doesn’t even start, though it would also play without the ass subtitles on some of the previous builds.

Don’t mix up hardencoding subtitles to the video and embedding subs in the file as attachments. It’s not the same. :slight_smile:

2 Likes

You’re right. Interesting. So you’re saying that if I attach them to the file they would play fine as in your sample ?

But it would still take me a long time to do that, right ?

Also, the original files are MP4, it went to MKV when I did the sample. I don’t know if it could be another root cause as I’ve always faced more issues with MP4 than MKV on the shield (for DV for example).

I downloaded a Hi10p movie with ASS subtitle. I played it on my Firestick 4k (1st Gen) without any issue.

Codec H264
Bitrate 10007 kbps
Bit Depth 10
Chroma Location left
Chroma Subsampling 4:2:0
Coded Height 1088
Coded Width 1920
Color Primaries bt709
Color Range tv
Color Space bt709
Color Trc bt709
Frame Rate 23.976 fps
Height 1080
Level 4.1
Profile high 10
Ref Frames 4
Scan Type progressive
Width 1920
Display Title 1080p (H.264 High 10)
Extended Display Title 1080p (H.264 High 10)
Codec AC3
Channels 6
Bitrate 448 kbps
Language English
Language Tag en
Audio Channel Layout 5.1(side)
Sampling Rate 48000 Hz
Title Dolby Digital 5.1 448 Kbps
Display Title English (AC3 5.1)
Extended Display Title Dolby Digital 5.1 448 Kbps (English AC3)
Codec ASS
Language English
Language Tag en
Display Title English (ASS)
Extended Display Title English (ASS)

There are programs out there that can do batch muxxing and speed that up, but the external subtitles issue is something they are looking at

So I would just wait for now.

ASS subs really don’t make a lot of sense being an external file (also called a “sidecar file”) – because they often contain formatting that uses custom fonts. The only way to make sure the subtitles will display with the fonts they should is to include them with the files, which means you have to tell the viewer to add the fonts to their computer’s operating system, or mux the fonts into the episode mkv file, and at that point you might as well just mux the subtitles into the file too!

This is why I posed that question earlier:

Because fonts like Arial, Tahoma, and Open Sans Semibold are often used in subtitles but are not always in the mkv file because the maker assumes you are watching the video on a computer that already has the font and not a device like Plex, and the result is things like that earlier poster who had some size issue because the Plex app is using some android font as a substitute for missing Arial.

Your file played because it includes the color information that I think is needed:

Most anime fansubs that are in Hi10P do not have this information. These files still play with no issue on other players though, including the Plex desktop PC apps. But not on the Fire Stick.

Try this: Railgun S01E02-003.zip (19.5 MB)

Edit: I just realized that’s L5.0 and has 16 ref frames. So, before someone comments on that, here’s another sample from another show with 8 ref frames and only L3.2:

BB E05-014.zip (8.0 MB)

This is also another example of “fonts not included” as the ASS subs rendered in a monospace serif font on Plex web with the server transcoding, and using a plain sans-serif font on these builds, instead of Times New Roman, which was not in the file.

2 Likes

Great, thanks a lot for all the help guys. I’ve just tested by adding the ASS subs to the file and indeed it direct plays just fine. I completely missed the comment about external ASS subs not working yet, but based on your explanations I’m considering muxing them anyway.

Tahoma (specifically the bold variant) was the font needed in your sample. So if the subs looked the same on all episodes of that series you might add that to your workflow so it’s included on them.

720p hi10 plays fine with Kodi on my CCwGTV, 1080p hi10 starts to lag and stutter

Server: 1.25.9.5721
App: 9.7.0.34257

Stepping back from the Hi10p business, I have a small question:

Does Plex support OpenType fonts?

I have a specific series that none of the custom fonts seems to work on. I noticed this some time ago but haven’t posted about it because:

  1. It’s been tricky to get a sample that covers as many fonts as possible and isn’t very long in length.
  2. This same issue effects the files when transcoded on-server, so this can’t really be called an issue with these special Android builds, it’s just a general Plex issue.

Can you use ffprobe to list the fonts that are included, and let me know the font information that gets outputted? We support OpenType fonts but they will need to be embedded correctly with the mimetype or to use the .otf extension on the filename for us to detect them.

Latest build, fixes issues with subtitles not appearing on the next episode as well as a few other improvements. Subtitles might be missing on the next episode if the subtitles start at 0 seconds, other subtitles will appear correctly though.