All Tools View Categories About Contact Privacy

Subtitle Position / Margin Adjuster

Place subtitles at exact coordinates via ASS.

Runs entirely in your browser — no data is uploaded or stored.

Coordinates follow the ASS script resolution (default 384x288); use \pos for absolute placement.

About this tool & how to use it
  • Exact coordinates, not presets: The X position and Y position fields let you place captions anywhere on the canvas rather than choosing from a fixed grid of nine anchors.
  • Applied to every cue: The positional override is written onto each dialogue line individually, so the placement holds for the whole file without depending on style defaults.
  • Complete ASS output: You paste plain SRT and receive a full ASS script with the script headers and event section already in place, ready to save with an .ass extension.
  • Resolution-relative placement: Coordinates are measured against the script resolution in the ASS header, so a value that works at one output size keeps its relative position at another.
  • Timing carried across: Every start and end time is converted into ASS centisecond timecodes with no shifting, trimming or merging of cues.
  • Text preserved: Wording, capitalisation and line breaks come through unchanged; the only addition is the override at the front of each cue.
  • Predictable fallback: Leaving a coordinate blank is treated as zero, so the output is always a valid file even if you run before filling both fields.
  • Browser-only processing: Nothing is uploaded, which suits pre-release material and makes repeated trial-and-error runs instant.
  1. Paste the subtitle into the SRT Content box, or press Load sample to work through the process on a supplied example first.
  2. Decide where the captions need to sit relative to the ASS canvas, remembering that X grows to the right and Y grows downward from the top-left corner.
  3. Enter the horizontal value in X position, for example a mid-canvas value if you want the captions horizontally centred.
  4. Enter the vertical value in Y position, using a larger number to sit lower in frame and a smaller one to clear a lower-third graphic.
  5. Press Run and check the result panel shows an ASS script whose Dialogue lines each begin with a positional override containing your two numbers.
  6. Click Download to save the file with its .ass extension, then load it over the real video in your player or encoder.
  7. If the captions land slightly off, adjust X position or Y position and run again; iterating on the numbers is faster than editing tags by hand.

Example 1 - lifting captions clear of a ticker. A sports package has results running along the bottom, so the captions must sit above it and slightly left of centre.

Input (SRT):
12
00:04:03,200 --> 00:04:06,000
He takes it in the final second.

Output (ASS):
Dialogue: 0,0:04:03.20,0:04:06.00,Default,,0,0,0,,{\pos(180,240)}He takes it in the final second.

The cue now carries an absolute anchor, so it is drawn at that coordinate however the player would otherwise lay it out.

Example 2 - captions at the top of frame. A small Y position such as 30 with X near mid-canvas yields {\pos(192,30)} on every line, clearing lower-third name straps.

About Subtitle Position / Margin Adjuster

The Subtitle Position / Margin Adjuster takes an SRT pasted into the SRT Content box and produces an ASS file in which every cue is anchored to an exact on-screen coordinate. You supply it with the X position and Y position fields, and a {\pos(x,y)} override is written at the start of each dialogue line before the ASS output is assembled for download as an .ass file.

Alignment presets give you nine placements; sometimes nine is not enough. A permanent scoreboard sits slightly off-centre, a broadcaster's safe-action margin demands a specific distance from the bottom edge, or a documentary has name straps a bottom-centre caption would collide with. Broadcast QC teams, sports producers and anyone preparing a hardsub master meet this the moment a client asks for the captions to move up a bit.

The tool parses the SRT, prefixes each cue with the override built from your two numbers, and writes a full ASS script with headers and one Dialogue line per cue, converting timecodes to the ASS centisecond form. Coordinates are measured against the script resolution in the ASS header, so they are canvas units rather than pixels of your final render and keep their relative placement at any output size. Empty or non-numeric entries fall back to zero, which anchors to the top-left corner, so fill both fields deliberately. Nothing is uploaded.

Features

  • Exact coordinates, not presets: The X position and Y position fields let you place captions anywhere on the canvas rather than choosing from a fixed grid of nine anchors.
  • Applied to every cue: The positional override is written onto each dialogue line individually, so the placement holds for the whole file without depending on style defaults.
  • Complete ASS output: You paste plain SRT and receive a full ASS script with the script headers and event section already in place, ready to save with an .ass extension.
  • Resolution-relative placement: Coordinates are measured against the script resolution in the ASS header, so a value that works at one output size keeps its relative position at another.
  • Timing carried across: Every start and end time is converted into ASS centisecond timecodes with no shifting, trimming or merging of cues.
  • Text preserved: Wording, capitalisation and line breaks come through unchanged; the only addition is the override at the front of each cue.
  • Predictable fallback: Leaving a coordinate blank is treated as zero, so the output is always a valid file even if you run before filling both fields.
  • Browser-only processing: Nothing is uploaded, which suits pre-release material and makes repeated trial-and-error runs instant.

How to Use

  1. Paste the subtitle into the SRT Content box, or press Load sample to work through the process on a supplied example first.
  2. Decide where the captions need to sit relative to the ASS canvas, remembering that X grows to the right and Y grows downward from the top-left corner.
  3. Enter the horizontal value in X position, for example a mid-canvas value if you want the captions horizontally centred.
  4. Enter the vertical value in Y position, using a larger number to sit lower in frame and a smaller one to clear a lower-third graphic.
  5. Press Run and check the result panel shows an ASS script whose Dialogue lines each begin with a positional override containing your two numbers.
  6. Click Download to save the file with its .ass extension, then load it over the real video in your player or encoder.
  7. If the captions land slightly off, adjust X position or Y position and run again; iterating on the numbers is faster than editing tags by hand.

Examples

Example 1 - lifting captions clear of a ticker. A sports package has results running along the bottom, so the captions must sit above it and slightly left of centre.

Input (SRT):
12
00:04:03,200 --> 00:04:06,000
He takes it in the final second.

Output (ASS):
Dialogue: 0,0:04:03.20,0:04:06.00,Default,,0,0,0,,{\pos(180,240)}He takes it in the final second.

The cue now carries an absolute anchor, so it is drawn at that coordinate however the player would otherwise lay it out.

Example 2 - captions at the top of frame. A small Y position such as 30 with X near mid-canvas yields {\pos(192,30)} on every line, clearing lower-third name straps.

Benefits

  • Meet exact layout notes: When a client asks for captions a specific distance from an edge, coordinates let you deliver precisely that instead of approximating with a preset.
  • Avoid costly collisions: Keeping subtitles off tickers, scoreboards and name straps prevents the kind of overlap that forces a re-render of a finished master.
  • Respect safe-action requirements: Broadcast specifications often dictate margins, and explicit positioning is the simplest way to demonstrate compliance.
  • Fast iteration: Changing two numbers and rerunning is far quicker than opening a subtitle editor and dragging cues, especially across hundreds of lines.
  • Consistency across an episode: Every cue receives the identical anchor, so captions do not drift between scenes the way manually adjusted files often do.
  • Private and immediate: The conversion happens in your browser with no upload, so unreleased footage subtitles stay local and results appear instantly.

Frequently Asked Questions

What does \pos do?
It pins the subtitle to exact pixel coordinates (x, y) within the ASS video resolution.
What coordinates should I use?
Based on the script resolution (this uses 384x288 by default); adjust for your project.
Why ASS output?
SRT has no position field; ASS carries \pos overrides.
Is my file uploaded?
No, conversion runs locally.