I believe that plex is built on ffmpeg right? If not the rest of this might not apply perfectly but i'll go ahead and explain.
anime is subtitled with soft subs in .ass format. Most of the time, this includes complex "typesetting" to translate text on screen. these are done with xy-vsfilter on most renderers such as MPC-HC, MPC-BE. VLC/XMBC uses libass which is also baked into most distributions of ffmpeg.
I believe that plex is burning the subtitles into anime when streamed but its apparently not doing it through libass. because libass rarely has the issues that plex has.
no matter what, plex would need to rip fonts (can be done with mkvextract) and installed to the system. this would probably require plex to be installed and run with administration privileges.
so a few possible ways that anime streaming could become easy with plex.
- an "anime" category like "TV shows" "Movies" etc that applies some different workflow than the normal streaming. This could include:
- using libass and ffmpeg's vfilter.
- i've done it before and it's pretty simple. mkvextract the .ass file then pass the argument
vfilter="/path/to/nameof.ass"
which is fairly simple. As long as fonts are installed, this should result in proper subtitles burned in on the fly 95% of the time. Libass isn't perfect but its much better than plex currently.
-
even if ffmpeg isn't used, libass is available here: https://code.google.com/p/libass/
- i've done it before and it's pretty simple. mkvextract the .ass file then pass the argument
-
using avisynth. (this is a much more powerful option and ensures that the subtitles will be seen as they were designed by the fansubbers. but may require a newer computer [but not much more than plex requires if at all])
-
Alert users that they must install avisynth to properly support anime subtitles when they select the anime category and provide a download link to the needed filters and where to install them.
-
99% of anime would be supported by just two filters: ffmpegsource2 to load the video into avisynth and xy-vsfilter to burn subtitles in. Audio could be handled as it already is.
-
then generate a .avs file (its just text) with the following inside:
ffmpegsource2("/path/to/anime/episode.mkv") TextSub("/path/to/subtitles.ass") #spline36resize(x-pixels,y-pixels) #optional if you wanted avisynth to pre-process resizing to device screen size -
And allow .avs as a playable content type in plex. (P.S. it already shows this on iPhone at least but crashes when trying to play it)
-
- using libass and ffmpeg's vfilter.
right now, .ass subtitle support is horrible in plex and results in errors like this: d.pr/i/aYNP
(I've just noticed the subtitles are even a frame or two off and this sign was handled much better than most.)
when it should look like this (textsub through xy-vsfilter): d.pr/i/AH6A
and the original looks like this: d.pr/i/xuD8
I can help developers on how each of these parts work on a general basis including how to rip fonts in bulk using mkvextract. ffmpeg supports .avs and libass already so that should be an easy solution (assuming that plex is built on ffmpeg as I believe.)