Engineering · Updated 31 October 2026

Why Indian language captions run off the frame

A caption that fits in English overflows in Tamil, and the reason is not font size. It is how the width of a line gets estimated before it is drawn.

Every caption tool has to answer one question before it draws a line: will this text fit the box? Answer it wrong and the words run off the sides of the video, or get cut clean by the edge of the row.

The accurate way to answer it is to measure the text in a browser. That is also the slow way, and it does not work inside a renderer drawing frames out of order on a server. So the width gets estimated instead: each character adds an assumed width, and the sum decides whether the line has to shrink.

The estimate is where it breaks

A simple estimate treats every character as roughly one unit. That is close enough for Latin text. It is badly wrong for Indian scripts, for two different reasons, and they pull in opposite directions.

In Devanagari a virama folds two letters into one narrower conjunct and a vowel mark can take almost no width at all, so counting characters overestimates, and the caption shrinks when it had no need to. In Tamil and Malayalam the vowel signs are full glyphs that take real width, so counting them as small marks underestimates, and the caption clips. An earlier table of ours undercounted Tamil by up to 1.8 times and Malayalam by 2.4 times.

Width in em, measured in Chrome on the bundled caption fonts
Latin lowercase, for comparison0.59
Devanagari: letter, spacing sign0.79, 0.32
Bengali: letter, spacing sign1.00, 0.46
Gurmukhi: letter, spacing sign0.80, 0.29
Gujarati: letter, spacing sign0.74, 0.39
Odia: letter, spacing sign0.74, 0.60
Kannada: letter, spacing sign0.89, 0.60
Telugu: letter, spacing sign1.11, 0.60
Tamil: letter, spacing sign1.30, 0.84
Malayalam: letter, spacing sign1.31, 1.18

Those numbers come from measuring about 40 words in each script, real words plus generated letter and vowel combinations, at every caption font and weight from 400 to 900. They are scaled to cover the 90th percentile word, because a row adds several words together and the total has to stay covered.

Typeface matters as much as script

The same problem shows up in Latin the moment a display face is used. Measured against Inter at caption sizes, a condensed cut comes out at 0.84 of the width and a very wide one at 1.52, nearly twice the width for the same string at the same size. Heavier weights run wider too: about 1.03 at weight 600, 1.07 at 800 and 1.09 at 900.

A fit guard that does not know which face it is measuring will let a wide cut run off both edges while reporting that everything fits.

Fitting is not the same as readable

A good guard shrinks a long line until it fits, and that stops the clipping. It does not make the words big enough to read. When we measured our own templates on a sample sentence in every language, almost nothing clipped, but a template that fits the whole sentence on one row drew a six word Malayalam line at about a third of the height it gave a four word Odia line. That is why the Malayalam page recommends templates that show a few words at a time.

What to check in any caption tool

  • Export a line of Hindi or Tamil long enough to fill the width, and look at the edges of the exported file, not the editor preview
  • Try the same line in the boldest template on offer, because heavier cuts run wider
  • Switch to a display or handwritten face and repeat
  • Compare how big the words end up, not just whether they fit

If the words touch the frame edge in any of those, the tool is estimating width without knowing what it is drawing. If they fit but you cannot read them on a phone, pick a plainer template or split the line.

Free to try, no card. Any video, any size.