Hi there,
Sorry about the delay in my response. I created two sample files, one muxed with FFMpeg and one with Subler. I’ve extracted the subtitles from both to .ass format (as the Plex Transcoder does) and inspected the files.
Subler
[Script Info]
; Script generated by FFmpeg/Lavc58.18.100
ScriptType: v4.00+
PlayResX: 384
PlayResY: 288
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,54,&Hffffff,&Hffffff,&H0,&H0,0,0,0,0,100,100,0,0,1,1,0,2,10,10,10,0
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,Subtitle test
Dialogue: 0,0:00:05.00,0:00:07.00,Default,,0,0,0,,First line\NSecond line
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0,0,0,,Third frame
Dialogue: 0,0:00:09.00,0:00:11.00,Default,,0,0,0,,Lorem ipsum dolor\Nasimet
Dialogue: 0,0:00:11.00,0:00:13.00,Default,,0,0,0,,Fifth frame
Dialogue: 0,0:00:13.00,0:00:15.00,Default,,0,0,0,,Lorem ipsum dolor sit amet, consectetur\Nadipiscing elit, sed do eiusmod tempor.
Dialogue: 0,0:00:15.00,0:00:17.00,Default,,0,0,0,,Seventh frame
Dialogue: 0,0:00:17.00,0:00:30.03,Default,,0,0,0,,Last frame
FFMpeg
[Script Info]
; Script generated by FFmpeg/Lavc58.18.100
ScriptType: v4.00+
PlayResX: 384
PlayResY: 288
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Serif,18,&Hffffff,&Hffffff,&H0,&H0,0,0,0,0,100,100,0,0,1,1,0,2,10,10,10,0
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,Subtitle test
Dialogue: 0,0:00:05.00,0:00:07.00,Default,,0,0,0,,First line\NSecond line
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0,0,0,,Third frame
Dialogue: 0,0:00:09.00,0:00:11.00,Default,,0,0,0,,Lorem ipsum dolor\Nasimet
Dialogue: 0,0:00:11.00,0:00:13.00,Default,,0,0,0,,Fifth frame
Dialogue: 0,0:00:13.00,0:00:15.00,Default,,0,0,0,,Lorem ipsum dolor sit amet, consectetur\Nadipiscing elit, sed do eiusmod tempor.
Dialogue: 0,0:00:15.00,0:00:17.00,Default,,0,0,0,,Seventh frame
Dialogue: 0,0:00:17.00,0:00:30.03,Default,,0,0,0,,Last frame
Clearly, Subler sets a rather big font-size (54) which explains why transcoded subtitles are so big.
However, in the mean time Plex Web must have updated since it now ignores the font-size set in the .ass subtitle and respects the size set by the client - however the font family is still preserved. Plex Media Player on the other hand still respects the size defined in .ass.
To my knowledge, it’s not possible not to set a default style in .ass subtitles, so the only realistic option would be ignoring the size (and probably other styles) settings on the client and use the settings that’s defined by the client.
This might cause issues with .ass subtitles that are actually formatted properly, however it’s easy to check whether the file has only single default style - in which case it could be ignored.
I can upload the .mp4 files if required, however I fairly sure that the issues is the styles in mov_text that get preserved in the .ass conversion.