Netflix implements "imgsub"[1] - it actually delivers a zipped archive of transparent images to the player. So technically they can pre-render positioned typesetted subtitles on server and render them as images overlay, as long as there's no animated text effects.

In general, streaming services have to ensure maximum compatibility when playing their contents on all kinds of devices - high end and low end. For which on low end device it could be very resource constraining to render typesetted subtitles. There are other platforms where all video playback have to be managed by the platform system frameworks with limited format support, and streaming services can't do much about it.

The priority of streaming service is extending their market reach, and I think Crunchyroll itself is facing the same challenge of market reaching.

I think the right solution is trying to get typesetted subtitles, and the end-to-end workflow - creation, packaging, delivery, rendering with adaptation (device capabilities, user preferences, localizations etc) all standardized. A more efficient workflow is needed, so a single source of subtitle is able to generate a set of renditions suitable for different player render capabilities. Chrunchyroll should actively participate in these standard bodies and push for adaption for more features and support in the streaming industry.

[1]: https://netflixsubs.app/docs/netflix/features/imgsub

Unfortunately, as the link describes, Netflix only makes this available for a very limited set of languages, while everyone else is stuck with the extremely limited text-based standards.

Frankly, those text-based subtitle standards are quite maddening on their own. Netflix's text-based subtitle rendering seems to support a much wider set of TTML features than what it actually allows subtitle providers to use - so if these restrictions were to be slightly relaxed, providers could start offering better subtitles for anime immediately with no additional effort from Netflix.

What Netflix supports on their main website might not be what they care about, though; you used to be able to watch Netflix on the Nintendo Wii, and they probably still have some users on stupidly old smart TVs.

Also fun fact - subtitles did not work on the Wii at all if you were running a video streaming service!

The BBC spent literally years trying to engineering something that did not result in it being unable to playback video smoothly and failed.

Fast forward to 2025 and BBC's streaming app on ApppleTV only just added subtitles; vastly more powerful hardware but so many restrictions from Apple on how developers use it.

> on low end device it could be very resource constraining to render typesetted subtitles.

So render them only on high end devices? Computers allow making dynamic choices.

In 2008 I was watching fansubbed anime with decent typesetting on a netbook with a shitass-even-for-the-time Atom processor, so I don't buy for one second that this is a device capabilities issue.

Your player likely wasn't written in Javascript back then.

Playing video on Youtube causes much more cpu load than playing the video with the same av1 (or even more computationally intensive vp9) codec in VLC.

> In general, streaming services have to ensure maximum compatibility when playing their contents on all kinds of devices - high end and low end. For which on low end device it could be very resource constraining to render typesetted subtitles. There are other platforms where all video playback have to be managed by the platform system frameworks with limited format support, and streaming services can't do much about it.

Surely if my mid-end phone from 2015 supported everything .ASS has to offer, they could do it either?

In any case... I don’t believe the problem is that Netflix and Crunchyroll have to support low-end devices, it’s that they don’t want to pay $$$ for typesetting. They are big enough now that they don’t have to care, so they don’t – just another example of enshittification.

I wouldn't bet that every smart TV Crunchyroll wants to be available on has more processing power than your phone from 2015 (some of those TVs might be older than that), but yes, it's probably less about hardware capabilities than about platform limitations that make the usual solution of compiling libass into a blob and integrating it into the player not so easy to implement.